DCR Pre-Certification Checklist: Difference between revisions

From Engineering Client Portal

No edit summary
No edit summary
Line 6: Line 6:


=== Before You Start ===
=== Before You Start ===
{| class="wikitable"
|-
! style="width: 30px;" |
! Item
|-
| ☐ || For testing, your AppID should start with a "'''P'''" and your sfcode should be set to "'''dcr-cert'''".
|-
| ☐ || The opt-out/opt-in functionality has been implemented within your App.
|-
| ☐ || Ensure the AppSDK initializes and the API events are enabled for DCR.
|-
| ☐ || Ensure stop API for all scenarios where the video could be interrupted (e.g., alerts, alarm, calendar, incoming calls, killing the app, channel change, stop/pause, background/foreground, etc.).
|-
| ☐ || Once playback resumes from any interruption scenario, the app should call loadMetadata and playheadPosition APIs (iOS:playheadPosition | Android:setPlayheadPosition).
|-
| ☐ || Record the Device Identifier of your test device for your Digital Implementation Manager. See [[INSERT LINK TO PORTION OF THIS GUIDE THAT CONTAINS THESE INSTRUCTIONS]].
|-
| ☐ || Ensure that all content is consistently available and CMS enabled. Any interruptions or intermittence in the flow will cause delays in the testing process for all parties involved.
|}
==== Monitoring Tools ====
You will need an HTTP traffic-monitoring tool, such as Charles or Fiddler.
* '''Charles:''' http://www.charlesproxy.com/
* '''Fiddler:''' http://www.telerik.com/fiddler
=== Testing Your App Implementation ===
===== Capture Traffic =====
To capture traffic from the SDK, filter HTTP traffic with the string "imr", as seen in Figure 1. This will capture traffic going to Nielsen servers. You will then need to set up your device to proxy to this traffic analyzer. Instructions may vary from device to device and are available online.
*'''Charles:''' View → Focused Hosts
[[File:FocusedHostsScreenshot.png|link=]]
*'''Fiddler:''' Filters (tab)
[[File:fiddlerScreenshot.png|link=]]
===== Ensure opt-in =====
If you previously tested the opt-out function or app disable feature, make sure that an opt-in was completed on your device before continuing. Terminate your app completely before starting.
===== "Hello" Ping =====
The first HTTPS traffic you should see is the SDK request for configuration information, called a "'''hello ping'''". An example has been included below. In order to see this ping, Charles/Fiddler has to be configured to capture HTTPS traffic. This ping will be cached in memory, so it will be seen only on the first launch of the app or when metadata changes.
<code><nowiki>https://secure-dcr-cert.imrworldwide.com</nowiki>/cgi-bin/cfg?cfgv=300<wbr />&bldv=aa.5.1.1.4<wbr />&'''apid'''='''<yourappid>'''<wbr />&apv=.54120<wbr />&apn=XXX<wbr />&bid=com.sample.osmpSamplePlayer<wbr />&sdkv=aa.5.1.1<wbr />&nuid=bffd02d414622b36801fe547fba9acef83239fd062d50e0ab76e9eeb306d34b5<wbr />&osver=ANDROID.4.4.2<wbr />&devtypid=samsung-SM-T230NU<wbr />&devid=47e100d36744f745ef04c17799f92bfc42840533a2267589149f2c0395829555<wbr />&enc=true<wbr />&fmt=json<wbr />&adf=<wbr />&uoo=<wbr />&longitude=<wbr />&latitude=<wbr />&tz=-14400<wbr />&locale=en_US<wbr />&lang=en<wbr />&ccode=1<wbr />&dma=<wbr />&sfcode=dcr-cert<wbr />&sendTime=1470591848<wbr />&rnd=1470591848353</code>
==== Static ====
When you start your app after fresh install, and your app is measuring '''DCR''' Static content only, you should see a DCR static "app launch" known as "'''L'''" ping firing to secure-dcr-cert.imrworldwide.com server in your traffic-monitor. However, the "'''L'''" ping will be observed again if app goes into background and resumes back after 5 minutes.
<code><nowiki>https://secure-dcr-cert.imrworldwide.com</nowiki>/cgi-bin/gn?prd=dcr<wbr />&ci=APRP7<wbr />&ch=APRP7_NA_defChnAsset<wbr />&asn=defChnAsset<wbr />&tl=<wbr />&c6=vc,NA<wbr />&c13=asid,'''<yourappid>'''<wbr />&c32=segA,<wbr />&c33=segB,<wbr />&c34=segC,<wbr />&c15=apn,MTVR-APT-QA<wbr />&sup=0<wbr />&segment2=539<wbr />&segment1=usa<wbr />&forward=1<wbr />&ad=1<wbr />&cr=L<wbr />&c9=devid,a69983bc65ad94f9e57109fec68cc847bf59575ee03cadb76b187f4c24eaf793<wbr />&enc=true<wbr />&c1=nuid,142a40706f9c03bfea020f7297828534a1f14895d7a8c5303d9b8a19b3337c13<wbr />&r=<wbr />&at=launch<wbr />&rt=text<wbr />&c16=sdkv,aa.4.0.0<wbr />&c27=cln,473<wbr />&crs=0<wbr />&si=<wbr />&lat=28.0
9<wbr />&lon=-82.76<wbr />&c29=plid,XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX<wbr />&c30=bldv,aa.4.0.0.3<wbr />&st=dcr<wbr />&c7=osgrp,DROID<wbr />&c8=devgrp,TAB<wbr />&c10=plt,MBL<wbr />&c40=adbid,<wbr />&c14=osver,ANDROID.4.4.4<wbr />&c26=1<wbr />&c35=<wbr />&c36=cref1,<wbr />&c37=cref2,<wbr />&c11=agg,1<wbr />&c12=apv,apt.4.0.0.3<wbr />&h33=2<wbr />&c51=adl,0<wbr />&c52=noad,0<wbr />&devtypid=asus-Nexus-7<wbr />&rnd=1432529128693</code>
If your app is measuring DCR Video Content only, the "L" ping will '''not''' be observed upon app launch, only the “hello ping” will fire.
===== Static "view" ping =====
For any sections that are tagged for static content, you should receive a DCR Static “view” ping. The first landing page should always be tagged. An example of this ping:
<code><nowiki>https://secure-dcr-cert.imrworldwide.com</nowiki>/cgi-bin/gn?prd=dcr<wbr />&ci=APRP7<wbr />&ch=APRP7_NA_defChnAsset<wbr />&asn=defChnAsset<wbr />&tl=<wbr />&c6=vc,NA<wbr />&c13=asid,'''<yourappid>'''<wbr />&c32=segA,<wbr />&c33=segB,<wbr />&c34=segC,<wbr />&c15=apn,MTVR-APT-QA<wbr />&sup=0<wbr />&segment2=539<wbr />&segment1=usa<wbr />&forward=1<wbr />&ad=1<wbr />&cr=V<wbr />&c9=devid,a69983bc65ad94f9e57109fec68cc847bf59575ee03cadb76b187f4c24eaf793<wbr />&enc=true<wbr />&c1=nuid,142a40706f9c03bfea020f7297828534a1f14895d7a8c5303d9b8a19b3337c13<wbr />&r=<wbr />&at=view<wbr />&rt=text<wbr />&c16=sdkv,aa.4.0.0<wbr />&c27=cln,0<wbr />&crs=0<wbr />&si=<wbr />&lat=<wbr />&lon=<wbr />&c29=plid,XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX<wbr />&c30=bldv,aa.4.0.0.1<wbr />&st=dcr<wbr />&c7=osgrp,DROID<wbr />&c8=devgrp,TAB<wbr />&c10=plt,MBL<wbr />&c40=adbid,<wbr />&c14=osver,ANDROID.4.4.4<wbr />&c26=1<wbr />&c35=<wbr />&c36=cref1,<wbr />&c37=cref2,<wbr />&c11=agg,1<wbr />&c12=apv,apt.4.0.0.2<wbr />&h33=2<wbr />&c51=adl,0<wbr />&c52=noad,0<wbr />&devtypid=asus-Nexus-7<wbr />&rnd=1432068181560</code>
==== Video ====
===== "cr" Value =====
Approximately 60 seconds into viewing of your stream, you should see a DCR Video "'''view'''" ping fire to secure-dcr-cert.imrworldwide.com server indicated by the '''cr''' value containing a "V" in the format of '''4__00_99_V1_00000'''. The significant values are highlighted below in Table 2.
===== Duration Ping =====
The first duration ping is fired after you’ve viewed 5 minutes of content. You should see a DCR Video "'''duration'''" ping fire to secure-dcr-cert.imrworldwide.com indicated by the '''cr''' value containing a "D" in the format of '''4_00_99_D1_11111'''. This “D” ping should fire approximately
every 5 minutes after this initial duration ping has fired or when the content switches to an advertisement The ad length (c51) is the total ad duration viewed in the previous session, and the ad count (c52) is the number of ads viewed in previous segment. The significant values are highlighted below in Table 3.
===== View 5 minutes =====
View all channels for 5 minutes to ensure all channels fire a "duration" ping.
===== Duration Ping =====
Play a stream and move the app to the background. A pending “duration” ping should fire; crediting the appropriate number of minutes viewed from last ping (i.e. '''4_00_99_D1_11100'''). No other pings should fire after it has been moved to the background. In case SDK does not get a chance to send out the ping while going to background, SDK will send the pending ping on next re-launch.
===== Interruption =====
The same action will occur with any interruption to the stream’s playback (e.g., alarm, incoming call, etc.).
== Digital Content Rating (DCR) Metadata ==
Use the monitoring tools and the device logs to view the following DCR metadata keys to ensure all parameters are being passed accordingly. Tag Parameters are listed in here: Section 5 [[INSERT LINK TO PORTION OF THIS GUIDE THAT CONTAINS THESE INSTRUCTIONS]].
== DCR Metadata - Content ==
{| class="wikitable"
|-
! Key !! Description !! Purpose !! Example !! Tag Parameters
|-
| Example || Example || Example || Example || Example
|-
| Example || Example || Example || Example || Example
|}
''If this ping fails to fire, a common cause is improper metadata being passed to the SDK. Examples of the proper metadata to be passed in the loadMetadata() API call can be found in the Developer’s Guide''
== Test Case for Ad Measurement ==
Metadata

