DCR Czech Static Browser SDK

From Engineering Client Portal

Engineering Portal / Digital / International DCR / DCR Czech Static Browser SDK

This guide will show you how to enable page measurement (aka Static) on your website(s). The Nielsen Tracking Code must be added to each page with different metadata.

Prerequisites

To get started, an App ID is needed. The App ID is a unique ID assigned to the player/site/app. This will be provided upon starting the integration. If not, please contact Nielsen local staff - see Czech Contacts.

apid: "PXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"


Step 1: Add Static Queue Snippet

The static queue snippet allows the SDK APIs to be called while the actual SDK and configuration file are still being downloaded. As the queue can capture all API calls before the download completes, there is no wait time. Once the SDK is available, the API calls will transition from directing to the queue to the SDK seamlessly.

!function(e,n){
  function t(e){
    return"object"==typeof e?JSON.parse(JSON.stringify(e)):e
  }
  e[n]=e[n]||
  {
    nlsQ:function(o,r,c){
      var s=e.document,
      a=s.createElement("script");
      a.async=1,
      a.src=("http:"===e.location.protocol?"http:":"https:")+"//cdn-gl.imrworldwide.com/conf/"+o+".js#name="+r+"&ns="+n;
      var i=s.getElementsByTagName("script")[0];
      return i.parentNode.insertBefore(a,i),
      e[n][r]=e[n][r]||{g:c||{},
      ggPM:function(o,c,s,a,i){e[n][r].q=e[n][r].q||[];try{var l=t([o,c,s,a,i]);e[n][r].q.push(l)}
catch(e){console&&console.log&&console.log("Error: Cannot register event in Nielsen SDK queue.")}},
      trackEvent:function(o){e[n][r].te=e[n][r].te||[];try{var c=t(o);e[n][r].te.push(c)}
catch(e){console&&console.log&&console.log("Error: Cannot register event in Nielsen SDK queue.")}}},
      e[n][r]
    }
  }
}(window,"NOLBUNDLE");

Step 2: Create SDK Instance

While creating an SDK instance, initialize the SDK by calling:

  // SDK Initialization
  var nSdkInstance = NOLBUNDLE.nlsQ("PXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX","nlsnInstance", {nol_sdkDebug: "debug"});


The initialization call has the below parameters:

Parameter Description Required Values
apid Unique ID assigned to player/site Yes 'PXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
instanceName Name of SDK instance Yes "any string value"
nol_sdkDebug Enables Nielsen console logging. Only required for testing No "{nol_sdkDebug: "debug"})"


When the initialization call is made, a unique static config file, <apid>.js, will be downloaded based on the apid and cached by the client-side browser(s).

Once the static config file is downloaded, the SDK will be fully downloaded and initialized. All SDK modules are included in one file: "nlsSDK600.bundle.min.js".

Step 3: Create Metadata Object

  // Content Metadata
  var nielsenMetadata = {
    type: 'static',
    assetid: '', // *DYNAMIC METADATA*: unique ID for each article **REQUIRED**
    section: '', // *DYNAMIC METADATA*: section of site **REQUIRED**
    segA: '', // *DYNAMIC METADATA*: custom segment
    segB: '', // *DYNAMIC METADATA*: custom segment
    segC: ''  // *DYNAMIC METADATA*: custom segment
    };


Metadata can be passed through key-values using the Nielsen reserved keys. See Czech Metadata.

Aggregation Limits There are limits on the number of unique values that can be aggregated on in reporting. The specific limitations by key are:

Key Aggregation Limit
section maximum of 25 unique values (section <= 25)
segA Maximum number of unique values allowed across segA, segB, and segC is 25 (segA + segB + segC<= 25)
segB Maximum number of unique values allowed across segA, segB, and segC is 25 (segA + segB + segC<= 25)
segC Maximum number of unique values allowed across segA, segB, and segC is 25 (segA + segB + segC<= 25)

So for example, if your site has 30 sections (e.g. News, Sports, Videos, Music, etc.), we would only measure for the first 25 sections. The same applies to the custom breakout parameters segA/B/C.

Step 4: Call staticstart Event

Start static measurement :

  // Event 'staticstart' Call
  nSdkInstance.ggPM("staticstart", nielsenMetadata);

The content metadata object is passed as a parameter.


Step 5: Call staticend Event

