Data Management Platform (DMP) integration

Integration steps

  1. Your Account Manager initiates the integration project in collaboration with our Customer Solutions team and an audience provider is added for your INVIDI Pulse account.
  2. After identifying which segments to target in Pulse, you configure the audience segmentations and audience segments either:
  3. You assign viewers to the segmentations and segments created in step 2 either:
  4. If using session store, you add Additional Code to all platforms.
  5. INVIDI and you test the integration.

Server-to-server integration example scenario

The below sequence diagram assumes that an audience provider has been added for your Pulse account and you are using the Audience Management API.

Server-to-server integration example scenario

(Deprecated) Segment identification document

Warning:

From 29 June 2020, the Segment identification document has been deprecated and superseded by the Audience Management API. If you are still using the Segment identification document, you can start migrating to the Audience Management API.

Our Customer Solutions team will work with you to determine a migration timeline, and an end of life date will be announced at a later point.

The segment identification document is a CSV file identifying each unique targeting segment, allowing Pulse to match the information coming from the audience data provider with the targeting segments displayed in Pulse.

CSV row format

CSV row Type Description Note
Index Integer Value between 0-199 identifying the segmentation key (internal to Pulse). Now segmentationId in Audience Management API.
Value Integer Value between 1-15 identifying the value (internal to Pulse). Now segmentId in Audience Management API.
Category String Segment category, for example Demographics -
Subcategory String Segment subcategory, for example Professionals -
Key Label String Segmentation name displayed in the Pulse UI, for example, Age or Gender. Now segmentationName in Audience Management API.
Value Label String Segment name displayed in the Pulse UI, for example Male or Female. Now segmentName in Audience Management API.
Parameter Name String Your own segmentation key (ID) sent in the async pixel request, used to parse incoming requests. For example, xyz. Now segmentationKey in Audience Management API.
Parameter Value String Your own segment key (ID) sent in the async pixel request, used to parse incoming requests. For example, 123. Now segmentKey in Audience Management API.

Example

  1. No segment categories or subcategories, only flat keywords. You can associate a viewer with 1 or more keywords.

    "0","1","DMP name","DMP name","keyword","travel","xyz","123"

    "1","1","DMP name","DMP name","keyword","sports","xyz","456"

    "2","1","DMP name","DMP name","keyword","automotive","xyz","789"

    "3","1","DMP name","DMP name","keyword","banking/finance","xyz","012"

    "4","1","DMP name","DMP name","keyword","beauty","xyz","345"

  2. Segment viewers using groups and subgroups. A viewer can only belong to one subgroup at a time. For example, gender can only be female or male, not both.

    "0","1","demographics","demographics","age","20-34","a","1"

    "0","2","demographics","demographics","age","35-49","a","2"

    "0","3","demographics","demographics","age","50-54","a","3"

    "1","1","demographics","demographics","gender","female","g","1"

    "1","2","demographics","demographics","gender","male","g","2"

Async pixel protocol

You populate viewer segments in session store or in a local cookie by using asynchronous HTTP requests to Pulse backend.
  • Maximum one async HTTP request per day and per unique viewer.
  • If using session store, minimum one update every 13 days is required per unique viewer.
    Note: Inactive viewers are automatically purged after 13 days. The data is lost from the session store, making the viewer unavailable for audience management. Campaigns using audience targeting do not deliver to purged viewers.

Adding data

Segments are transferred individually or in group according to the following protocol:

{Base URL}?{audience provider URL identifier}={URL-encoded comma-separated string of parameter names and values}
//using cookie
http://subdomain.videoplaza.tv/proxy/pixel/v2?dmpParam=a%3D1%2Cg%3D2 //a=1,g=2 

//using session store. You also need to send the viewer ID as a parameter (pid) in the request.
http://subdomain.videoplaza.tv/proxy/pixel/v2?dmpParam=a%3D1%2Cg%3D2&pid=2467a22f-9d74-406a-ab62-54fae1414af9

Updating data

Segments are updated individually or in group according to the following protocol:

{Base URL}?{audience provider URL identifier}={URL-encoded comma-separated string of parameter names and values}

Each viewer needs to be updated every 13 days at least, by using the described protocol to resend the segments.

//using cookie
http://subdomain.videoplaza.tv/proxy/pixel/v2?dmpParam=a%3D3%2Cg%3D4 //a=3,g=4

//using session store. You also need to send the viewer ID as a parameter (pid) in the request.
http://subdomain.videoplaza.tv/proxy/pixel/v2?dmpParam=a%3D3%2Cg%3D4&pid=2467a22f-9d74-406a-ab62-54fae1414af9

Removing data

Remove all Pulse Audience Management cookies or session store data for a viewer by calling:

{Base URL}?{audience provider URL identifier}=DELETE
//using cookie
http://subdomain.videoplaza.tv/proxy/pixel/v2?dmpParam=DELETE

//using session store. You also need to send the viewer ID as a param (pid) in the request.
http://subdomain.videoplaza.tv/proxy/pixel/v2?dmpParam=DELETE&pid=2467a22f-9d74-406a-ab62-54fae1414af9

Additional code (if using session store)

If session store is enabled, the PID parameter must be sent with every ad request coming from the player in order to take advantage of audience targeting.

Anonymous viewers

  • Cookie-supported environments: If a viewer is anonymous (does not authenticate and has no unique ID), do not set the pid parameter. Pulse dynamically creates a random ID for this viewer and stores it in a cookie.
  • Cookieless environments: If a viewer is anonymous and uses a native app that does not allow third-party cookies, set the pid to a unique device number (for example, Device ID).

Authenticated viewers

  • If a viewer is authenticated, use the authentication ID as the pid parameter.

Setting the PID parameter in different platforms

VAST and VMAP

See VAST and VMAP for more information.

//in VAST and VMAP, an extra parameter (pid) needs to be sent in the HTTP request
 http://subdomain.videoplaza.tv/proxy/distributor/v2?rt=vast_3.0&tt=p&pid=2467a22f-9d74-406a-ab62-54fae1414af9
http://subdomain.videoplaza.tv/proxy/distributor/v2?rt=vmap_1.0&tt=p&pid=2467a22f-9d74-406a-ab62-54fae1414af9

HTML5

See Pulse HTML5 SDK for more information.

setPulseHost(pulseHost, deviceContainer, persistentId, ignoreSecure, disableFlash);

iOS

See Pulse iOS SDK for more information.

(void)setPulseHost:(NSString *)host
   deviceContainer:(NSString *)deviceContainer
      persistentId:(NSString *)persistentId;

Android

See Pulse Android SDK for more information.

setPulseHost(host, deviceContainer, persistentId)

Also see Pulse SDKs tutorial for examples on how to set the Persistent identifier (PID) in Pulse SDKs.