Revision as of 23:22, 3 August 2017

Engineering Portal breadcrumbArrow.png Digital breadcrumbArrow.png DCR & DTVR breadcrumbArrow.png DCR Pre-Certification Checklist

App Pre-Certification Checklist

The purpose of this document is to provide instruction on determining if your implementation of Digital Content Ratings (DCR) via App is ready to be submitted for certification. This document provides you the ability understand what is expected after implementation and before submitting to Nielsen. After all checks in this document are completed and passed, your Digital Implementation Manager (DIM) will further assess the implementation’s readiness for certification.

Before You Start

Item
For testing, your AppID should start with a "P" and your sfcode should be set to "dcr-cert".
The opt-out/opt-in functionality has been implemented within your App.
Ensure the AppSDK initializes and the API events are enabled for DCR.
Ensure stop API for all scenarios where the video could be interrupted (e.g., alerts, alarm, calendar, incoming calls, killing the app, channel change, stop/pause, background/foreground, etc.).
Android:setPlayheadPosition).
Record the Device Identifier of your test device for your Digital Implementation Manager. See INSERT LINK TO PORTION OF THIS GUIDE THAT CONTAINS THESE INSTRUCTIONS.
Ensure that all content is consistently available and CMS enabled. Any interruptions or intermittence in the flow will cause delays in the testing process for all parties involved.

