Experience Management Integration Guide


Salesforce Audience Studio supports the use of audience data within experience management systems (EMS) for content and offer personalization. Segments used for marketing and media, or other segments, can be utilized to personalize content and offers for a user derived from that user’s demographics, previous behaviors, and various client-created models.

Audience Studio, using real-time segments and data on-page, provides data to the EMS. Audience Studio integrates with EMSes in this fashion to:

  • Minimize segment delivery delays to support true real-time content and offer personalization
  • Leverage data to target a user on their first page view for a client
  • Receive feedback on what works and what doesn’t from the EMS to provide analytics for content optimization

Audience Studio deploys via an asynchronous implementation, instead of synchronously. Together with pre-set default content, asynchronous deployment helps minimize any disruptions of the user experience.

This article describes how data makes its way to the client page, and how an EMS would take that data and use it. This article also covers how to provide data back to Audience Studio for content personalization, performance and analytics.

On-Page Segment Delivery

Audience Studio personalizes content using both standard processed segments and real-time segments. In addition to on-page data processing, a request is sent to Audience Studio servers. That request contains the segments a user belongs to for the particular client they are using.

Together, these segments, along with the Krux user ID, are stored in the browser’s local storage. They are made available in two JavaScript variables for an EMS to access:

  • user, which stores the user’s Salesforce Audience Studio ID
  • [partner]segments, which stores the segments the user belongs in for the client. The segments are unique IDs instead of normal names. Normal readable names can be retrieved via an API, outlined below.

Once Audience Studio is called via our on-page Control Tag, those two variables will be available for the EMS to access. The EMS should use segments for delivering personalized content and utilizing the user ID for returning data to Audience Studio.

Audience Studio Segment Data API

With client authorization, Audience Studio can provide an EMS with API access to give the EMS the ability to map segment IDs to segment names. Because segment names do not change frequently, the API should only need to be accessed once a day. These segment names can then be used in the EMS interface to provide the client with efficient utilization of segments from Audience Studio.

Audience Studio Feedback Pixel

Audience Studio will also provide the EMS with a pixel endpoint to fire after the personalized content is delivered. Firing the pixel endpoint provides Audience Studio with feedback on what personalized content was delivered. Audience Studio then returns billing and analytics on segment performance against content at a segment level and sends that back to the client.

Multiple pixels can be fired on a single page view; one for each personalized element. Audience Studio recommends firing this pixel on the next page view so that clicks (or non-clicks) on offers from the previous page view can be taken into account.

The pixel endpoint is as follows:

http(s)://beacon.krxd.net/ad_impression.gif?confid=[CONFID]&ksegs=[SEGMENT_ID(s) comma separated]&kxtype=billing&campaign_id=[CAMPAIGN_ID]&campaign_name=[CAMPAIGN_NAME]&ad_id=[AD_ID]&ad_name=[AD_NAME]&_kuid=[Krux.user]
  • CONFID will be a unique ID, to be provided by Audience Studio
  • SEGMENT_USED should be the segment ID(s) from Audience Studio that were explicitly used by the decision engine in determining what content was surfaced, comma separated
  • CAMPAIGN_ID can be any unique ID you choose (optional)
  • CAMPAIGN_NAME should be the name of the site, please make sure its URL encoded (optional)
  • AD_ID can be any unique ID you choose (optional)
  • AD_NAME should be the name of the personalized offer, please make sure it's URL encoded (optional)
  • KUID should be the user ID from Krux.user (optional) 


Have more questions? Submit a request


Article is closed for comments.