thePlatform Plugin Browser
From Engineering Client Portal
The Nielsen Browser SDK (Software Development Kit) is the Nielsen framework for measuring media consumption in browser environments. This SDK has the following features:
- Multiple product support: built-in capabilities to support Digital Content Ratings (DCR), VideoCensus (VC), IAG and Digital in TV Ratings (DTVR).
OS | Player Version | SDK Version | Supported Ad Frameworks | Download | |
---|---|---|---|---|---|
5.7.7 | 6.0.0.28 | Google IMA | Contact Nielsen |
Plugin Implementation
Pre-requisites
- Nielsen App ID (apid): A Unique ID that Nielsen assigns to the site / player. The 'apid' will be provided by your Nielsen Technical Account Manager.
- thePlatform Plugin: Plugin URLs are provided in below section
- Test Environment Validation: Before moving the app into production, Nielsen must validate the Plugin's integration in a test environment.
Initial Configuration
Before integrating the plugin, perform the following
- Configure metadata
- Obtain Nielsen APID's
- Review the Nielsen plugin URLs for thePlatform video players
Configure Metadata
You must configure your Metadata to send to the SDK. The required values are highlighted in the table below, and will need to be supplied through the "Nielsen Keys".
Note: For more information on setting up your Nielsen Keys & Metadata, please reach out to your Nielsen Technical Account Manager.
Content Metadata
Keys | Description | Values | Type | Required |
---|---|---|---|---|
type | Type of asset | 'content' |
string | Yes |
assetid | Unique ID assigned to asset | custom |
string | Yes |
program | Program Name | custom |
string | Yes |
title | Episode title | custom |
string | Yes |
airdate | The original airdate for linear TV | '20161013 20:00:00' |
date | No |
length | Length of content in seconds | 3600 (86400 for lives tream) |
integer | Yes |
segB | Custom Reporting Segment | custom |
string | No |
segC | Custom Reporting Segment | custom |
string | No |
isfullepisode | Full Episode Flag |
|
boolean | Yes |
adloadtype | Distinguishes Dynamic vs Linear Ad Insertion |
|
integer | Yes |
crossId1 | Standard Episode ID | custom |
string | Yes |
crossId2 | Content Originator ID | custom |
string | No |
mediaURL | URL location of the content being streamed | custom |
string | Yes |
hasAds | Distinguishes when content includes Ads |
|
integer | Yes |
Ad Metadata
Keys | Description | Values | Type | Required |
---|---|---|---|---|
type | Type of ad |
|
string | Yes |
assetid | Unique ID assigned to ad | custom |
string | Yes |
Note:There is a URL character limit of 2000 characters imposed due to browser limitations. Exceeding this value can impair data delivery on particular browsers.
Obtain the Nielsen Application ID (apid)
The Nielsen apid is required to enable SDK functionality. Your Technical Account Manager will provide two apids for each player configuration
- Test apid: use this apid during development and testing
- Production apid: use this apid in your production environment after Nielsen has tested and qualified the player.
The Platform Plugin URLs
The URL to be used for thePlatform Plugin is as below
Javascript: http://cdn-gl.imrworldwide.com/novms/tp/3/ggtp510.js
Note: Supports flash version of thePlatform Plugin.
Global Parameters
To initialize the Nielsen Browser SDK, you must pass three global parameters, which will be created when configuring the plugin within thePlatform user interface
- apid: unique Nielsen-assigned identifier for the application. Nielsen provides you with the following two apid values
- Test apid: used during development, test, and certification processes
- Production apid: used only after Nielsen has certified the implementation.
- nol_sdkDebug: Nielsen SDK console logging that should be used while testing. Make sure to disable before moving the implementation to production.
- Set 'DEBUG' for all levels of logging enabled. 'INFO', 'WARN', & 'ERROR' can also be used for specific levels of debugging.
- Leave blank to disable.
Setup
In order to integrate the Nielsen plugin, you must create the plugin from thePlatform user interface, then integrate with your thePlatform video player.
The Platform Player Plugin Creation
- In order to create a plugin, go to the URL http://data.player.theplatform.com/player/client and login with valid credentials.
- Select the object as a 'Plugin' from the dropdown and check the option POST and type of FORM as 'json'.
- Create the body code similarly to the example body code provided below. You may refer the link for more help http://help.theplatform.com/display/plds/Updating+PlugIn+objects
Example in JSON form
- title : Title for plugin
- plplugin$jsUrl : URL for .js file which loads the plugin in
- plplugin$iconUrl : URL for showing icon of plugin
- plplugin$parameters: Parameters need to add with the Plugin
Integration file references
The URL for integration file references is as below
JavaScript: http://cdn-gl.imrworldwide.com/novms/tp/3/ggtp510.js
Note: The below body code uses the JavaScript Plugin reference
{
"$xmlns":
{
"plplugin": "http://xml.theplatform.com/player/data/PlugIn"
},
"title": "NielsenDCRJS510Plugin",
"plplugin$jsUrl": "http://cdn-gl.imrworldwide.com/novms/tp/3/ggtp510.js",
"plplugin$type": "plugin",
"plplugin$iconUrl": "http://yoursite/folder/nielsen.png",
"plplugin$componentType": "tpPlayer",
"plplugin$parameters": [
{
"plplugin$name": "apid",
"plplugin$type": "string",
"plplugin$label": "apid",
"plplugin$visibility": "basic",
"plplugin$description": "apid",
"plplugin$defaultValue": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
},
{
"plplugin$name": "nol_sdkDebug",
"plplugin$type": "string",
"plplugin$label": "nol_sdkDebug",
"plplugin$visibility": "basic",
"plplugin$description": "nol_sdkDebug",
"plplugin$defaultValue": "DEBUG"
}
]
}
Plugin Integration with Player
- Select the player and click on the plug-ins tab on the right hand side of the MPX UI
- Select the required plug-in from the drop-down
- For example, the created plug-in 'NielsenDCRJSPlugin' should now be available under the plugin drop-down.
The variables associated with the plug-in are shown as below, and the user needs to enter the correct values. Refer to your Nielsen Technical Account Manager if you have questions.
SDK / GlobalParameter Plug-in Variables
- apid: This value is given to you by your Nielsen Technical Account Manager. Example value: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
- nol_sdkDebug: Used in test environment for console logging: 'DEBUG'.
Note: Make sure to disable before moving to production by leaving blank.
Notes
The plugin takes metadata at four points.
1. When the plugin is initialized, it gets "defaults" object from the setup object. These data will be used for ALL videos and for ALL ads in the session (e.g. in the playlist). Certainly, if there are several videos in the list, there is no reason to pass properties this way, because different data can’t be passed for different streams.
2. When the video starts playing a video, the plugin obtains the following data from the player: name, id, src, length. The plugin calls the player for necessary data and sets the following parameters to the metadata that are being passed to the BSDK with "loadmetadata" events (3/15):
- title = the value returned in title
- nielsen_mediaid = the value returned in ContentID (if defined)
- mediaURL = the value returned in URL
- length = the value returned in timeObject.duration
3. The plugin takes the metadata (custom_fields) from the setup object. These data will be used for ALL videos, but not for ads, in the session
4. Player takes the metadata (custom_fields) provided for this video. The custom_fields can be filled up either in MPX console. The plugin takes custom_fields object from the clip object provided by the player. Please note, the custom_fields object in metadata is not altered by the player in any way.
The plugin puts data taken at these points to the same metadata object that is being passed to the BSDK with "loadmetadata" events (3/15).
So, data taken at point 1 can be overridden by the data with the same name taken at point 2.
Then, the data can be overridden by the data taken at point 3.
Then, the data can be overridden by the data taken at point 4.
Please note that property "default" is used to pass only general data (applied both for ads and content) that are not considered as custom fields of video stream.
The plugin doesn't send events 3/15/49/7/57 to the BSDK if there is no video stream metadata (custom fields) provided. In this case the plugin sends only id3 tags for the content using events 55.
Passing video metadata through the setup object requires initializing the plugin and the BSDK for each video.
We would suggest initializing the plugin and the BSDK once, and setting metadata (custom fields) for videos using MPX console.
Example of the setup object:
{
"apid": "PXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"custom_fields": {
"assetid": "123456",
"program": "myProgram"
},
"nol_sdkDebug": "DEBUG"
}