Data Management Platform (DMP) Integration

Integration Steps

  1. Client provides the segment identification document after identifying which segments to target in Pulse.
  2. Client sets up the async pixel request to Pulse backend. This step can be executed by both the client developer team or the DMP integrations team. It consists of a request sent towards Pulse to assign users to their segments.
  3. If using session store, client adds additional code to all platforms.
  4. Ooyala and client test the integration.

Segment Identification Document

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

CSV Row Format

CSV row Description Type Example
Index Value between 0-99 identifying the segmentation key (internal to Ooyala). Integer 0
Value Value between 1-15 identifying the value (internal to Ooyala). Integer 1
Category Segment category. String Demographics
Subcategory Segment subcategory. String Professionals
Key Label Segmentation key label displayed in the Pulse UI. String Gender
Value Label Segmentation value label displayed in the Pulse UI. String Male
Parameter Name Segmentation key sent in the async pixel request, used to parse incoming requests. String xyz
Parameter Value Segmentation value sent in the async pixel request, used to parse incoming requests. String 123

Example

  1. No segment categories or subcategories, only flat keywords. You can associate a user 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 users using groups and subgroups. A user 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 user segments in session store or in a local cookie by using asynchronous HTTP requests to Pulse backend.
  • If using session store:
    • Maximum 1 async HTTP request per day and per unique user.
    • Minimum one update every 13 days per unique user.
    Note: Inactive users are automatically purged after 13 days. The data is lost from the session store, making the users unavailable for audience management. Campaigns using audience targeting do not deliver to purged users.
  • If using cookies: Maximum 1 async HTTP request per day and per unique user

Adding Data

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

{Base URL}?{dataproviderid}={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 user 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}?{dataproviderid}={URL encoded comma separated string of parameter names and values}

Each user 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 user 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 user by calling:

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

//using session store. You also need to send the user 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 (user persistent ID) parameter can be sent with every ad request coming from the player.

Anonymous users:

  • If a user is anonymous (does not authenticate and has no unique ID), do not set the PID parameter. Pulse backend dynamically creates a random ID for this user and stores it in a cookie.
  • If a user is anonymous and uses a native app that does not allow 3rd party cookies, set the PID to a unique device number (for example, Device ID).

Authenticated users:

  • If a user is authenticated, use the user Authentication ID as the PID parameter.

Setting the PID Parameter in Different Platforms

VAST

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

HTML5

//set the user id as a parameter during the ad request  
adRequesteSettings = {
    persistentId : "2467a22f-9d74-406a-ab62-54fae1414af9"   
}; 

adRequester = new AdRequester("http://subdomain.videoplaza.tv", adRequesterSettings);

Flash

//set the user id in the ad player
var itemInfo:ItemInfo = new ItemInfo();  
itemInfo.tags = ["foo","bar"];
itemInfo.category = "myCategory";

_vpAdPlayer.persistentID = "2467a22f-9d74-406a-ab62-54fae1414af9";  
_vpAdPlayer.setNewItem(itemInfo);

iOS

//set the user id as a param during the ad request  
NSURL *url = [NSURL URLWithString:@"http://subdomain.videoplaza.tv];  
VPAdCallModuleSettings * adcallModuleSettings = [[VPAdCallModuleSettings alloc] init];  
adcallModuleSettings.persistentIdentifier = @"2467a22f-9d74-406a-ab62-54fae1414af9"; 

_adCallModule = [[VPAdCallModule alloc] initWithHost:url andSettings:adcallModuleSettings];

Android

//set the user id as a parameter during the ad request  
AdRequestorSettings settings = new AdRequestorSettings();  
settings.setPersistentId("2467a22f-9d74-406a-ab62-54fae1414af9");    

adRequestor =  new AdRequestor("subdomain.videoplaza.tv", settings);

해당 내용이 도움 되었습니까?