Stop static measurement = to end the current static session and track a new static content:

  // Event 'staticend' Call
  nSdkInstance.ggPM("staticend", nielsenMetadata);

The content metadata object is passed as a parameter.
Recommendation : Do not place this call inside onBeforeUnload method, because SDK need some time and resources to deliver data to cloud.

Step 6 : Nielsen Opt-Out

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 they would prefer not to participate in any Nielsen online measurement research. To implement the opt-out option, include the following two items in your privacy policy.

  • 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

On the Nielsen Digital Measurement Privacy Policy page, users can click Choices to read more detailed information about the measurement software, learn about their options with regard to Nielsen measurement, and, if they do not want to participate in Nielsen online measurement, click a link to receive an opt-out cookie. Once users have opted-out, they can choose to opt back into Nielsen Measurement at anytime by selecting the opt back 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 able to be measured.

The following paragraph is a template for an opt-out statement (in Czech).

Tato aplikace obsahuje proprietární měřicí software společnosti Nielsen, který uživatelům umožní přispívat k průzkumu trhu. Chcete-li se dozvědět více o informacích, které může software Nielsen shromažďovat a o Vaší možnosti měření deaktivovat, přečtěte si zásady ochrany osobních údajů Nielsen Digital Measurement na <a href=https://www.nielsen.com/cz/cs/legal/privacy-statement/digital-measurement/>Nielsen Digital Measurement Privacy Policy</a>

Opt-out status

Optional : to retrieve Opt-Out status call getOptOutStatus() , result is boolean value true (OptOuted = not measuring) or false (not OptOuted = measuring).

nSdkInstance.getOptOutStatus();

Step 7 : Test your player by your self

see how to test player at https://www.youtube.com/watch?v=t9eUsf9yh8w&feature=youtu.be

Test SKD API calls

to verify SDK API calls use Chrome and install add-on called "Nielsen SDK Inspector" (https://chrome.google.com/webstore/search/%20Nielsen%20SDK%20Inspector)


Test outgoing pings

to verify outgoing pings use Charles Proxy or any other proxy sw capable to sniff your network traffic. Filter URLs to "imrworld". Example of such ping :

http://secure-eu-cert.imrworldwide.com/cgi-bin/gn?prd=dcr&ci=de-205177&ch=de-205177_c01_static-123_P&asn=static-123&sessionId=b45a84a8-7847-4b2d-8cec-36baad20ed29&prv=1&c6=vc,c01&ca=NA&c13=asid,T74896328-A13B-4985-8798-0AEBFA228D3E&c32=segA,segA%20example&c33=segB,segB%20example&c34=segC,segC%20example&c15=apn,&sup=1&segment2=&segment1=&forward=0&ad=0&cr=V&c9=devid,&enc=true&c1=nuid,2ccec3b2-36a5-4eeb-a408-4d6eec7e1083&at=view&rt=text&c16=sdkv,bj.6.0.0&c27=cln,0&crs=&lat=&lon=&c29=plid,14991647575861178&c30=bldv,6.0.0.15&st=dcr&c7=osgrp,&c8=devgrp,&c10=plt,&c40=adbid,&c14=osver,NA&c26=dmap,1&dd=&hrd=&wkd=&c35=adrsid,&c36=cref1,&c37=cref2,&c11=agg,1&c12=apv,&c51=adl,0&c52=noad,0&devtypid=&pc=NA&c53=fef,n&c54=oad,&c55=cref3,&c57=adldf,2&ai=static-123&c3=st,c&c64=starttm,1499164759&adid=static-123&c58=isLive,false&c59=sesid,&c61=createtm,1499164772&c63=pipMode,&c68=bndlid,&nodeTM=&logTM=&c73=phtype,&c74=dvcnm,&c76=adbsnid,&df=0&c44=progen,&davty=0&si=http%3A%2F%2Fsdkdemo.admosphere.cz%2FBrowserSdk6static%2Fdemo1cz%2F&c66=mediaurl,&c62=sendTime,1499164772&rnd=397839

Step 8 : Provide your app for certification

Once ready please send your application to Nielsen local staff for verification - see Czech Contacts.

Step 9 : Going Live

After the integration has been certified (but not prior that), users will need to disable debug logging by deleting {nol_sdkDebug: 'DEBUG'} from initialization call - see Step 2.

Demos

see live demos with sample implementation available at at http://sdkdemo.admosphere.cz/