Brightcove Plugin Browser (Draft)
From Engineering Client Portal
The Nielsen Browser SDK (Software Development Kit) is the Nielsen framework for measuring media consumption in browser environments.
OS | Player Version | SDK Version | Supported Ad Frameworks | Download | |
---|---|---|---|---|---|
5.18.0 - 5.22.0 | 5.1.1 | Contact Nielsen |
.
This SDK has the following features:
- Multiple product support: built-in capabilities to support Digital Content Ratings(DCR), VideoCensus(VC), Digital Program Ratings(DPR) and IAG.
Note: This Plugin should not be used with Brightcove V5 player v5.18 - 5.22.0
Getting Started
What You Will Need?
- Nielsen App ID (apid): a Unique ID that Nielsen assigns to the site / player. The 'apid' will be provided by your Technical Account Manager.
- BrightCove Plugin: Plugin URLs are provided in the below section.
- Test Environment Validation: before you move into production, Nielsen must validate the SDK integration in a test environment.
Initial Configuration
Before integrating the plugin, configure the metadata, obtain Nielsen APID's, and review the Nielsen plugin URLs for Brightcove.
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.
Brightcove Plugin URL's
- BC Perform Player (JS)
Global Parameters
To initialize the Nielsen Browser SDK, pass four global parameters when adding the BC Perform plugin.
Keys | Description | Values |
---|---|---|
apid | Unique ID assigned to player/site. There are two IDs provided | 'XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
|
sfcode | Location of collection environment. During testing, all traffic should be directed to 'dcr-cert'. | testing: 'dcr-cert'
production: |
nsdkv | Nielsen SDK Version | '511'
|
apn | User-defined string value for describing the player / site. | custom |
The below parameter is optional but recommended when testing implementation.
Keys | Description | Values |
---|---|---|
nol_sdkDebug | Nielsen SDK console logging that should be used while testing. Make sure to disable before moving the implementation to production. | 'INFO' – API calls
|
Configure Metadata
There are two types of metadata
- DCR Content Metadata: identify content
- DCR Ad Metadata: identify ad
Metadata can be passed through key-values using the Nielsen reserved keys.
The metadata received for each asset is used for classification and reporting. There are reserved Nielsen keys for collecting the required metadata.
Content Metadata
Keys | Description | Values | Type | Required |
---|---|---|---|---|
type | Type of asset | 'content' |
string | Yes |
assetid | Unique ID assigned to asset | custom (no Special Characters) |
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 (0 for live stream) |
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.
Setup
In order to integrate the Nielsen plugin, follow the steps for setting up these players in the Brightcove user interface as they appear below by each player type.
Brightcove Player Setup
The new Brightcove Perform player allows two interchangeable ways to add the plugin: on the web site, so the player will come already configured, and programmatically on the client side.
These options, as well as the whole process of adding a plugin is common to the player and described here http://support.brightcove.com/en/perform/docs/configuring-player-plugins
For Nielsen SDK plugin, the integrator would need
- A list of initialization parameters (Application ID, App Name, sfcode, and nsdkv). Refer to Global Parameters section above.
- A link (URL) to SDK plugin (ggng510.js) for Brightcove
- A list of metadata fields with their names (Nielsen Key Mapping) to pass to the plugin. For more information, refer to Configure Metadata section.
- Access to the Brightcove VideoCloud Perform Portal https://studio.brightcove.com/products/videocloud/home
To add Nielsen SDK plugin using UI do the following
Open Brightcove VideoCloud portal, open players list and open (or create) a player the plugin should be added to. Scroll down to the 'Plugins' section in player configuration
- Click "Edit" and enter the URL to plugin JS file. Click "+" to add the row.
- Then click "Name, Options (JSON)" row and enter "NielsenBC" for the plugin name and required initialization parameters provided by your Nielsen Technical Account Manager, as below:
Example Code:
{
"nol_sdkDebug": "DEBUG",
"sfcode": "dcr-cert",
"apn": "Test_player_name",
"nsdkv": "511",
"apid": "T4BFBFAC9-XXXX-XXXX-XXXX-22B092CBCC2B",
}
Adding "nol_sdkDebug": "DEBUG"
will allow SDK events in the console.
Note:
"nol_sdkDebug": "DEBUG"
must be removed when moving a player live to production to disable the debug logging.
Pass Content & Ad Metadata to The Brightcove Video Player
Pass the required content, and ad metadata to the Brightcove video player so that the Nielsen Plug-In is able to pick it up in order to populate the DCR crediting tags. The Nielsen Plug-In is preconfigured to automatically obtain metadata from Custom Fields. These can be set through the Brightcove User Interface (under ADMIN) or programmatically.
Information on creating Custom Metadatafields can be found on the Support site.
Note: If you are using the Brightcove player with the PERFORM service, you will need to populate the media info. Please contact Brightcove support for details on this process.
For more information on how to pass the required metadata to the Brightcove VideoCloud player, please reach out to your Brightcove Account Manager for further assistance.
To add Nielsen SDK programmatically
- Include plugin source
<script src="//cdn-gl.imrworldwide.com/novms/bc/3/ggng510.js"></script>
- Bind plugin to the player with inititalization parameters
videojs("myPlayerID").NielsenBC( { "apid": "PXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "apn": "Your_player_name", "sfcode": "dcr-cert", "nsdkv": "511" } }
- For CMS data binding, the following rules apply
- The plugin automatically captures the following video data
- * Data from video duration is automatically capture by the plugin
nielsenData.length = videoInfo.duration;
- * Field "type" is set to
"content"
,"preroll"
,"midroll"
or"postroll"
. - If video data contains custom fields, all those fields are copied over to Nielsen data:
nielsenData[i] = videoInfo.custom_fields[i]
(with 'i' iterated over all custom field names), which may override some of the default values or standard field values - The plugin does not automatically assign a value to assetid. To pass programmatically, use the custom fields object. (See code example below)
- Parameter videoInfo.id must be a unique string to allow the plugin detecting the content change.
Notes
- If some CMS metadata values should be set for all videos played, those values can be passed as "defaults" field on the player level (in the player configuration), like this
{ "apid": "PXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "apn": "Your_player_name", "sfcode": "dcr", "nsdkv": "511", "defaults": { "customValue": "true" } }
- CMS metadata values can also be set at the asset level
{ "sources" : [ { "src" : "http://solutions.brightcove.com/../videos/Sea_SeaHorse.mp4", "type" : "video/mp4" } ], "custom_fields": { "assetid": "6475587654", "mediaURL": "http://solutions.brightcove.com/bcls/../videos/Sea_Anemone.mp4", "dataSrc": "cms", "hasAds": "1" }, "name": "Sea Anemone", "thumbnail": "http://solutions.brightcove.com/bcls/assets/images/Sea_Anemone_poster.png", "id": "5195888503001" } }
Ad Support
The plugin will also extract information about the number and length of advertisements played with the video.
Opt-Out Implementation
The site must provide a means for the user to opt out of, or opt back into Nielsen Measurement. A user can opt out if preferring to not participate in any Nielsen online measurement research. To implement the Opt-Out option, include the following in the privacy policy page:
- A notice that the player includes proprietary measurement software that allows users to contribute to market research (such as Nielsen TV Ratings)
- A link to the Nielsen Digital Measurement Privacy Policy at http://www.nielsen.com/digitalprivacy
On the Nielsen Digital Measurement Privacy Policy page, users can click choices to read more detailed information about the measurement software and their options. The users can click a link to retrieve an Opt-Out cookie if they do not want to participate in Nielsen online measurement.
Nielsen properties may feature Nielsen proprietary measurement software, which will allow the users to contribute to market research, such as Nielsen TV Ratings.
To learn more about the information that Nielsen software may collect and your choices with regard to it, please see the Nielsen Digital Measurement Privacy Policy at http://www.nielsen.com/digitalprivacy.
Opt-In
Once users have opted out, they can choose to opt back into Nielsen Measurement at anytime by selecting the Opt-In link on the Nielsen Digital Privacy Policy page. When a user selects the link, their Opt-Out cookie will be deleted and they will be measured.
Going Live
After the integration is certified, there is one update to be made to the existing code to ensure that the player will be measured properly:
- App ID: Change the apid to the production ID starting with the letter 'P':
'PXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
- Collection Environment: Change the value for
sfcode
fromdcr-cert
todcr
to point traffic to the Nielsen production collection environment. Do not usedcr-cert
for production traffic
Note: Ensure that the
nol_sdkDebug
parameter is not used.