Monitoring Tools

You will need an HTTP traffic-monitoring tool, such as Charles or Fiddler.

Testing Your App Implementation

Capture Traffic

To capture traffic from the SDK, filter HTTP traffic with the string "imr", as seen in Figure 1. This will capture traffic going to Nielsen servers. You will then need to set up your device to proxy to this traffic analyzer. Instructions may vary from device to device and are available online.

  • Charles: View → Focused Hosts

FocusedHostsScreenshot.png

  • Fiddler: Filters (tab)

fiddlerScreenshot.png

Ensure opt-in

If you previously tested the opt-out function or app disable feature, make sure that an opt-in was completed on your device before continuing. Terminate your app completely before starting.

"Hello" Ping

The first HTTPS traffic you should see is the SDK request for configuration information, called a "hello ping". An example has been included below. In order to see this ping, Charles/Fiddler has to be configured to capture HTTPS traffic. This ping will be cached in memory, so it will be seen only on the first launch of the app or when metadata changes.

https://secure-dcr-cert.imrworldwide.com/cgi-bin/cfg?cfgv=300&bldv=aa.5.1.1.4&apid=<yourappid>&apv=.54120&apn=XXX&bid=com.sample.osmpSamplePlayer&sdkv=aa.5.1.1&nuid=bffd02d414622b36801fe547fba9acef83239fd062d50e0ab76e9eeb306d34b5&osver=ANDROID.4.4.2&devtypid=samsung-SM-T230NU&devid=47e100d36744f745ef04c17799f92bfc42840533a2267589149f2c0395829555&enc=true&fmt=json&adf=&uoo=&longitude=&latitude=&tz=-14400&locale=en_US&lang=en&ccode=1&dma=&sfcode=dcr-cert&sendTime=1470591848&rnd=1470591848353

Static

When you start your app after fresh install, and your app is measuring DCR Static content only, you should see a DCR static "app launch" known as "L" ping firing to secure-dcr-cert.imrworldwide.com server in your traffic-monitor. However, the "L" ping will be observed again if app goes into background and resumes back after 5 minutes.

https://secure-dcr-cert.imrworldwide.com/cgi-bin/gn?prd=dcr&ci=APRP7&ch=APRP7_NA_defChnAsset&asn=defChnAsset&tl=&c6=vc,NA&c13=asid,<yourappid>&c32=segA,&c33=segB,&c34=segC,&c15=apn,MTVR-APT-QA&sup=0&segment2=539&segment1=usa&forward=1&ad=1&cr=L&c9=devid,a69983bc65ad94f9e57109fec68cc847bf59575ee03cadb76b187f4c24eaf793&enc=true&c1=nuid,142a40706f9c03bfea020f7297828534a1f14895d7a8c5303d9b8a19b3337c13&r=&at=launch&rt=text&c16=sdkv,aa.4.0.0&c27=cln,473&crs=0&si=&lat=28.0 9&lon=-82.76&c29=plid,XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&c30=bldv,aa.4.0.0.3&st=dcr&c7=osgrp,DROID&c8=devgrp,TAB&c10=plt,MBL&c40=adbid,&c14=osver,ANDROID.4.4.4&c26=1&c35=&c36=cref1,&c37=cref2,&c11=agg,1&c12=apv,apt.4.0.0.3&h33=2&c51=adl,0&c52=noad,0&devtypid=asus-Nexus-7&rnd=1432529128693

If your app is measuring DCR Video Content only, the "L" ping will not be observed upon app launch, only the “hello ping” will fire.

Static "view" ping

For any sections that are tagged for static content, you should receive a DCR Static “view” ping. The first landing page should always be tagged. An example of this ping:

https://secure-dcr-cert.imrworldwide.com/cgi-bin/gn?prd=dcr&ci=APRP7&ch=APRP7_NA_defChnAsset&asn=defChnAsset&tl=&c6=vc,NA&c13=asid,<yourappid>&c32=segA,&c33=segB,&c34=segC,&c15=apn,MTVR-APT-QA&sup=0&segment2=539&segment1=usa&forward=1&ad=1&cr=V&c9=devid,a69983bc65ad94f9e57109fec68cc847bf59575ee03cadb76b187f4c24eaf793&enc=true&c1=nuid,142a40706f9c03bfea020f7297828534a1f14895d7a8c5303d9b8a19b3337c13&r=&at=view&rt=text&c16=sdkv,aa.4.0.0&c27=cln,0&crs=0&si=&lat=&lon=&c29=plid,XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&c30=bldv,aa.4.0.0.1&st=dcr&c7=osgrp,DROID&c8=devgrp,TAB&c10=plt,MBL&c40=adbid,&c14=osver,ANDROID.4.4.4&c26=1&c35=&c36=cref1,&c37=cref2,&c11=agg,1&c12=apv,apt.4.0.0.2&h33=2&c51=adl,0&c52=noad,0&devtypid=asus-Nexus-7&rnd=1432068181560

Video

"cr" Value

Approximately 60 seconds into viewing of your stream, you should see a DCR Video "view" ping fire to secure-dcr-cert.imrworldwide.com server indicated by the cr value containing a "V" in the format of 4__00_99_V1_00000. The significant values are highlighted below in Table 2.

Duration Ping

The first duration ping is fired after you’ve viewed 5 minutes of content. You should see a DCR Video "duration" ping fire to secure-dcr-cert.imrworldwide.com indicated by the cr value containing a "D" in the format of 4_00_99_D1_11111. This “D” ping should fire approximately every 5 minutes after this initial duration ping has fired or when the content switches to an advertisement The ad length (c51) is the total ad duration viewed in the previous session, and the ad count (c52) is the number of ads viewed in previous segment. The significant values are highlighted below in Table 3.

View 5 minutes

View all channels for 5 minutes to ensure all channels fire a "duration" ping.

Duration Ping

Play a stream and move the app to the background. A pending “duration” ping should fire; crediting the appropriate number of minutes viewed from last ping (i.e. 4_00_99_D1_11100). No other pings should fire after it has been moved to the background. In case SDK does not get a chance to send out the ping while going to background, SDK will send the pending ping on next re-launch.

Interruption

The same action will occur with any interruption to the stream’s playback (e.g., alarm, incoming call, etc.).

Digital Content Rating (DCR) Metadata

Use the monitoring tools and the device logs to view the following DCR metadata keys to ensure all parameters are being passed accordingly. Tag Parameters are listed in here: Section 5 INSERT LINK TO PORTION OF THIS GUIDE THAT CONTAINS THESE INSTRUCTIONS.

DCR Metadata - Content

Key Description Purpose Example Tag Parameters
Example Example Example Example Example
Example Example Example Example Example

If this ping fails to fire, a common cause is improper metadata being passed to the SDK. Examples of the proper metadata to be passed in the loadMetadata() API call can be found in the Developer’s Guide

Test Case for Ad Measurement

Metadata