Difference between revisions of "DAR Tag Implementation Guide"

From Engineering Client Portal

(Additional Parameters)
(HEM Support (Hashed Email))
(27 intermediate revisions by 3 users not shown)
Line 3: Line 3:
  
  
== Introduction ==
+
= Introduction =
  
Nielsen Digital Ad Ratings is a measurement platform for online advertising campaigns. The platform provides a clear view of the true audience of a campaign, including '''Reach''', '''Frequency''', and '''GRP''' statistics by audience demographic group.
+
This document provides an overview of the Nielsen Digital Ad Ratings (DAR) Tags and the steps necessary to implement them as part of your digital advertising campaigns.
 
+
=== What is DAR ===
The key innovation of the platform is the inclusion of demographic data from leading web publishers, including Facebook, to attach actual user demographics to ad impressions.
+
DAR is a measurement platform for digital advertising campaigns. The platform provides a clear view of the true audience of a campaign, including Reach, Frequency, and GRP statistics by audience demographic group.  
 
+
=== What we measure===
The diagram below summarizes how the Nielsen tag measures the ad campaign:
+
All DAR tags allow you to measure campaign impressions and the DAR JavaScript tags measure ad viewability, GIVT (General Invalid Traffic), and SIVT (Sophisticated Invalid Traffic) across platforms including web, mobile, and in-app.
# Advertiser places ads on one or more websites
+
=== How we measure it===
#Website displays ad to a user
+
Nielsen’s DAR suite of JavaScript tags together with a pixel tag fallback will be present in your ad placements. We utilize industry-standard APIs to perform measurement cross-browser and cross-platform. In most cases, you will only need to add a simple URL through your ad management interface to fully utilize DAR measurement in your campaigns.
#Nielsen tag counts impressions and controls redirect to the Data Enrichment Provider
+
=== Prerequisites ===
[[File:dar-image2.png|900px]]
+
For steps outlined in this document, you should have access to Nielsen’s Campaign Management Interface (CMI) and a Nielsen Technical Account Manager (TAM) will be working with you during the implementation phase.
 
+
__TOC__
 
+
= DAR Measurement Types =
=== Support for Other Nielsen Ad Effectiveness Products ===
 
 
 
The tag used for Nielsen Digital Ad Ratings is compatible for all Nielsen Ad Effectiveness products, including (but not limited to) Brand Effect Extended View, Response Effect, and Sales Effect.
 
  
=== User Experience ===
+
== DAR Display==  
  
The tags described in this document are used only to measure audience exposure to advertisements; they do not launch a survey, and have no impact on the user experience. Typical response time for the tag is on par with industry standards and because the code executed is simple and fires after the ad loads, they are transparent to the user.
+
The DAR Display JavaScript tag reports ad impressions as well as measures ad viewability and SIVT. In standard web placements, it will find the ad unit in the surrounding DOM container and will then report viewability as a time series with a 1-second resolution.
  
For further information on survey-based products, or any other products, please contact your Client Services Manager.
+
The DAR tag will report the MRC-required minimum of 1 second on screen and a continuous viewability time series for the lifetime of the ad session to enable additional viewability qualifiers.
__TOC__
 
== Available Tag Versions ==
 
  
The Nielsen Digital Ad Ratings system offers 2 basic types of ad tags
+
The tag can utilize the IAB’s [https://iabtechlab.com/standards/open-measurement-sdk/ '''Open Measurement SDK'''] (OM SDK) including [https://iabtechlab.com/blog/open-measurement-for-web-video-arrives/ '''OM Web'''] integration if the OM Interface Definition (OMID) is available, or it will use industry-standard web APIs to measure viewability.
  
* '''IMAGE (1X1) Pixel'''
+
=== Requirements ===
This is the simplest version of the tag, generally for use by clients who cannot accept JavaScript format tags or have limited options for implementation. Itincludes encryption, but does not utilize referrer masking.
 
  
* '''JavaScript Tag'''
+
The DAR Display tag requires a JavaScript-enabled browser for web environments or the OM SDK for in-app to operate and should be placed close to the corresponding measured ad unit. It should be on the same DOM level (e.g. directly under the same parent) or in a child node under the same parent node. The ad unit should be a content-bearing DOM element (e.g. img, canvas, SVG, iframe, div) with a minimum size of 30x30 pixels.
This is a more complex tag which includes encryption and masking of referrer site via a script call. This Tag may also be used to measure Viewability metrics.
 
There may be additional functionality offered by this format in future releases as well.
 
* '''Ad Networks''' This tag includes additional functionality to scrape the URL of the hosting website if associated to an ad network within the Nielsen system. Keep in mind URLs captured will only be used for “site adjustment factors” and not be included in any reporting
 
  
<blockquote>'''NOTE''' - Both tag types support macros and are available in secure and non-secure formats. Please reach out to your Nielsen Technical Account Manager for additional information.</blockquote>
+
=== Parameters ===
  
While the IMAGE pixels are easiest to implement, the JavaScript versions are recommended because they provide the highest level of confidentiality by masking the source of the ad from being viewable by Data Providers. Some situations may not afford use of JavaScript and in those cases, the pixel version will be recommended. Note that in many cases the referrer is cast as the ad server due to the nature of being served inside iframes, so the “masking” here is extraneous.
+
The minimum required DAR parameters are '''ca, ci, cr, pc, ce''' and '''am'''. See the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']] for a full list of parameters.
  
=== Tag Examples ===
+
=== Example Tag ===
 
 
<br>
 
'''IMAGE Pixel Tag''' (Static example)
 
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
<img src="http://secure-gl.imrworldwide.com/cgi-bim/m?ci=entXXXX&at=view&rt=banner&am=3&ca=cmpXXXX&cr=&pc=plcXXXX&r=[timestamp]"
+
<script type="text/javascript"  
width="1" height="1" alt=""/>
+
src="https://dar.imrworldwide.com/js/dar.js?ca=nlsnXXXXXX&cr={AD.ID}&ce={PUBLISHER.ID}&ci=nlsnciXXXX&pc={PLACEMENT.ID}&am=3">
</syntaxhighlight>
 
 
 
'''IMAGE Pixel Tag''' (Macro example)
 
<syntaxhighlight lang="javascript">
 
<script type="text/javascript"
 
src="http://secure-gl.imrworldwide.com/cgi-bin/m?ci=entXXXX&am=1&mr=1&ty=js&at=view&rt=banner&ep=1&ca=%ebuy!&cr=%ecid!&pc=%epid!&r=[timestamp]">
 
 
</script>
 
</script>
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''JavaScript Tag''' (Static example)
+
=== Example OMID Display Placement ===
  
<syntaxhighlight lang="javascript">
+
DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table below during setup:
<script type="text/javascript"
 
src="http://secure-gl.imrworldwide.com/cgi-bim/m?ci=entXXXX&at=view&rt=banner&am=3mr=1&ty=js&ca=cmpXXXX&cr=&pc=plcXXXX&r=[timestamp]"
 
></script>
 
</syntaxhighlight>
 
  
'''JavaScript Tag''' (Macro example)
+
{| class="wikitable"
 +
|-
 +
! style="width: 20%" | OM Parameter
 +
! style="width: 40%" | Description
 +
! style="width: 40%" | Nielsen Value
 +
! style="width: 5%" |Required
 +
|-
 +
| Vendor Key
 +
| ID for measurement provider
 +
| nielsen.com-omid
 +
| ✔
 +
|-
 +
| JavaScript Resource URL
 +
| URL for measurement provider’s verification script
 +
|<syntaxhighlight lang="html"> https://dar.imrworldwide.com/js/dar.js</syntaxhighlight>
 +
| ✔
 +
|-
 +
| Verification Parameters
 +
| Measurement provider’s verification tag parameters
 +
| style="font-family:'Courier New', Courier, monospace !important; color:#222222;" |<syntaxhighlight lang="html">ca=nlsnXXXXXX&cr={AD.ID}&ce=publisherXXXX&ci=nlsnciXXXX&pc=placementID_XXXX1&am=3</syntaxhighlight>
 +
| ✔
 +
|-
 +
| Verification Not Executed URL
 +
| Error URL when the ad player denies measurement script execution
 +
| style="font-family:'Courier New', Courier, monospace !important; color:#222222;" | <syntaxhighlight lang="html">https://events.imrworldwide.com/er?ercd=8800&erms=verificationNotExecuted-
 +
{reason}&ca=nlsnXXXXXX&cr=ad_ID_XXXX&ce=publisherXXXX&
 +
ci=nlsnciXXXX&pc=placementID_XXXX5&am=3
 +
&c13={asid,app_id}</syntaxhighlight>
 +
|
  
<syntaxhighlight lang="javascript">
+
|}
<script type="text/javascript"
 
src="http://secure-gl.imrworldwide.com/cgi-bin/m?ci=entXXXX&am=1&mr=1&ty=js&at=view&rt=banner&ep=1&ca=%ebuy!&cr=%ecid!&pc=%epid!&r=[timestamp]"></
 
script>
 
</syntaxhighlight>
 
<br>
 
  
The Nielsen Digital Ad Ratings system also features the ability to record Viewability information such as: How long an Ad has been visible on the screen, and what portion on the Ad. This is an additional feature that can be purchased from your Nielsen Client Services Representative.
+
<blockquote>
 +
Note: The verificationNotExecuted Error URL is recommended for better troubleshooting during campaign setup. If your system can provide a macro for the reason of the interrupted measurement session, it can be added in place of the {reason} placeholder in the error URL. This can be an error code or a clear text error message.</blockquote>
  
Viewability for display ads can ONLY be offered through the JavaScript tag. If you select this service, the following is an example of the tag that will be provided to you by the Nielsen Digital Implementation Team:
+
=== Expected Display Ad Session Pings ===
 
+
{| class="wikitable"
'''JavaScript with Viewability for display ads:'''
 
<syntaxhighlight lang="javascript">
 
<script type="text/javascript"
 
src="http://secure-gl.imrworldwide.com/cgi-bin/m?ci=entXXXX&am=1&mr=1&ty=js&at=view&rt=banner&ep=1&ca=%ebuy!&cr=%ecid!&pc=%epid!&r=[timestamp]"></
 
script>
 
</syntaxhighlight>
 
 
 
<blockquote>The above tag is just examples and should not be placed in any live site or ad server. You will be provided with tags specifically designed for your media plan/campaign or be able to download tags after creation in CMI (Campaign Management Interface)</blockquote>
 
 
 
== Standard DAR Tag ==
 
The DAR tag is available as a 1x1 pixel. The following pixel/tag parameters must be specified for all DAR tags, 1x1, regardless of implementation type: browser, mobile browser, mobile app or connected device.
 
  
{| class="wikitable"
+
! '''Description'''
 +
! '''Timing'''
 +
! '''Path'''
 
|-
 
|-
! Tag Parameter
+
| DAR Main Ping
! Description
+
| At initial load
 +
| secure-gl.imrworldwide.com/cgi-bin/m
 
|-
 
|-
| CI
+
| Nielsen Measure Ping
| Client ID: the ID that is associated with the DAR account that processed tag data is associated with. Will always be hardcoded to a Nielsen generated value that comes from the Nielsen campaign management system
+
| Measurement start
|- style="background-color:#eff8ef;"
+
| events.imrworldwide.com/nmp
| AM
 
| Ad Server: an ad server participating on the campaign media-plan. This is an internal Nielsen generated value when the ad server is indicated on the campaign during setup
 
 
|-
 
|-
| CA
+
| Primary Standard Ping
| Campaign Id: this is the ID associated with your DAR campaign. Unless you are creating and managing the Nielsen campaign via the DAR Tag API, then this parameter value will always be generated from the Nielsen campaign management system. Note: often maps to a media-plan I/O Id
+
| After 1 second of viewable duration (may not occur based on MRC rules)
|- style="background-color:#eff8ef;"
+
| events.imrworldwide.com/psp
| CR
 
| Creative Id: DAR does not currently report at the creative level; can be hard coded ad server id or associated with a macro expansion
 
 
|-
 
|-
| PC
+
| Timed Pings
| Placement Id: can be generated by the ad server via macro expansion or generated by the Nielsen campaign management system. Note: often maps to one of Ad Unit Id, Line Item Id or Video Ad Id
+
| At 1, 5, 15 and 120 seconds of ad session time (may not occur based on ad session length)
|- style="background-color:#eff8ef;"
+
| events.imrworldwide.com/1sp, 5sp, 15sp, 120sp
| CE
 
| Site Id: the Id that identifies a publisher site that the placement needs to be mapped to. Maps into the Nielsen MarketView database. Note: can be hardcoded to a pre-registered ad server site id in the Nielsen system or a macro expansion where more than one pre-existing site ids have been made known to Nielsen
 
 
|-
 
|-
| R
+
| Final Ping
| Cachebuster (web): timestamp / random number. Generated by ad server
+
| At window/tab unloading event
|- style="background-color:#eff8ef;"
+
| events.imrworldwide.com/fp
| AT
 
| Fixed value: “view”
 
 
|-
 
|-
| RT
+
| Error Ping
| Fixed value: “banner”
+
| Potential integration error - please contact your Nielsen representative
|- style="background-color:#eff8ef;"
+
| events.imrworldwide.com/er
| ST
 
| Fixed value: “image”
 
 
|}
 
|}
<blockquote> Do not URL encode the values</blockquote>
 
  
== Additional Parameters ==
+
=== Ping Flow ===
In this section we describe the additional parameters that the DAR tag can support, specifically Hashed Email, UID2 values, along with Page URL and Bundle Identifier if available.  Please work with your Nielsen Technical Account Manager on deciding which of the following parameters to append to the standard DAR tag. 
 
  
'''Web Browser DAR tag (cookie based persons identification)'''
+
This flow illustrates the behavior of the DAR Display tag.<br />
  
[https://secure-gl.imrworldwide.com/cgi-bin/m?ci=nlsnci535&am=3&at=view&rt=banner&st=image&ca=nlsn12452&cr=crtve&pc=nlsn_plc0001&ce=000&r=34245454 https://secure-gl.imrworldwide.com/cgi-bin/m?ci=nlsnci535&am=3&at=view&rt=banner&st=image&ca=nlsn12452&cr=crtve&pc=<creativeid>_plc0001&ce=<siteid>&r=<timestamp>]
+
[[File:Screenshot 2022-06-22 152646.png]]
  
'''Web Browser PLUS tag'''
 
http://secure-gl.imrworldwide.com/cgi-bin/m?ci=nlsnci535&am=3&at=view&rt=banner&st=image&ca=nlsn12452&cr=crtve&pc=<creativeid>_plc0001&ce=<siteid>&c7=osgrp,IOS&c8=devgrp,PHN&c9=devid,XXXX-XX-XXXXX-XXXX &c10=plt,MBL&c12=apv,<appVersion>&c13=asid,NIELSEN-PROVIDEDID&c14=osver,7.0.4&uoo=1&r=<timestamp>
 
=== HEM Support (Hashed Email) ===
 
 
{| class="wikitable"  
 
{| class="wikitable"  
 
|-  
 
|-  
! NAME
+
! colspan="2" | Ping Flow Legend
! DESCRIPTION
+
|-
! AVAILABLE TAG PARAMETERS
+
| 1SP, 5SP, 15SP, 120SP
|-
+
| Timed Measure Ping at 1, 5, 15 and 120 seconds
|  style="width: 15%"| Hashed Email
+
|-
| User’s email address that has been run through a hashing algorithm (e.g. SHA256, MD5, SHA1) </br> to create a unique 32-character hexadecimal string. If a client is unable to determine hashing type, they should pass using &hem_unknown parameter.
+
| D0, D1, D2
|style="width: 20%"|<code>&hem_unknown</br>&hem_sha256</br>&hem_md5</br>&hem_md5</br>&hem_sha1</code>
+
| Dynamic SIVT Pings at 1, 15 &amp; 30 seconds
|}
+
|-
 
+
| FP
<blockquote>Please use the parameter that matches your hashing algorithm.<br> For example, if you are using sha256 to encode the email address, then use <code>hem_sha256={encrypted_value_here}</code>
+
| Final Ping
</blockquote>
+
|-
Example:
+
| IMPID
<syntaxhighlight lang="javascript">
+
| Unique Impression ID
hem_sha256=tMmiiTI7IaAcPpQPFQ65uMVCWH8av9jw4cwf/F5HVRQ=
 
</syntaxhighlight>
 
 
 
=== Unified ID ===
 
{| class="wikitable"
 
 
|-  
 
|-  
! NAME
+
| NMP
! DESCRIPTION
+
| Nielsen Main Measure Ping
! AVAILABLE TAG PARAMETERS
 
 
|-
 
|-
| style="width: 15%"| Unified ID 2.0
+
| PSP
| An identifier based on a user’s verifiable PII (e.g. hashed email). UID2.0 was initially created by The Trade Desk (TTD)</br> and is now managed by Prebid.
+
| Primary Standard Ping
| &uid2
 
 
|-
 
|-
| Unified ID 2.0 Token
+
| SIVT
| Encrypted Unified ID 2.0
+
| Sophisticated Invalid Traffic
| &uid_token
 
 
|}
 
|}
  
Example:
+
== DAR Video ==  
<syntaxhighlight lang="javascript">
 
uid2=MTKVpUAzwYAPnHrtfE0wlINOMzhU7UUEjjVdCdRu63k=
 
uid_token=AgAAAAPFR0zA5ogv/yaAPiUsAdZPsfqS8QlDSGxAB+rr8yekFs3AjLYVk5qqqiyV2XHbSuwzHmxSlLeQeKQI1mp015jsNnpX5/xGgXldcgVz+gFnyh3T8/3agMwRmyrhCxG4oH2C7
 
fc48AQk2eotE7FW0ZDEYM8fD9ZxDaxFUC/OV3OuZA&
 
</syntaxhighlight>
 
  
=== Page and Bundle ===
+
The DAR Video tag will typically be trafficked as part of a Video Ad Serving Template (VAST) file. Nielsen provides its wrapped video tag (vWrap) to make this type of deployment easy and consistent across the various ad servers and trafficking options. Nielsen’s vWrap tag supports both automatic OMID and VPAID integration with existing VAST files. The two sections below, [[#Wrapped_Video_Tag_.28vWrap.29_Deployment|'''Wrapped Video Tag''']] and [[#Video_JS_Tag|'''Video JS Tag''']], describe these options and their expected outcomes.
{| class="wikitable"
 
|-
 
! NAME
 
! DESCRIPTION
 
! AVAILABLE TAG PARAMETERS
 
|-
 
|  style="width: 15%"|Page URL
 
|  style="width: 65%"| Canonical URL of the content where the Ad creative is served. (e.g. https://example.com/news/tech/article.html) The parameter value has to be encoded with JavaScript’s encodeURIComponent() method or equivalent. <br />Example: si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html
 
| &si
 
|-
 
| App Bundle ID
 
| The app’s unique bundle ID (e.g. com.example.myapp). The ID can be used to look up the App in Apple’s App Store</br> or the Google Play Store. References:https://developer.android.com/studio/build/application-idhttps://developer.apple.com/documentation/appstoreconnectapi/bundle_ids
 
| &c68=bndlid,
 
|}
 
  
Example:
+
In addition, Nielsen supports '''direct DAR Video tag deployments''' with manual integration in existing workflows. In this case, the section [[#video-js-tag|'''Video JS Tag''']] below describes the basic setup and expected results. In addition, it is recommended that you work closely with your Nielsen Technical Account Manager if you consider a manual tag integration with your campaigns.
<syntaxhighlight>
 
si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html
 
c68=bndlid,com.tam.nielsen.com
 
</syntaxhighlight>
 
  
== Supported Creative Types ==
+
=== Wrapped Video Tag (vWrap) Deployment ===
  
For consistency, Nielsen recommends tagging as much of the campaign creative types as possible, including site-served elements. '''Note:''' Nielsen may need to review/test on a case-by-case basis.
+
Nielsen’s wrapped DAR video tag, vWrap, is the preferred delivery method for VAST-controlled video ad placements.The vWrap tag is served by a Nielsen service that takes an original VAST with an inline ad (not a wrapper redirect) and dynamically adds the DAR Video tag with measurement solutions for VPAID and OMID. The '''apiframework''' parameter can be used to control which measurement solution will be inserted (see below).
  
Nielsen Digital Ad Ratings supports banner ads, rich media and video units that are capable of being tagged with a 3rd party tracking pixel.
+
=== Parameters ===
<blockquote>Some examples of non-standard campaign items that may be tagged include:
 
* microsite pages
 
* site “skins’”
 
* online mini-games
 
* streaming video
 
* pre-roll video banners
 
</blockquote>
 
Most often, these items will need to be site served and our pixel will need to be provided to the site to implement directly.
 
<blockquote>The following are items not tagged:
 
* click command/text links
 
* default/backup ads in a 3rd party ad server
 
* static ‘logo’ creatives
 
</blockquote>
 
  
Digital Ad Ratings Viewability Solution: All standard ad units listed under [http://www.iab.net/displayguidelines Universal Ad Package (UAP)] on are supported for Viewability.
+
The minimum required DAR parameters are '''ca, ci, ce, cr, pc''', '''am, apiframework''' and '''vastURL'''. See the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']] for a full list of parameters.
  
Placements and sites that cannot support JavaScript cannot support Viewability.
+
The Open Real Time Bidding ([https://iabtechlab.com/wp-content/uploads/2022/04/OpenRTB-2-6_FINAL.pdf '''OpenRTB''']) API framework values for identifying the ad inventory type should be passed in the Nielsen '''apiframework''' parameter. The values should be either 1 or 2 (VPAID) or 7 or 8 (OMID). The available API framework values are listed in the IAB’s [https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#list--api-frameworks- '''AdCOM specification 1.0''']. If the parameter is left blank or set to 0, Wrap will add the DAR Video tag as '''both''' an OMID verification client and VPAID wrapper. See more details in the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']].
  
'''‘Best Practices’ for Video Tags:''' Nielsen recommends all video tags be deployed as close to the beginning of the video stream as possible (post buffer).
+
The '''vastURL''' parameter must be the last parameter on the DAR tag with its value set as the full URL (including all original parameters) of the original VAST tag for the ad placement.
Placements delivering to Flash creative should have our tag implemented within the Flash code.
 
  
== How the Tag Works ==
+
=== Example Wrapped Video Tag (vWrap) ===
 +
{| class="wikitable" style="font-family:'Courier New', Courier, monospace !important;"
 +
|-
 +
! <syntaxhighlight lang="html"> https://vwrap.imrworldwide.com/v1/wrap?ca=nlsnXXXXXX&cr={AD.ID}&ce={PUBLISHER.ID}&pc={PLACEMENT.ID}&ci=nlsnciXXXX&am=4&
 +
c9={devid,Advertising_ID}&c13=asid,app_id}&apiframework={APIFRAMEWORK}&vastURL={ORIGINAL_VAST_URL}</syntaxhighlight>
 +
|}
 +
<blockquote>
 +
To observe how vWrap operates, we have provided some example VAST URLs which you can load directly in your browser.
 +
</blockquote>
 +
==== VAST ad Unit, no Impression/Viewability ====
 +
First, here is a VAST ad unit with a single video file and no impression tracking or viewability measurement:
 +
{| class="wikitable"
 +
|-
 +
! https://madimator.com/vast-examples/example_video_only_nielsen_15s.xml
 +
|}
 +
==== VAST ad Unit, Nielsen vWrap for OMID measurement ====
 +
This is the same VAST file loaded via Nielsen’s vWrap tag for '''OMID measurement''' (apiframework is set to 7):
 +
{| class="wikitable"
 +
|-
 +
! https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&cr=nielsenomidtest&ce=nielsen&pc=vastomid&ci=nlsntest&am=4&apiframework=7&vastURL=http://madimator.com/vast-examples/example_video_only_nielsen_15s.xml
 +
|}
  
The following describes the masked javascript version of the tag. <br>
+
==== VAST ad Unit, Nielsen vWrap for VPAID measurement ====
For the non-masked pixel version of the tag, steps 5-8 would be collapsed to just 2 steps.
+
And here is the same VAST with the vWrap tag configured for '''VPAID measurement''' (apiframework is set to 2):
 +
{| class="wikitable"
 +
|-
 +
!https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&cr=nielsenomidtest&ce=nielsen&pc=vastvpaid&ci=nlsntest&am=4&apiframework=2&vastURL=http://madimator.com/vast-examples/example_video_only_nielsen_15s.xml
 +
|}
  
[[File:image3-dar.png|right|500px]]
+
=== Video JS Tag ===
# End-user uses her web browser to visit a website that contains an ad creative being measured by Nielsen.
 
# Website sends web page back to end-user. (Web page contains HTML describing web content & ads)
 
# End-user’s web browser requests the ad creative from Ad Server
 
# Ad Server sends an iframe ad creative back to the end-user which contains the Nielsen measurement tag
 
# End-user’s web browser makes a request to the Nielsen servers.
 
## The tag’s HTTP request contains a campaign ID and placement, which is collected by Nielsen
 
## The Nielsen system checks the user’s machine for an opt-out cookie – if one exists the process ends here
 
## The Nielsen system checks to see if the campaign value in the tag was selected for Viewability. If so it downloads the Integral Ad Science tag to the end-user’s browser.
 
# Nielsen server sends JavaScript code back to end-user’s web browser, including a 1x1 pixel.
 
# End-user’s web browser executes JavaScript code and makes an iframe request to Nielsen server to enable the “referrer masking redirect”
 
# Nielsen server sends an HTML message to the end-user’s web browser.
 
# End-user’s web browser executes HTML and requests a 1x1 pixel from the Data Provider using Nielsen server information as the HTTP referrer – thus masking the Website’s information
 
## The campaign ID and placement ID are passed through to Data Provider in an encrypted format
 
# If Viewability is enabled the JavaScript will download a Javascript tag that calls the viewability vendor (either Nielsen or 3rd Party) to begin tracking inview metrics.
 
# Data Provider responds with a 1x1 pixel. End process.
 
  
== '''Share Your Delivered Impressions''' ==
+
The DAR Video tag supports both OM SDK and VPAID video ad measurement and provides viewability time series, audio volume time series, GIVT, and SIVT data. The time series contains playhead events with corresponding measurements at a 1-second resolution. In addition to the time series, a dedicated ping will report on the MRC-required minimum of 2 seconds on screen.
  
'''Why the Media Plan is Needed'''
+
With OM SDK, the DAR Video tag supports the following ad types:
  
Knowing the delivered impressions also helps Nielsen run automated QA checks, for example triggering alerts when data does not appear for a placement on an expected date. This ensures overall quality, and reduces errors in the tagging process.
+
* Native mobile in-app ad placements
 +
* Mobile web ads
 +
* OM Web placements
 +
* OMID-enabled streaming video players with ad SDKs (for instance DAI IMA SDK)
  
It is the responsibility of the client to send Nielsen an impression delivery report, generally known as the “ad server report.” Nielsen can provide the client with a template with the inputs required to complete the quality checks. If the client does not send these reports, Nielsen will not be able to complete the quality checks. Below are instructions on how to send these reports to Nielsen.
 
  
'''How to Share Your Delivered impressions'''
+
With VPAID, it supports the following operating modes:
 +
* As VPAID wrapper for an existing VPAID ad unit in the VAST
 +
* As VPAID ad unit in a VAST with video files and AdParameters node
 +
* In Custom Integrations with VPAID host players
  
Set up an automated daily report from your ad server containing Site Name, Site ID, Placement Name, Placement ID, and data date.
 
  
A secondary method to share your media plan information is to grant Nielsen “Reporting access” to your campaign in the designated ad server (such as DCM). To do this, simply grant the login [http://mailto:clientreporting@nielsen.com clientreporting@nielsen.com] access. In doing so Nielsen can directly access your media plan information, which enables us to check for updates, and reconcile any<br />
 
discrepancies.
 
  
<blockquote>Please note that Nielsen is currently in discussions with several leading Ad Servers regarding direct integration between Nielsen and the ad server platforms. Once completed this could someday enable Nielsen to retrieve Media Plans on a completed automated basis.
+
In most cases, the DAR Video tag should not be manually implemented as a wrapper, instead consider utilizing Nielsen’s vWrap tag.
</blockquote>
 
  
== '''Apply the Tag''' ==
+
==== Requirements ====
=== '''Tag Generation''' ===
 
  
Your Nielsen representative will walk you through the Campaign Management Interface so that you can download tags at will at any point in the campaign.
+
The DAR Video tag needs a JavaScript environment to operate. The video unit to be measured needs to have a size of at least 30x30 pixels. The DAR Video tag requires access to the VPAID ad unit or to an OM SDK API present in the JavaScript context.
  
Nielsen supports macro-based tag generation for several major ad servers. Nielsen’s Technical Account Manager (TAM) can assist you in leveraging macro-based tags.
+
==== Parameters ====
  
=== '''Tag Application''' ===
+
The minimum required DAR parameters are '''ca, ci, ce, cr, pc''' and '''am'''. For VPAID wrapper placements, '''vpaidURL''' is also required.
  
Apply the tag according to the 3rd party tracking pixel specifications of your ad server. If additional guidance is needed, please consult with the Technical Account Manager (TAM) for more specific instructions or recommendations, if available.
+
To comply with MRC guidelines, you will be required to append '''autop''' to indicate click-to-play vs auto-play.
  
== Special Note for Video Tags ==
+
If the DAR Video tag will act as the VPAID wrapper, '''vpaidURL''' has to be the tag’s last parameter and its value set to the full URL (including parameters) of the original VPAID ad unit.
Nielsen’s recommended “Best Practice” for tagging your video ads is to apply the Digital Ad Ratings tag as close to the beginning of the video as possible and after initiation of the ad stream, when the ad itself begins to appear on the user’s browser, closest to the opportunity to see. To ensure video content initiates during Digital Ad Ratings measurement, tags should always be placed post buffer. Recognizing that it’s not always possible to give the Nielsen pixel priority positioning, please be aware that the placement of the tag should be discussed with the publisher/advertiser counterparty so that both sides agree on the measurement approach.
 
  
In accordance with MRC requirements, Clients must append “autop” parameter to detect click to play vs auto-play to their video tags. To detect auto-refresh (page refresh), “autof” parameter must be included (not limited to video tags).
+
See the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']] for a full list of parameters.
<syntaxhighlight lang=javascript>
 
<img src="http://secure-gl.imrworldwide.com/cgi-bim/m?ci=entXXXX&at=view&rt=banner&am=3&ca=cmpXXXX&cr=&pc=plcXXXX&
 
autop=(value)&autof=(value)&r=[timestamp]" width="1" height="1" alt="" />
 
</syntaxhighlight>
 
  
==== '''autop''' ====
+
==== Expected Video Ad Session Pings ====
- A value of 1 will be passed when Auto-Play is detected. (e.g. autop=1)<br />
 
- A value of 2 will be passed when Click-to-Play is detected. (e.g. autop=2)<br />
 
- When no value or parameter is not present, impressions are labeled as Unknown Play.
 
  
==== '''autof''' ====
+
{| class="wikitable"
- A value of 1 will be passed when Auto-Refresh is detected. (e.g. autor=1)<br />
+
! '''Description'''
- When no value or parameter is not present, impressions are labeled as Unknown Refresh.
+
! '''Timing'''
 +
! '''Path'''
 +
|-
 +
| DAR Main Ping
 +
| At initial load
 +
| secure-gl.imrworldwide.com/cgi-bin/m
 +
|-
 +
| Nielsen Measure Ping
 +
| Measurement start
 +
| events.imrworldwide.com/nmp
 +
|-
 +
| Primary Standard Ping
 +
| After 2 seconds of viewable duration (may not occur based on MRC rules)
 +
| events.imrworldwide.com/psp
 +
|-
 +
| Quarterly Ping
 +
| At 25%, 50%, 75% and 100% of video progress
 +
| events.imrworldwide.com/qp
 +
|-
 +
| Final Ping
 +
| At video stop or window/tab unloading event
 +
| events.imrworldwide.com/fp
 +
|-
 +
| Error Ping
 +
| Potential integration error - please contact your Nielsen representative
 +
| events.imrworldwide.com/er
 +
|}
  
=== '''Special Note for Video Viewability Implementation:''' ===
+
==== Ping Flow ====
* Nielsen does not support any Flash based video players for viewability measurement.
 
* The ad and tag must be in the same division (div tag) in order to track Viewability
 
* Video:
 
** VPAID compliant players
 
** HTML5 Players (Flash not supported)
 
** VPAID or mp4 creative
 
** Video player must support VPAID and mp4
 
  
=== '''Workflow and Tag Requirements for Nielsen Viewability with Qualified Ad Audience''' ===
+
This flow illustrates the behavior of the DAR Video tag if the impression pixel is part of the VAST to be sent by the ad player and the JS tag has '''&amp;darsup=1'''. The parameter, <code>darsup=1</code>, is used to suppress the DAR Main Ping from being sent from the JS tag since the DAR main ping will be sent from the DAR impression pixel. This is the default setup if Nielsen’s vWrap tag is being used to set up the video campaign.
The following steps represent the tag/data flow between the publisher and Nielsen, through to final reporting.
 
<blockquote> Please note that the assigned values for <code>CA, CI, AM, AM, PC and CR </code> in the example tags below are for illustrative purposes only to demonstrate the VW viewability state tag token. These values will need to be replaced with client specific data and/or macros specific to the ad serving situation.</blockquote>
 
  
# Ad creative exposed to the user<br />
+
[[File:Screenshot 2022-06-22 2.png]]
# Ad Server technology fires DAR tag on the publisher site<br />
+
{| class="wikitable"
# Viewable state detected by Nielsen technology on publisher property; tag/signal sent to Nielsen collection system<br />
+
|-
# Nielsen collection system generates and executes the DAR tag with one of the following viewable states.
+
! colspan="2" | Ping Flow Legend
# DAR data processing and reporting aggregates viewable impression states by campaign, placement and demographic attribution.
+
|-
 +
| D0, D1, D2
 +
| Dynamic SIVT Pings at 1, 15 &amp; 30 seconds
 +
|-
 +
| FP
 +
| Final Ping
 +
|-
 +
| IMPID
 +
| Unique Impression ID
 +
|-
 +
| NMP
 +
| Nielsen Main Measure Ping
 +
|-
 +
| PSP
 +
| Primary Standard Ping
 +
|-
 +
| QP
 +
|Quarterly Media Pings at 25%, 50%, 75% and 100%
 +
|-
 +
| SIVT
 +
| Sophisticated Invalid Traffic
 +
|}
  
==== '''Viewability Base URL &amp; Ping Paths''' ====
+
==== Example OMID Video Placement ====
<code> events.imrworldwide.com/VALUE?... </code>
 
  
==== '''Ping Path Values''' ====
+
DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table in the VAST &lt;adVerifications&gt; node:
* /nmp - Measure Ping
 
* /mp - Open Viewability Measure Ping
 
* >/psp - Primary Standard Ping
 
* /120sp - 120 Second Ping
 
* /cp - Cadence Ping (used by SDK)
 
* /fp - Final Ping
 
* /er - Error Ping
 
  
==== '''Nielsen DAR Tag/VPAID Query Strings''' ====
+
{| class="wikitable"
'''Measure Ping'''
+
! '''OM Parameter'''
<syntaxhighlight lang=html>
+
! '''Description'''
/nmp?impid=VALUE&amp;ca=VALUE&amp;ci=VALUE&amp;cr=VALUE&amp;ce=VALUE&amp;pc=VALUE&amp;am=VALUE&amp;
+
! '''Nielsen Value'''
cy=VALUE&amp;meas=VALUE&amp;ss=VALUE&amp;vp=VALUE&amp;as=VALUE&amp;al=VALUE
+
! '''Required'''
</syntaxhighlight>
+
|-
 +
| Vendor Key
 +
| ID for measurement provider
 +
| nielsen.com-omid
 +
| ✔
 +
|-
 +
| JavaScript Resource URL
 +
| URL for measurement provider’s verification script
 +
| <syntaxhighlight lang="html">https://dar.imrworldwide.com/js/darvideo.js</syntaxhighlight>
 +
| ✔
 +
|-
 +
| Verification Parameters
 +
| Measurement provider’s verification tag parameters
 +
| style="font-family:'Courier New', Courier, monospace !important; color:#222222;" |<syntaxhighlight lang="html">ca=nlsnXXXXXX&cr={AD.ID}&ce=publisherXXXX&ci=nlsnciXXXX&
 +
pc=placementID_XXXX1&am=3</syntaxhighlight>
 +
| ✔
 +
|-
 +
| Verification Not Executed URL
 +
| Error URL when the ad player denies measurement script execution
 +
| style="font-family:'Courier New', Courier, monospace !important; color:#222222;" | <syntaxhighlight lang="html">https://events.imrworldwide.com/er?ercd=8800&erms=verificationNotExecuted-
 +
{reason}&ca=nlsnXXXXXX&cr=ad_ID_XXXX&ce=publisherXXXX&
 +
ci=nlsnciXXXX&pc=placementID_XXXX5&am=3&c9={devid,Advertising_ID}
 +
&c13={asid,app_id}</syntaxhighlight>
 +
|
  
'''Primary Standard Ping'''
+
|}
<syntaxhighlight lang=html>
+
<blockquote>
/psp?impid=VALUE&amp;vs=VALUE
+
Note: The verificationNotExecuted Error URL is recommended for better troubleshooting during campaign setup. If your system can provide a macro for the reason of the interrupted measurement session, it can be added in place of the {reason} placeholder in the error URL. This can be an error code or a clear text error message.
</syntaxhighlight>
+
</blockquote>
  
'''120 Second Ping'''
+
==== Example VPAID Placement in VAST ====
<syntaxhighlight lang=html>
 
/120sp?impid=VALUE&amp;vs=VALUE&amp;vts=VALUE&amp;ats=VALUE
 
</syntaxhighlight>
 
'''Finish Ping'''
 
<syntaxhighlight lang=html>
 
/fp?impid=VALUE&amp;vs=VALUE&amp;ss=VALUE&amp;vp=VALUE&amp;as=VALUE&amp;ar=VALUE&amp;vts=VALUE&amp;ats=VALUE
 
</syntaxhighlight>
 
'''Error Ping'''
 
<syntaxhighlight lang=html>
 
/er?impid=VALUE&amp;ca=VALUE&amp;ci=VALUE&amp;cr=VALUE&amp;ce=VALUE&amp;pc=VALUE&amp;am=VALUE&amp;ercd=VALUE
 
</syntaxhighlight>
 
  
=== '''Workflow and Tag Requirements for 3rd Party Viewability''' ===
+
A typical VAST placement with VPAID will contain an impression pixel, the DAR Video JS tag as MediaFile of type “VPAID”, and the video MediaFiles will be duplicated as AdParameters object. In the example below, there was no original VPAID ad unit (the original VAST only contained MP4 video files), so the &amp;vpaidURL parameter on the DAR JS tag stays empty.
The following steps represent the tag/data flow between publisher, Nielsen and the 3rd party viewability vendor (hereafter referred to as “vendor”), through to final reporting.
 
  
<blockquote>Please note that the assigned values for CA, CI, AM, AM, PC and CR in the example tags below are for illustrative purposes only to demonstrate the VW viewability state tag token. These values will need to be replaced with client specific data and/or macros specific to the ad serving situation.</blockquote>
+
In this example, the DAR JavaScript tag will operate as the VPAID ad unit and will play an appropriate media file from the list contained in the AdParameters node.
  
'''Requirements'''
+
<syntaxhighlight lang="json">
* Ad creative exposed to the user<br />
+
...
*  Vendor technology fires DAR tag on the publisher site
+
<Impression id="Nielsen Digital Ad Ratings">
<syntaxhighlight lang=html>
+
<![CDATA[https://secure-enc.imrworldwide.com/cgi-bin/m?at=view&cy=2&rt=banner&src=njs&
http://secure-gl.imrworldwide.com/cgi-bin/m?ci=[clientid]&amp;am=[AdserverId]&amp;at=view
+
st=image&tpv=vwrap&ca=nlsnXXXXXX&cr={AD.ID}&ce=publisherXXXX&ci=nlsnciXXXX&pc=placementID_XXXX1&am=3]]>
&amp;rt=banner&amp;st=image&amp;ca=[campaignId]&amp;cr=[creativeId/macro]
+
</Impression>
&amp;pc=[placementId/macro]&amp;r=[timestamp]
+
...
 +
<MediaFiles>
 +
    <MediaFile apiFramework="VPAID" type="application/javascript">
 +
<![CDATA[https://dar.imrworldwide.com/js/darvideo.js?darsup=1&ca=nlsnXXXXXX&cr={{AD.ID}}&
 +
ce=publisherXXXX&ci=nlsnciXXXX&pc=placementID_XXXX1&am=3]]>
 +
    </MediaFile>
 +
    <MediaFile bitrate="720" delivery="progressive" height="480" id="XXXXXX"
 +
              maintainAspectRatio="true" scalable="true" type="video/mp4" 
 +
              width="854"><![CDATA[https://XXXXX.net/XXXXXX.mp4]]>
 +
    </MediaFile>
 +
</MediaFiles>
 +
...
 +
<AdParameters>
 +
<![CDATA[{"mediaFiles":[{"bitrate":"720","uri":"https://XXXXX.net/XXXXXX.mp4","height":"480","scalable":"true",
 +
"id":"XXXXXX","type":"video/mp4","maintainAspectRatio":"true","delivery":"progressive","width":"854"}]]>
 +
</AdParameters>
 
</syntaxhighlight>
 
</syntaxhighlight>
*  Viewable state detected by vendor detection technology (i.e. vendor Javascript containertag) on publisher property; tag/signal sent to vendor collection system
 
*  Vendor collection system generates and executes the DAR tag with one of the following viewable state (see highlight) embedded
 
  
==== '''onMeasureable''' ====
+
==== Server-Side Integration ====
<syntaxhighlight lang=html>
 
http://secure-gl.imrworldwide.com/cgi-bin/int?ci=[clientid]&amp;am=[AdserverId]&amp;at=view
 
&amp;rt=banner&amp;st=image&amp;ca=[campaignI d]&amp;cr=[creativeId/macro]&amp;pc=
 
[amvalue]_[placementId/macro]&amp;vw=meas&amp;r=[timestamp]</syntaxhighlight>
 
  
==== '''onInViewMRC''' ====
+
If you are interested in implementing the DAR tags server-side, e.g. through SSAI, please contact your Nielsen TAM to provide you with the required guidelines.
<syntaxhighlight lang=html>
 
http://secure-gl.imrworldwide.com/cgi-bin/int?ci=[clientid]&amp;am=[AdserverId]&amp;at=view
 
&amp;rt=banner&amp;st=image&amp;ca=[campaignId]&amp;cr=[creativeId/macro]
 
&amp;pc=[amvalue]_[placementId/macro]&amp;vw=view&amp;r=[timestamp ]</syntaxhighlight>
 
==== '''onSuspicious''' ====
 
<syntaxhighlight lang=html>
 
http://secure-gl.imrworldwide.com/cgi-bin/int?ci=[clientid]&amp;am=[AdserverId]&amp;at=view
 
&amp;rt=banner&amp;st=image&amp;ca=[campaignI d]&amp;cr=[creativeId/macro]
 
&amp;pc=[amvalue]_[placementId/macro]&amp;vw=susp&amp;r=[timestamp ]</syntaxhighlight>
 
  
*  DAR data processing and reporting aggregates viewable impression states by campaign, placement and demographic attribution.
+
==== Notes ====
<blockquote>'''Special Note for Nielsen Viewability with Qualified Ad Audience:''' Primary owner of campaign must provide assigned Technical Account Manager (TAM) VPAID tags per site/placement in order for VAST Wrapper to be delivered back to primary owner for implementation within their respective ad server, CMS, video serving platform, etc.
 
</blockquote>
 
  
<blockquote>'''Special Note for Server Side Dynamic Ad Insertion:''' In cases where Server Side Dynamic Ad Insertion (SSDAI) is present, the Nielsen tag cannot execute unless the client side video player is coded to fire impression pixels when ads play. When this happens, all of the existing specifications for tag format, time, and criteria of execution (i.e. on play of ad) previously documented must be followed.
+
Manual placement of the DAR Video tag is only recommended in situations where the DAR vWrap tag can not be utilized, like in certain mobile in-app ad placements or in scenarios where DAR Video needs to be configured as OMID viewability measurement solution.
</blockquote>
 
  
== '''QA Testing the Tag''' ==
+
== Pixel Tag==  
  
Nielsen’s Technical Account Manager (TAM) will coordinate a plan to test fire tags in advance of the campaign go-live date.
+
The DAR Impression pixel provides basic campaign impression counts and allows to cover placements served in environments where the DAR JavaScript tag is not supported.
  
In order to test the implementation of the Nielsen tag, at least one or two (more are<br />
+
=== Environment ===
recommended) live URLs should be provided to the TAM. If a live page cannot be made available, at staging page or offline test page should be provided. The object of this is so that the TAM can see the Nielsen call being made live, exactly as it has been implemented, to verify all of the values expected – dynamic and static - are in the tag. A spot check of a couple of placements should be sufficient unless otherwise requested. In lieu of an actual test page, we may recommend you provide a screenshot of you testing the implementation from your end, showing the Nielsen call exactly as it is being called.
 
  
Additionally, we will verify that the tags delivered have begun to receive data once the campaign actually goes live and will regularly (every 7-14 days, minimally) compare the Nielsen reporting to your 3rd party or publisher reporting to ensure we are capturing all of the data for all of the placements, as expected, and that the overall gap between your reporting and the Nielsen reporting is kept to a minimum.
+
The DAR pixel tag should only be used in environments where the DAR JavaScript tag cannot be utilized such as restricted CTV environments, for SSAI Server-Side Beaconing, and other situations where an adequate JavaScript environment is not available.
  
'''Detailed steps for confirming proper tag implementation'''
+
=== Parameters ===
* Open Chrome browser and enable “Developer Tools” (shortcuts: PC, “F12” - Mac, “Command+Option+I”)
 
<blockquote>'''NOTE''' - Other browsers or debugging tools can also be used as an alternative (ie Firefox w/HttpFox extension, Fiddler, Charles, Wireshark, etc).</blockquote>
 
* Paste test page into browser URL field
 
* Toggle to the “Network” tab
 
** To isolate the DAR ping you can also input “imr” into the filter box
 
[[File:image4-dar.png|900px]]
 
  
<blockquote>'''TIP''' - If DAR tag does not display try refreshing the test page</blockquote>
+
The minimum required DAR parameters are '''ca, ci, ce, cr, pc''', and '''am''' along with fixed valued params, '''at=view''', '''rt=banner''' and '''st=image''' . See the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']] for a full list of parameters.
=== '''If IMAGE tags were used''' ===
 
'''Confirm call status is 302'''
 
This ensures a redirect has been made to our Data Enrichment Provider
 
[[File:image5-dar.png|600px]]
 
  
'''Clicking on the call and navigating to the “Headers” tab will allow you to better evaluate tag construction'''
+
=== Example Tag ===
[[File:image6-dar.png|500px]]
+
<syntaxhighlight lang="html">
 
+
<img src="https://secure-gl.imrworldwide.com/cgi-bin/m?ca=nlsnXXXXXX&cr=crtve
'''The “Query String” section will disclose the tag parameter'''
+
&ce={PUBLISHER.ID}&pc=PLACEMENT.ID}&nlsnciXXXX&am=3&at=view&rt=banner&st=image
Confirm these values are displaying as expected
+
&cy=0&r=[timestamp]" style="display:none"/>
<blockquote>'''NOTE''' - If ad server macro tokens are used, please ensure they are expanding properly
+
</syntaxhighlight>
</blockquote>
 
[[File:image7-dar.png|600px]]
 
  
'''Optional - Review Data Enrichment Provider call'''
+
= Tag Integration =
his can be identified by searching for “brandlift”
+
A successful tag integration will require you to go through the following 6 steps.
[[File:image8-dar.png|594px]]
+
== Step 1: Determine Your Campaign Needs==
Call status should be 200
+
To receive optimal results from DAR measurement, it is good practice to consider the technical requirements of different sites and placements. Please share your media plan with your Technical Account Manager before launch.
  
<blockquote>'''NOTE''' - campaign tag parameters are encrypted when passed to Data Enrichment Provider</blockquote>
+
Specifically, be on the lookout for placements that might span across web and mobile ad inventory and make sure if all of the in-app placements support OMID. Also, some placement types may need manual setup and cannot be automated or may need extra time for setup and testing.
[[File:image9-dar.png|600px]]
 
  
=== '''If JavaScript tags were used''' ===
+
Please reach out to your Nielsen Technical Account Manager (TAM) for advice if the technical requirements for your campaign are not clear.
 +
== Step 2: Generate Tags==
 +
Your Nielsen representative will walk you through the Campaign Management Interface (CMI) so that you can generate DAR tags for your campaigns at any time.
  
Steps are same as the above except for the following:
+
Nielsen supports macro-based tag generation for several major ad servers. Nielsen’s Technical Account Managers can assist you with any technical questions on tagging campaigns for DAR measurement.
* Two Nielsen (“imr”) calls will be made, both with status of 200
+
== Step 3: Campaign Integration==
** 1st - logs the impression on Nielsen servers
+
Your Nielsen tags created in CMI will need to be included when you traffic your ad campaigns. Please reach out to your Nielsen TAM for additional guidance and assistance.
** 2nd - initiates the call to our Data Enrichment Provider
+
== Step 4: Test the Tag Implementation==
[[File:image10-dar.png|592px]]
+
Depending on the complexity of the integration, you may be working closely with a TAM at this point or are performing a self-guided tag implementation based on the CMI output.
* 3rd (Optional) call is the same as above, review Data Enrichment Provider ping.  This can be identified by searching for “brandlift”
 
[[File:image11-dar.png|580px]]
 
  
== '''Managing Campaign Updates''' ==
+
If working with a TAM, they will coordinate a plan to test the tag implementation ahead of the campaign go-live date. Depending on your campaign needs, testing will involve either running a diagnostic campaign to validate tagging setup or reviewing test pages or apps.
  
As part of the campaign monitoring process, your Nielsen TAM will stay in close contact with you throughout the campaign, including scheduling periodic check-ins to check on the campaigns (approximately every 7-14 days, but could be more often, as needed). If you have provided reporting access to the campaign via your 3rd party or have scheduled a report to be delivered on a regular (weekly) basis, this can significantly expedite the monitoring of your campaign.
+
In case of a self-guided tag implementation, we recommend to verify and compare the impression counts in the CMI with your planned campaign volume or ad server reports during the first hours of the campaign. If there are any unexpected impression counts, please reach out to your Nielsen TAM.
 +
== Step 5: Share your Ad Server Report==
  
If you have any questions regarding setting up the reporting to be delivered, fields that will need to be included, etc., please reach out to the TAM assigned to your campaign. If not providing direct access to reporting, please schedule reporting to be delivered on a weekly basis.
+
=== Why the Ad Server Report is Needed ===
</blockquote>
 
  
== '''Frequently Asked Questions''' ==
+
Knowing the delivered impressions helps Nielsen run Discrepancy Checks ensuring overall quality and reduces errors in the tagging process.
  
'''What is a tag?'''
+
Nielsen can provide the client with a template with the inputs required to complete the quality checks.
  
For our purposes, a tag is an HTML code that is placed directly on a website or inside a 3rd party ad server to track exposure to an online advertisement. Adding the Nielsen tag to the<br />
+
=== How to Share Your Delivered impressions ===
banners/videos/etc. is referred to in general as ‘tagging a campaign’.
 
  
'''What is served by the Nielsen tag?'''
+
Set up an automated daily report from your ad server containing Site Name, Site ID, Placement Name, Placement ID, and data date.
  
The tag call is a simple 1x1 pixel image call. There is not a survey delivered at the time of ad call so this is not intrusive to the end user and should not adversely affect site page load times.  
+
A secondary method to share your media plan information is to grant Nielsen “Reporting access” to your campaign in the designated ad server (such as DCM). To do this, simply grant the login '''clientreporting@nielsen.com''' access. In doing so Nielsen can directly access your media plan information, which enables us to check for updates, and reconcile any discrepancies.
  
'''What should be tagged?'''
+
== Step 6: Monitoring Your Campaign==
 +
Nielsen recommends all clients participate in Discrepancy Checks. Nielsen’s team will verify that the tags delivered have begun to receive data once the campaign goes live and will regularly (typically every 7-14 days) compare the Nielsen reporting to your 3rd party or publisher reporting to ensure we are capturing all data across all placements, as expected, and that the discrepancy gap between your reporting and the Nielsen reporting is kept to a minimum.
  
As much of the campaign that can be tagged, should be, for consistency. In most cases, we generally do not tag items such as: click command/text links, default/backup ads in a 3rd party ad server, or static ‘logo’ creatives. Whenever possible, we will request that you attempt to tag all other creative types, including site-served elements.
+
= Appendix =
 +
== Tag Parameters==
 +
All passthrough parameters will appear on the JavaScript-generated DAR impression ping.
 +
{| class="wikitable" style="background-color:#FFF;"
 +
|- style="font-weight:bold; background-color:#EAECF0; color:#222;"
 +
! Query Parameter
 +
! Description
 +
! style="text-align:center;" | Required
 +
! style="text-align:center;" | Pass-through
 +
|- style="font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;"
 +
| colspan="4" | Group 1 - Required Parameters
 +
|- style="vertical-align:middle; color:#222;"
 +
| ca
 +
| Campaign ID
 +
| style="text-align:center;" | X
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| pc
 +
| Placement ID
 +
| style="text-align:center;" | X
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| ci
 +
| Client ID
 +
| style="text-align:center;" | X
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| am
 +
| Ad server ID
 +
| style="text-align:center;" | X
 +
| style="text-align:center;" | X
 +
|- style="color:#222;"
 +
| ce
 +
| Site ID
 +
| style="text-align:center;" | X
 +
| style="text-align:center;" | X
 +
|- style="background-color:#F4F5F7; color:#222;"
 +
| cr
 +
| Creative ID
 +
| style="text-align:center; background-color:#EFEFEF;" | X
 +
| style="text-align:center;" | X
 +
|- style="font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;"
 +
| colspan="4" | Group 2 - Use Case Specific Parameters
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| at
 +
| Fixed Value "view" (Nielsen value, JS tags add this to DAR and NMP pings)
 +
| style="text-align:center;" | Pixel only
 +
|
 +
|- style="vertical-align:middle; color:#222;"
 +
| st
 +
| Fixed Value "image" (Nielsen value, JS tags add this to DAR and NMP pings)
 +
| style="text-align:center;" | Pixel only
 +
|
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| rt
 +
| Fixed Value "banner" (Nielsen value, JS tags add this to DAR and NMP pings)
 +
| style="text-align:center;" | Pixel only
 +
|
 +
|- style="vertical-align:middle; color:#222;"
 +
| r
 +
| Cachebuster/Timestamp. It's required in the pixel tags with a hardcoded<br />value as a default or a macro (r=timestamp/macro) .
 +
| style="text-align:center;" | Pixel only
 +
|
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| cy
 +
| Creative type (1: display/2: video) JS tags add this to DAR and NMP pings for In-House Viewability.<br />When parameter is not present or value is missing on pixel tags, there will be no creative type breakout.<br /><br />
 +
| style="text-align:center;" | Pixel only
 +
|
 +
|- style="vertical-align:middle; color:#222;"
 +
| '''[[DAR_Tag_Implementation_Guide#vWrap_apiframework_Values|apiframework]]'''
 +
| IAB-defined value designating the measurement method See vWrap apiframework values
 +
| style="text-align:center;" | vWrap only
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| autof
 +
| Video only: Auto refresh (1 for auto refresh, leave empty otherwise)
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| autop
 +
| Video only: Autoplay (1 for auto-play, 2 for click-to-play, leave empty otherwise)
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| c7
 +
| OS Grouping<br />c7=osgrp,IOS<br />c7=osgrp,DROID<br />c7=osgrp,ANDROID
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| c8
 +
| Device Grouping<br />c8=devgrp,DSK (computers)<br />c8=devgrp,PHN (mobile phone devices)<br />c8=devgrp,TAB (mobile tablet devices)<br />c8=devgrp,PMP (portable media player)<br />c8=devgrp,UNWN (unknown mobile devices)
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| c9
 +
| Mobile Advertising ID<br />c9=devid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 +
| style="text-align:center;" | Mobile
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| c10
 +
| Platform<br />c10=plt,DSK (Computer)<br />c10=plt,MBL (Mobile)<br />c10=plt,OTT (Connected Device)
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| c12
 +
| App Version<br />c12=apv,xxx
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| c13
 +
| Nielsen Assigned App ID<br />Example:<br />c13=asid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 +
| style="text-align:center;" | Mobile
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| c14
 +
| OS Version<br />c14=osver,xxx
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| c68
 +
| Mobile App Bundle ID<br />c68=bndlid,xxxxxxxxxxxxxx<br />References:<br />https://developer.apple.com/documentation/appstoreconnectapi/bundle_ids<br />https://developer.android.com/studio/build/configure-app-module#set_the_application_id
 +
| style="text-align:center;" | Mobile
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| C78
 +
| Custom Integration Flag (please note: this is the only uppercase parameter name)
 +
| style="text-align:center;" | some vendors
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| darsup
 +
| If present suppress DAR main ping originating from JS tag (value can be 0 or 1, same effect)
 +
|
 +
|
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| forceid
 +
| If present provides impid, can be overwritten by impid parameter
 +
|
 +
| style="text-align:center;" | X (as impid)
 +
|- style="vertical-align:middle; color:#222;"
 +
| impid
 +
| Same as forceid, but higher priority in case both are present
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| frcd
 +
| Video only: Forced duration (seconds/null)
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| frcf
 +
| Video only: Forced ad flag (yes/no/null)
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| ptraf
 +
| Video only: Purchased traffic
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| contplay
 +
| Video only: Continuous play
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| gdpr
 +
| GDPR flag to indicate whether GDPR is applicable:<br />0 - GDPR does not apply<br />1 - GDPR applies
 +
| style="text-align:center;" | in some jurisdictions
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| gdpr_consent
 +
| URL-safe base64-encoded Transparency & Consent (TC) string for<br />identifying user's privacy preferences
 +
| style="text-align:center;" | in some jurisdictions
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| hem_md5
 +
| Hashed email
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| hem_sha1
 +
| Hashed email
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| hem_sha256
 +
| Hashed email
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| hem_unknown
 +
| Hashed email
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| mode
 +
| VPAID video only, optional: Custom Direct Access mode<br />("w" wrapper / "c" custom; defaults to wrapper)
 +
|
 +
|
 +
|- style="vertical-align:middle; color:#222;"
 +
| onload
 +
| VPAID video only, optional: JS callback for Custom Direct Access VPAID integration
 +
|
 +
|
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| pub
 +
| Publisher Name
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| pubid
 +
| Publisher ID
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| si
 +
| Site identifier. Canonical URL of the content where the Ad creative is served.<br />The parameter value has to be encoded with encodeURIComponent() method or equivalent.
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| uid2
 +
| Unified ID 2.0
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; background-color:#EFEFEF; color:#222;"
 +
| uid2_token
 +
| Unified ID 2.0 token
 +
|
 +
| style="text-align:center;" | X
 +
|- style="vertical-align:middle; color:#222;"
 +
| uoo
 +
| User opt out
 +
| style="text-align:center;" | Mobile
 +
| style="text-align:center;" | X
 +
|- style="font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;"
 +
| colspan="4" | Group 3 - Parameters With Required Position in URL
 +
|- style="vertical-align:middle; background-color:#ffffff; color:#222;"
 +
| vpaidURL
 +
| VPAID Video only: Always the last parameter for video tags.<br />Either VPAID ad unit URL to be wrapped or empty. If empty, DAR tag will use its own vpaidplayer.js
 +
| style="text-align:center;" | VPAID video tag only
 +
|
 +
|- style="background-color:#f4f5f7;"
 +
| style="vertical-align:middle; color:#222;" | vastURL
 +
| style="vertical-align:middle; color:#222;" | vWrap Tag only: Always the last parameter for the vWrap tag.<br />It must contain the URL of the original VAST for the placement.
 +
| style="text-align:center; vertical-align:middle; color:#222;" | vWrap tag only
 +
|
 +
|}
  
'''Is there a way to differentiate between video “auto-play” and “click-to-play” impressions?'''
+
== Additional Parameters ==
 +
This section describes several important additional parameters that the DAR tag can support, specifically Hashed Email, UID2 values, along with Page URL and Bundle Identifier if available. Please note that all parameters are case-sensitive.
  
The Nielsen pixel does not gather this type of granularity if the events are both sharing the same ad server placement ID. If it is desirable to compare the performance between these two events, our recommendation is to traffic these as individual placements within your ad serving<br />
+
Please work with your Nielsen Technical Account Manager to decide which of the following parameters to append to the standard DAR tag.
technology.
+
=== HEM Support (Hashed Email) ===
 +
Please use the parameter that matches your hashing algorithm. For example, if you are using sha256 to encode the email address, then use hem_sha256={encrypted_value_here}
 +
{| class="wikitable" style="font-weight:bold; background-color:#EAECF0;"
 +
|-
 +
! Name
 +
! Description
 +
! Available Tag Parameters
 +
|- style="font-weight:normal; background-color:#F8F9FA;"
 +
| Hashed Email
 +
| User’s email address that has been run through a hashing algorithm<br />(e.g. SHA256, MD5, SHA1) to create a unique hexadecimal string.<br /> If a client is unable to determine hashing type, they should pass<br />using &hem_unknown parameter.
 +
| &hem_unknown<br />&hem_sha256<br />&hem_md5<br />&hem_sha1
 +
|}
 +
{| class="wikitable" style="font-weight:bold;"
 +
|- style="background-color:#dae8fc; color:#002041;"
 +
! Example
 +
|- style="font-weight:normal;"
 +
| hem_sha256=671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2
 +
|}
  
'''What is the best way to add the Nielsen tag to my campaign?'''
+
=== Unified ID ===
 +
{| class="wikitable" style="background-color:#F8F9FA;"
 +
|- style="font-weight:bold; background-color:#EAECF0;"
 +
! Name
 +
! Description
 +
! Available Tag Parameters
 +
|-
 +
| Unified ID 2.0
 +
| An identifier based on a user’s verifiable PII (e.g. hashed email). UID2.0 was initially created by The Trade Desk (TTD)<br />and is now managed by Prebid.
 +
| &uid2
 +
|-
 +
| Unified ID 2.0 Token
 +
| Encrypted Unified ID 2.0
 +
| &uid_token
 +
|}
 +
{| class="wikitable" style="font-weight:bold;"
 +
|- style="background-color:#32BBB9; color:#002041;"
 +
! Example
 +
|- style="font-weight:normal;"
 +
| uid2=MTKVpUAzwYAPnHrtfE0wlINOMzhU7UUEjjVdCdRu63k=<br />uid_token=AgAAAAPFR0zA5ogv/yaAPiUsAdZPsfqS8QlDSGxAB+rr8yekFs3AjLYVk5qqqiyV2XHbSuwzHmxSlLeQeKQI1mp015jsNnpX5<br />/xGgXldcgVz+gFnyh3T8/3agMwRmyrhCxG4oH2C7fc48AQk2eotE7FW0ZDEYM8fD9ZxDaxFUC/OV3OuZA
 +
|}
  
The Nielsen pixel should be called as close to the same time as the banner ad/creative element on which you would like to track exposure. Typically, this is handled by placing our tag inside a 3rd party ad server, such as Google’s DCM or a Rich Media vendor, such as PointRoll. However, if need be, our tag can be placed directly on a site page, immediately after the ad call in the same &lt;/div&gt; as the creative file. Further instruction can be provided on the kickoff call or we can work directly with trafficking contact(s) to get the tags in place.
+
=== Page and Bundle ===
 +
{| class="wikitable" style="background-color:#F8F9FA;"
 +
|- style="font-weight:bold; background-color:#EAECF0;"
 +
! Name
 +
! Description
 +
! Available Tag Parameters
 +
|-
 +
| Page URL
 +
| Canonical URL of the content where the Ad creative is served. (e.g. https://example.com/news/tech/article.html) <br />The parameter value has to be encoded with JavaScript’s encodeURIComponent() method or equivalent. <br />Example: si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html
 +
| &si
 +
|-
 +
| App Bundle ID
 +
| The app’s unique bundle ID (e.g. com.example.myapp). The ID can be used to look up the App in Apple’s App Store<br />or the Google Play Store.<br />References: https://developer.android.com/studio/build/application-idhttps://developer.apple.com/documentation/appstoreconnectapi/bundle_ids
 +
| &c68=bndlid
 +
|}
 +
{| class="wikitable" style="font-weight:bold;"
 +
|- style="background-color:#32BBB9; color:#002041;"
 +
! Example
 +
|- style="font-weight:normal;"
 +
| si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html<br />c68=bndlid,com.tam.nielsen.com
 +
|}
  
'''Do we need to use a 3rd party ad server to use the Nielsen tag?'''
+
== vWrap apiframework Values==
  
The short answer is no. In a lot of cases, we have provided a tag that can be implemented directly on a site. The benefit of placing our tag inside a 3rd party ad server is that we can provide a single tag (or minimal number of tags) that contain macros to simplify the tagging process.
+
Nielsen’s vWrap tag uses the existing definition of '''apiframework''' values defined in the IAB’s [https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#list--api-frameworks- '''AdCOM Specification''' '''1.0''']. This means that existing macros for this parameter in your system should work out of the box with vWrap.
  
'''Is there anything that can’t be tagged?'''
+
The vWrap tag supports the numerical values in bold below. In case of '''8''' (SIMID), the DAR Video tag will be inserted as a standard OMID verification client for viewability measurement and it will not interfere with any SIMID components in the ad.
  
We may need to review/test on a case-by-case basis, but realistically most campaign elements can be tagged. Most often, these items will need to be site served and our pixel will need to be provided to the site to implement directly. Some examples of non-standard campaign items that have been tagged before include: microsite pages, site ‘skins’, online mini-games, streaming video, pre-roll video banners.
+
If a '''0''' or an empty value is given, the resulting VAST will include both OMID and VPAID measurement solutions. This leaves the decision of the measurement method to the video player, which might be advantageous for mixed campaigns that span mobile and web environments.
  
'''The site has told us that they can accept only one pixel for the site served element. Can we append your tag to the end of ours?'''
+
{| class="wikitable" style="font-weight:bold;"
 +
|- style="background-color:#F4F5F7;"
 +
! Value
 +
! Definition
 +
|-
 +
| 1
 +
| style="font-weight:normal;" | VPAID 1.0
 +
|-
 +
| 2
 +
| style="font-weight:normal;" | VPAID 2.0
 +
|- style="font-weight:normal; color:#666;"
 +
| 3
 +
| MRAID 1.0
 +
|- style="font-weight:normal; color:#666;"
 +
| 4
 +
| ORMMA
 +
|- style="font-weight:normal; color:#666;"
 +
| 5
 +
| MRAID 2.0
 +
|- style="font-weight:normal; color:#666;"
 +
| 6
 +
| MRAID 3.0
 +
|-
 +
| 7
 +
| style="font-weight:normal;" | OMID 1.0
 +
|-
 +
| 8
 +
| style="font-weight:normal;" | SIMID 1.0
 +
|}
  
If you are serving a DCM 1x1 pixel to track these elements of your campaign, we have a method for placing our tag behind this call, to be served as a redirect. For other situations, we may need to discuss further and consider other options.
+
== SERVER-SIDE TAG DISPATCH ==
 +
The standard way of triggering a Digital Ad Ratings (DAR) tag on mobile in-app or connected devices is for the publisher to trigger the tag upon ad exposure to the user (either directly or via the ad server). This can be described as a client-side initiated tag.
  
'''I’m using more than one Nielsen study/product on this campaign. Will I need multiple/different tags for each?'''
+
It is important to note that MRC/IAB measurement standards stipulate that the ad exposure event still be initiated and recorded from the client-side, even if the ad measurement tag (in this case a DAR tag) is physically initiated from the server-side. Evidence may be required (eg. publisher log file or similar) from the MRC/IAB to substantiate that the user was exposed to the ad on their device.
  
You should not need separate tags for each study. To keep the tagging process simple, we have designed our products so that a single tag can be used for multiple online studies, however, your TAM needs to be informed of all studies before launch so that they can be enabled.
+
In addition to the tag parameters covered in the prior sections, the following HTTP headers need to be modified in the DAR calls to support dispatch from a '''server-side''' publisher ad server:
  
'''How much detail can be tracked with the Nielsen tag?'''
+
{| class="wikitable"
 +
|- style="text-align:center; background-color:#c0c0c0; color:#000000;"
 +
! HTTP Headers
 +
! Description of Modifications
 +
|-
 +
| User-Agent (UA)
 +
| This is expected to be the originating client user-agent for the<br /> device where the user was exposed to the ad. The HTTP UA from <br />the client device should be used to populate the HTTP UA in the<br /> server-side connection/ping. DAR leverages the type of<br />device for platform derivation.
 +
|-
 +
| X-Forwarded-For (XFF) IP
 +
| This is expected to be the originating client IP address for the <br />device where the user was exposed to the ad. Note: When the tag<br /> is fired directly from the ad server, the X-Real-IP will be the ad server IP.
 +
|}
  
Typically, we do an overall read for these studies, but we can segment the data by site, placement, ad size or creative, for example. If more granular data is desired, this should be discussed ahead of the campaign launch and planned for at the time of tag creation. ''We cannot segment the data if we have not tagged for it''​ -- multiple tags will need to be created and implemented properly. Note that this can often be a time consuming process for the client trafficker and additional time should be allotted if this is needed. Lastly, keep in mind that exposure sample size may be a factor for segmenting the data at a more granular level.
 
  
'''Why is it recommended to implement a timestamp or random number on the tag?''' This value will ensure that the tag call will not be cached on a user’s browser. It’s not absolutely necessary to implement for the tag to work, but without it you may see a larger gap between the impressions ran and what Nielsen captures. It is recommended to minimize this gap.
+
=== Server Side Tag Notes ===
  
'''For campaigns involving Facebook, what can’t be tagged on their site?'''
+
* The server-side tag collection only supports mobile in-app and connected device measurement and will not support cookie-based browser measurement.
  
Fan/Like pages are not allowed to be tagged, per Facebook. Additionally, Marketplace slots are not allowed to be tagged as these are user generated ads.
+
* The client’s server-side setup to trigger/send the DAR tag should suppress any Nielsen cookie returned by the Nielsen collection server as a result of the first DAR tag received. If the Nielsen cookie (returned upon receiving the first DAR tag into secure.imrworldwide.com) is not suppressed, then invalid traffic (IVT) filtration will be triggered upon receiving the 2nd and nth tag.
  
'''What if it is not possible to provide a test or staging page before launch?'''
+
* The tag received by Nielsen must be TLS v1.2 compliant or greater.
  
While not ideal, we can view raw impression numbers on the day of the launch as well as review a live example if a URL is provided. Another option would to test from the client/site side and provide a screenshot of the Nielsen call being made using a proxy tool (HTTPWatch, Fiddler, Charles, etc.) – prior to launch. The aim either way is to minimize missing impressions for your campaign, so it is in your best interest to provide for this testing if you can.
+
== About Nielsen ==
  
'''What is considered to be an acceptable gap in reporting?'''
+
Nielsen shapes the world’s media and content as a global leader in audience measurement, data and analytics. Through our understanding of people and their behaviors across all channels and platforms, we empower our clients with independent and actionable intelligence so they can connect and engage with their audiences—now and into the future.
  
In a perfect world, we’d like to see no gap in the numbers. We realize this is simply not possible – it is a factor of the Internet and having different counting methodologies, so we will aim for the lowest overall gap we can. Even with everything trafficked correctly; it is not uncommon to see gaps in the range of 5 to 10%, so we shoot for this range (if it’s lower than that, that’s great). If it’s greater than 10%, it usually indicates that there was something that was missed from being tagged or there’s an additional issue that requires further attention. When issues arise, we make all attempts to highlight and communicate the issue seen, to minimize the overall impact to the study, but are reliant on the client to ensure the issue is fixed. In a campaign where there are issues such as this, we try to keep the gap under 20% and will document any issues found. What are the capabilities for tagging video and video based ads?
+
An S&amp;P 500 company, Nielsen (NYSE: NLSN) operates around the world in more than 55 countries. Learn more at [http://www.nielsen.com '''www.nielsen.com'''] or [http://www.nielsen.com/investors '''www.nielsen.com/investors'''] and connect with us on social media.
  
Our tag is not a specific limitation as it is one of the simplest things that can be served – a 1x1 image. That being said, much of the video implementation limitations are often dictated by the video vendors themselves. Where you can add our tag is dependent on the capabilities of these vendors. Some have the ability to place the tag in multiple locations in the video (i.e. beginning, middle, end – multiple tags will be needed to separate these out) and some simply place the pixel directly on the webpage, next to video being served. Further discussion may need to happen with the vendor, Nielsen and the client to determine the optimum implementation that meets the client's needs.
+
'''Audience Is Everything®'''
</blockquote>
 

Revision as of 18:52, 4 October 2022

Engineering Portal breadcrumbArrow.png Digital breadcrumbArrow.png Digital Ad Ratings breadcrumbArrow.png DAR Tag Implementation Guide


Introduction

This document provides an overview of the Nielsen Digital Ad Ratings (DAR) Tags and the steps necessary to implement them as part of your digital advertising campaigns.

What is DAR

DAR is a measurement platform for digital advertising campaigns. The platform provides a clear view of the true audience of a campaign, including Reach, Frequency, and GRP statistics by audience demographic group.

What we measure

All DAR tags allow you to measure campaign impressions and the DAR JavaScript tags measure ad viewability, GIVT (General Invalid Traffic), and SIVT (Sophisticated Invalid Traffic) across platforms including web, mobile, and in-app.

How we measure it

Nielsen’s DAR suite of JavaScript tags together with a pixel tag fallback will be present in your ad placements. We utilize industry-standard APIs to perform measurement cross-browser and cross-platform. In most cases, you will only need to add a simple URL through your ad management interface to fully utilize DAR measurement in your campaigns.

Prerequisites

For steps outlined in this document, you should have access to Nielsen’s Campaign Management Interface (CMI) and a Nielsen Technical Account Manager (TAM) will be working with you during the implementation phase.

DAR Measurement Types

DAR Display

The DAR Display JavaScript tag reports ad impressions as well as measures ad viewability and SIVT. In standard web placements, it will find the ad unit in the surrounding DOM container and will then report viewability as a time series with a 1-second resolution.

The DAR tag will report the MRC-required minimum of 1 second on screen and a continuous viewability time series for the lifetime of the ad session to enable additional viewability qualifiers.

The tag can utilize the IAB’s Open Measurement SDK (OM SDK) including OM Web integration if the OM Interface Definition (OMID) is available, or it will use industry-standard web APIs to measure viewability.

Requirements

The DAR Display tag requires a JavaScript-enabled browser for web environments or the OM SDK for in-app to operate and should be placed close to the corresponding measured ad unit. It should be on the same DOM level (e.g. directly under the same parent) or in a child node under the same parent node. The ad unit should be a content-bearing DOM element (e.g. img, canvas, SVG, iframe, div) with a minimum size of 30x30 pixels.

Parameters

The minimum required DAR parameters are ca, ci, cr, pc, ce and am. See the Appendix for a full list of parameters.

Example Tag

<script type="text/javascript" 
src="https://dar.imrworldwide.com/js/dar.js?ca=nlsnXXXXXX&cr={AD.ID}&ce={PUBLISHER.ID}&ci=nlsnciXXXX&pc={PLACEMENT.ID}&am=3">
</script>

Example OMID Display Placement

DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table below during setup:

OM Parameter Description Nielsen Value Required
Vendor Key ID for measurement provider nielsen.com-omid
JavaScript Resource URL URL for measurement provider’s verification script
 https://dar.imrworldwide.com/js/dar.js
Verification Parameters Measurement provider’s verification tag parameters
ca=nlsnXXXXXX&cr={AD.ID}&ce=publisherXXXX&ci=nlsnciXXXX&pc=placementID_XXXX1&am=3
Verification Not Executed URL Error URL when the ad player denies measurement script execution
https://events.imrworldwide.com/er?ercd=8800&erms=verificationNotExecuted-
{reason}&ca=nlsnXXXXXX&cr=ad_ID_XXXX&ce=publisherXXXX&
ci=nlsnciXXXX&pc=placementID_XXXX5&am=3
&c13={asid,app_id}

Note: The verificationNotExecuted Error URL is recommended for better troubleshooting during campaign setup. If your system can provide a macro for the reason of the interrupted measurement session, it can be added in place of the {reason} placeholder in the error URL. This can be an error code or a clear text error message.

Expected Display Ad Session Pings

Description Timing Path
DAR Main Ping At initial load secure-gl.imrworldwide.com/cgi-bin/m
Nielsen Measure Ping Measurement start events.imrworldwide.com/nmp
Primary Standard Ping After 1 second of viewable duration (may not occur based on MRC rules) events.imrworldwide.com/psp
Timed Pings At 1, 5, 15 and 120 seconds of ad session time (may not occur based on ad session length) events.imrworldwide.com/1sp, 5sp, 15sp, 120sp
Final Ping At window/tab unloading event events.imrworldwide.com/fp
Error Ping Potential integration error - please contact your Nielsen representative events.imrworldwide.com/er

Ping Flow

This flow illustrates the behavior of the DAR Display tag.

Screenshot 2022-06-22 152646.png

Ping Flow Legend
1SP, 5SP, 15SP, 120SP Timed Measure Ping at 1, 5, 15 and 120 seconds
D0, D1, D2 Dynamic SIVT Pings at 1, 15 & 30 seconds
FP Final Ping
IMPID Unique Impression ID
NMP Nielsen Main Measure Ping
PSP Primary Standard Ping
SIVT Sophisticated Invalid Traffic

DAR Video

The DAR Video tag will typically be trafficked as part of a Video Ad Serving Template (VAST) file. Nielsen provides its wrapped video tag (vWrap) to make this type of deployment easy and consistent across the various ad servers and trafficking options. Nielsen’s vWrap tag supports both automatic OMID and VPAID integration with existing VAST files. The two sections below, Wrapped Video Tag and Video JS Tag, describe these options and their expected outcomes.

In addition, Nielsen supports direct DAR Video tag deployments with manual integration in existing workflows. In this case, the section Video JS Tag below describes the basic setup and expected results. In addition, it is recommended that you work closely with your Nielsen Technical Account Manager if you consider a manual tag integration with your campaigns.

Wrapped Video Tag (vWrap) Deployment

Nielsen’s wrapped DAR video tag, vWrap, is the preferred delivery method for VAST-controlled video ad placements.The vWrap tag is served by a Nielsen service that takes an original VAST with an inline ad (not a wrapper redirect) and dynamically adds the DAR Video tag with measurement solutions for VPAID and OMID. The apiframework parameter can be used to control which measurement solution will be inserted (see below).

Parameters

The minimum required DAR parameters are ca, ci, ce, cr, pc, am, apiframework and vastURL. See the Appendix for a full list of parameters.

The Open Real Time Bidding (OpenRTB) API framework values for identifying the ad inventory type should be passed in the Nielsen apiframework parameter. The values should be either 1 or 2 (VPAID) or 7 or 8 (OMID). The available API framework values are listed in the IAB’s AdCOM specification 1.0. If the parameter is left blank or set to 0, Wrap will add the DAR Video tag as both an OMID verification client and VPAID wrapper. See more details in the Appendix.

The vastURL parameter must be the last parameter on the DAR tag with its value set as the full URL (including all original parameters) of the original VAST tag for the ad placement.

Example Wrapped Video Tag (vWrap)

 https://vwrap.imrworldwide.com/v1/wrap?ca=nlsnXXXXXX&cr={AD.ID}&ce={PUBLISHER.ID}&pc={PLACEMENT.ID}&ci=nlsnciXXXX&am=4&
c9={devid,Advertising_ID}&c13=asid,app_id}&apiframework={APIFRAMEWORK}&vastURL={ORIGINAL_VAST_URL}

To observe how vWrap operates, we have provided some example VAST URLs which you can load directly in your browser.

VAST ad Unit, no Impression/Viewability

First, here is a VAST ad unit with a single video file and no impression tracking or viewability measurement:

https://madimator.com/vast-examples/example_video_only_nielsen_15s.xml

VAST ad Unit, Nielsen vWrap for OMID measurement

This is the same VAST file loaded via Nielsen’s vWrap tag for OMID measurement (apiframework is set to 7):

https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&cr=nielsenomidtest&ce=nielsen&pc=vastomid&ci=nlsntest&am=4&apiframework=7&vastURL=http://madimator.com/vast-examples/example_video_only_nielsen_15s.xml

VAST ad Unit, Nielsen vWrap for VPAID measurement

And here is the same VAST with the vWrap tag configured for VPAID measurement (apiframework is set to 2):

https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&cr=nielsenomidtest&ce=nielsen&pc=vastvpaid&ci=nlsntest&am=4&apiframework=2&vastURL=http://madimator.com/vast-examples/example_video_only_nielsen_15s.xml

Video JS Tag

The DAR Video tag supports both OM SDK and VPAID video ad measurement and provides viewability time series, audio volume time series, GIVT, and SIVT data. The time series contains playhead events with corresponding measurements at a 1-second resolution. In addition to the time series, a dedicated ping will report on the MRC-required minimum of 2 seconds on screen.

With OM SDK, the DAR Video tag supports the following ad types:

  • Native mobile in-app ad placements
  • Mobile web ads
  • OM Web placements
  • OMID-enabled streaming video players with ad SDKs (for instance DAI IMA SDK)


With VPAID, it supports the following operating modes:

  • As VPAID wrapper for an existing VPAID ad unit in the VAST
  • As VPAID ad unit in a VAST with video files and AdParameters node
  • In Custom Integrations with VPAID host players


In most cases, the DAR Video tag should not be manually implemented as a wrapper, instead consider utilizing Nielsen’s vWrap tag.

Requirements

The DAR Video tag needs a JavaScript environment to operate. The video unit to be measured needs to have a size of at least 30x30 pixels. The DAR Video tag requires access to the VPAID ad unit or to an OM SDK API present in the JavaScript context.

Parameters

The minimum required DAR parameters are ca, ci, ce, cr, pc and am. For VPAID wrapper placements, vpaidURL is also required.

To comply with MRC guidelines, you will be required to append autop to indicate click-to-play vs auto-play.

If the DAR Video tag will act as the VPAID wrapper, vpaidURL has to be the tag’s last parameter and its value set to the full URL (including parameters) of the original VPAID ad unit.

See the Appendix for a full list of parameters.

Expected Video Ad Session Pings

Description Timing Path
DAR Main Ping At initial load secure-gl.imrworldwide.com/cgi-bin/m
Nielsen Measure Ping Measurement start events.imrworldwide.com/nmp
Primary Standard Ping After 2 seconds of viewable duration (may not occur based on MRC rules) events.imrworldwide.com/psp
Quarterly Ping At 25%, 50%, 75% and 100% of video progress events.imrworldwide.com/qp
Final Ping At video stop or window/tab unloading event events.imrworldwide.com/fp
Error Ping Potential integration error - please contact your Nielsen representative events.imrworldwide.com/er

Ping Flow

This flow illustrates the behavior of the DAR Video tag if the impression pixel is part of the VAST to be sent by the ad player and the JS tag has &darsup=1. The parameter, darsup=1, is used to suppress the DAR Main Ping from being sent from the JS tag since the DAR main ping will be sent from the DAR impression pixel. This is the default setup if Nielsen’s vWrap tag is being used to set up the video campaign.

Screenshot 2022-06-22 2.png

Ping Flow Legend
D0, D1, D2 Dynamic SIVT Pings at 1, 15 & 30 seconds
FP Final Ping
IMPID Unique Impression ID
NMP Nielsen Main Measure Ping
PSP Primary Standard Ping
QP Quarterly Media Pings at 25%, 50%, 75% and 100%
SIVT Sophisticated Invalid Traffic

Example OMID Video Placement

DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table in the VAST <adVerifications> node:

OM Parameter Description Nielsen Value Required
Vendor Key ID for measurement provider nielsen.com-omid
JavaScript Resource URL URL for measurement provider’s verification script
https://dar.imrworldwide.com/js/darvideo.js
Verification Parameters Measurement provider’s verification tag parameters
ca=nlsnXXXXXX&cr={AD.ID}&ce=publisherXXXX&ci=nlsnciXXXX&
pc=placementID_XXXX1&am=3
Verification Not Executed URL Error URL when the ad player denies measurement script execution
https://events.imrworldwide.com/er?ercd=8800&erms=verificationNotExecuted-
{reason}&ca=nlsnXXXXXX&cr=ad_ID_XXXX&ce=publisherXXXX&
ci=nlsnciXXXX&pc=placementID_XXXX5&am=3&c9={devid,Advertising_ID}
&c13={asid,app_id}

Note: The verificationNotExecuted Error URL is recommended for better troubleshooting during campaign setup. If your system can provide a macro for the reason of the interrupted measurement session, it can be added in place of the {reason} placeholder in the error URL. This can be an error code or a clear text error message.

Example VPAID Placement in VAST

A typical VAST placement with VPAID will contain an impression pixel, the DAR Video JS tag as MediaFile of type “VPAID”, and the video MediaFiles will be duplicated as AdParameters object. In the example below, there was no original VPAID ad unit (the original VAST only contained MP4 video files), so the &vpaidURL parameter on the DAR JS tag stays empty.

In this example, the DAR JavaScript tag will operate as the VPAID ad unit and will play an appropriate media file from the list contained in the AdParameters node.

...
<Impression id="Nielsen Digital Ad Ratings">
<![CDATA[https://secure-enc.imrworldwide.com/cgi-bin/m?at=view&cy=2&rt=banner&src=njs&
st=image&tpv=vwrap&ca=nlsnXXXXXX&cr={AD.ID}&ce=publisherXXXX&ci=nlsnciXXXX&pc=placementID_XXXX1&am=3]]>
</Impression>
...
<MediaFiles>
    <MediaFile apiFramework="VPAID" type="application/javascript">
<![CDATA[https://dar.imrworldwide.com/js/darvideo.js?darsup=1&ca=nlsnXXXXXX&cr={{AD.ID}}&
ce=publisherXXXX&ci=nlsnciXXXX&pc=placementID_XXXX1&am=3]]>
    </MediaFile>
    <MediaFile bitrate="720" delivery="progressive" height="480" id="XXXXXX"
               maintainAspectRatio="true" scalable="true" type="video/mp4"  
               width="854"><![CDATA[https://XXXXX.net/XXXXXX.mp4]]>
    </MediaFile>
</MediaFiles>
...
<AdParameters>
<![CDATA[{"mediaFiles":[{"bitrate":"720","uri":"https://XXXXX.net/XXXXXX.mp4","height":"480","scalable":"true",
"id":"XXXXXX","type":"video/mp4","maintainAspectRatio":"true","delivery":"progressive","width":"854"}]]>
</AdParameters>

Server-Side Integration

If you are interested in implementing the DAR tags server-side, e.g. through SSAI, please contact your Nielsen TAM to provide you with the required guidelines.

Notes

Manual placement of the DAR Video tag is only recommended in situations where the DAR vWrap tag can not be utilized, like in certain mobile in-app ad placements or in scenarios where DAR Video needs to be configured as OMID viewability measurement solution.

Pixel Tag

The DAR Impression pixel provides basic campaign impression counts and allows to cover placements served in environments where the DAR JavaScript tag is not supported.

Environment

The DAR pixel tag should only be used in environments where the DAR JavaScript tag cannot be utilized such as restricted CTV environments, for SSAI Server-Side Beaconing, and other situations where an adequate JavaScript environment is not available.

Parameters

The minimum required DAR parameters are ca, ci, ce, cr, pc, and am along with fixed valued params, at=view, rt=banner and st=image . See the Appendix for a full list of parameters.

Example Tag

<img src="https://secure-gl.imrworldwide.com/cgi-bin/m?ca=nlsnXXXXXX&cr=crtve
&ce={PUBLISHER.ID}&pc=PLACEMENT.ID}&nlsnciXXXX&am=3&at=view&rt=banner&st=image
&cy=0&r=[timestamp]" style="display:none"/>

Tag Integration

A successful tag integration will require you to go through the following 6 steps.

Step 1: Determine Your Campaign Needs

To receive optimal results from DAR measurement, it is good practice to consider the technical requirements of different sites and placements. Please share your media plan with your Technical Account Manager before launch.

Specifically, be on the lookout for placements that might span across web and mobile ad inventory and make sure if all of the in-app placements support OMID. Also, some placement types may need manual setup and cannot be automated or may need extra time for setup and testing.

Please reach out to your Nielsen Technical Account Manager (TAM) for advice if the technical requirements for your campaign are not clear.

Step 2: Generate Tags

Your Nielsen representative will walk you through the Campaign Management Interface (CMI) so that you can generate DAR tags for your campaigns at any time.

Nielsen supports macro-based tag generation for several major ad servers. Nielsen’s Technical Account Managers can assist you with any technical questions on tagging campaigns for DAR measurement.

Step 3: Campaign Integration

Your Nielsen tags created in CMI will need to be included when you traffic your ad campaigns. Please reach out to your Nielsen TAM for additional guidance and assistance.

Step 4: Test the Tag Implementation

Depending on the complexity of the integration, you may be working closely with a TAM at this point or are performing a self-guided tag implementation based on the CMI output.

If working with a TAM, they will coordinate a plan to test the tag implementation ahead of the campaign go-live date. Depending on your campaign needs, testing will involve either running a diagnostic campaign to validate tagging setup or reviewing test pages or apps.

In case of a self-guided tag implementation, we recommend to verify and compare the impression counts in the CMI with your planned campaign volume or ad server reports during the first hours of the campaign. If there are any unexpected impression counts, please reach out to your Nielsen TAM.

Step 5: Share your Ad Server Report

Why the Ad Server Report is Needed

Knowing the delivered impressions helps Nielsen run Discrepancy Checks ensuring overall quality and reduces errors in the tagging process.

Nielsen can provide the client with a template with the inputs required to complete the quality checks.

How to Share Your Delivered impressions

Set up an automated daily report from your ad server containing Site Name, Site ID, Placement Name, Placement ID, and data date.

A secondary method to share your media plan information is to grant Nielsen “Reporting access” to your campaign in the designated ad server (such as DCM). To do this, simply grant the login clientreporting@nielsen.com access. In doing so Nielsen can directly access your media plan information, which enables us to check for updates, and reconcile any discrepancies.

Step 6: Monitoring Your Campaign

Nielsen recommends all clients participate in Discrepancy Checks. Nielsen’s team will verify that the tags delivered have begun to receive data once the campaign goes live and will regularly (typically every 7-14 days) compare the Nielsen reporting to your 3rd party or publisher reporting to ensure we are capturing all data across all placements, as expected, and that the discrepancy gap between your reporting and the Nielsen reporting is kept to a minimum.

Appendix

Tag Parameters

All passthrough parameters will appear on the JavaScript-generated DAR impression ping.

Query Parameter Description Required Pass-through
Group 1 - Required Parameters
ca Campaign ID X X
pc Placement ID X X
ci Client ID X X
am Ad server ID X X
ce Site ID X X
cr Creative ID X X
Group 2 - Use Case Specific Parameters
at Fixed Value "view" (Nielsen value, JS tags add this to DAR and NMP pings) Pixel only
st Fixed Value "image" (Nielsen value, JS tags add this to DAR and NMP pings) Pixel only
rt Fixed Value "banner" (Nielsen value, JS tags add this to DAR and NMP pings) Pixel only
r Cachebuster/Timestamp. It's required in the pixel tags with a hardcoded
value as a default or a macro (r=timestamp/macro) .
Pixel only
cy Creative type (1: display/2: video) JS tags add this to DAR and NMP pings for In-House Viewability.
When parameter is not present or value is missing on pixel tags, there will be no creative type breakout.

Pixel only
apiframework IAB-defined value designating the measurement method See vWrap apiframework values vWrap only X
autof Video only: Auto refresh (1 for auto refresh, leave empty otherwise) X
autop Video only: Autoplay (1 for auto-play, 2 for click-to-play, leave empty otherwise) X
c7 OS Grouping
c7=osgrp,IOS
c7=osgrp,DROID
c7=osgrp,ANDROID
X
c8 Device Grouping
c8=devgrp,DSK (computers)
c8=devgrp,PHN (mobile phone devices)
c8=devgrp,TAB (mobile tablet devices)
c8=devgrp,PMP (portable media player)
c8=devgrp,UNWN (unknown mobile devices)
X
c9 Mobile Advertising ID
c9=devid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mobile X
c10 Platform
c10=plt,DSK (Computer)
c10=plt,MBL (Mobile)
c10=plt,OTT (Connected Device)
X
c12 App Version
c12=apv,xxx
X
c13 Nielsen Assigned App ID
Example:
c13=asid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mobile X
c14 OS Version
c14=osver,xxx
X
c68 Mobile App Bundle ID
c68=bndlid,xxxxxxxxxxxxxx
References:
https://developer.apple.com/documentation/appstoreconnectapi/bundle_ids
https://developer.android.com/studio/build/configure-app-module#set_the_application_id
Mobile X
C78 Custom Integration Flag (please note: this is the only uppercase parameter name) some vendors X
darsup If present suppress DAR main ping originating from JS tag (value can be 0 or 1, same effect)
forceid If present provides impid, can be overwritten by impid parameter X (as impid)
impid Same as forceid, but higher priority in case both are present X
frcd Video only: Forced duration (seconds/null) X
frcf Video only: Forced ad flag (yes/no/null) X
ptraf Video only: Purchased traffic X
contplay Video only: Continuous play X
gdpr GDPR flag to indicate whether GDPR is applicable:
0 - GDPR does not apply
1 - GDPR applies
in some jurisdictions X
gdpr_consent URL-safe base64-encoded Transparency & Consent (TC) string for
identifying user's privacy preferences
in some jurisdictions X
hem_md5 Hashed email X
hem_sha1 Hashed email X
hem_sha256 Hashed email X
hem_unknown Hashed email X
mode VPAID video only, optional: Custom Direct Access mode
("w" wrapper / "c" custom; defaults to wrapper)
onload VPAID video only, optional: JS callback for Custom Direct Access VPAID integration
pub Publisher Name X
pubid Publisher ID X
si Site identifier. Canonical URL of the content where the Ad creative is served.
The parameter value has to be encoded with encodeURIComponent() method or equivalent.
X
uid2 Unified ID 2.0 X
uid2_token Unified ID 2.0 token X
uoo User opt out Mobile X
Group 3 - Parameters With Required Position in URL
vpaidURL VPAID Video only: Always the last parameter for video tags.
Either VPAID ad unit URL to be wrapped or empty. If empty, DAR tag will use its own vpaidplayer.js
VPAID video tag only
vastURL vWrap Tag only: Always the last parameter for the vWrap tag.
It must contain the URL of the original VAST for the placement.
vWrap tag only

Additional Parameters

This section describes several important additional parameters that the DAR tag can support, specifically Hashed Email, UID2 values, along with Page URL and Bundle Identifier if available. Please note that all parameters are case-sensitive.

Please work with your Nielsen Technical Account Manager to decide which of the following parameters to append to the standard DAR tag.

HEM Support (Hashed Email)

Please use the parameter that matches your hashing algorithm. For example, if you are using sha256 to encode the email address, then use hem_sha256={encrypted_value_here}

Name Description Available Tag Parameters
Hashed Email User’s email address that has been run through a hashing algorithm
(e.g. SHA256, MD5, SHA1) to create a unique hexadecimal string.
If a client is unable to determine hashing type, they should pass
using &hem_unknown parameter.
&hem_unknown
&hem_sha256
&hem_md5
&hem_sha1
Example
hem_sha256=671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2

Unified ID

Name Description Available Tag Parameters
Unified ID 2.0 An identifier based on a user’s verifiable PII (e.g. hashed email). UID2.0 was initially created by The Trade Desk (TTD)
and is now managed by Prebid.
&uid2
Unified ID 2.0 Token Encrypted Unified ID 2.0 &uid_token
Example
uid2=MTKVpUAzwYAPnHrtfE0wlINOMzhU7UUEjjVdCdRu63k=
uid_token=AgAAAAPFR0zA5ogv/yaAPiUsAdZPsfqS8QlDSGxAB+rr8yekFs3AjLYVk5qqqiyV2XHbSuwzHmxSlLeQeKQI1mp015jsNnpX5
/xGgXldcgVz+gFnyh3T8/3agMwRmyrhCxG4oH2C7fc48AQk2eotE7FW0ZDEYM8fD9ZxDaxFUC/OV3OuZA

Page and Bundle

Name Description Available Tag Parameters
Page URL Canonical URL of the content where the Ad creative is served. (e.g. https://example.com/news/tech/article.html)
The parameter value has to be encoded with JavaScript’s encodeURIComponent() method or equivalent.
Example: si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html
&si
App Bundle ID The app’s unique bundle ID (e.g. com.example.myapp). The ID can be used to look up the App in Apple’s App Store
or the Google Play Store.
References: https://developer.android.com/studio/build/application-idhttps://developer.apple.com/documentation/appstoreconnectapi/bundle_ids
&c68=bndlid
Example
si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html
c68=bndlid,com.tam.nielsen.com

vWrap apiframework Values

Nielsen’s vWrap tag uses the existing definition of apiframework values defined in the IAB’s AdCOM Specification 1.0. This means that existing macros for this parameter in your system should work out of the box with vWrap.

The vWrap tag supports the numerical values in bold below. In case of 8 (SIMID), the DAR Video tag will be inserted as a standard OMID verification client for viewability measurement and it will not interfere with any SIMID components in the ad.

If a 0 or an empty value is given, the resulting VAST will include both OMID and VPAID measurement solutions. This leaves the decision of the measurement method to the video player, which might be advantageous for mixed campaigns that span mobile and web environments.

Value Definition
1 VPAID 1.0
2 VPAID 2.0
3 MRAID 1.0
4 ORMMA
5 MRAID 2.0
6 MRAID 3.0
7 OMID 1.0
8 SIMID 1.0

SERVER-SIDE TAG DISPATCH

The standard way of triggering a Digital Ad Ratings (DAR) tag on mobile in-app or connected devices is for the publisher to trigger the tag upon ad exposure to the user (either directly or via the ad server). This can be described as a client-side initiated tag.

It is important to note that MRC/IAB measurement standards stipulate that the ad exposure event still be initiated and recorded from the client-side, even if the ad measurement tag (in this case a DAR tag) is physically initiated from the server-side. Evidence may be required (eg. publisher log file or similar) from the MRC/IAB to substantiate that the user was exposed to the ad on their device.

In addition to the tag parameters covered in the prior sections, the following HTTP headers need to be modified in the DAR calls to support dispatch from a server-side publisher ad server:

HTTP Headers Description of Modifications
User-Agent (UA) This is expected to be the originating client user-agent for the
device where the user was exposed to the ad. The HTTP UA from
the client device should be used to populate the HTTP UA in the
server-side connection/ping. DAR leverages the type of
device for platform derivation.
X-Forwarded-For (XFF) IP This is expected to be the originating client IP address for the
device where the user was exposed to the ad. Note: When the tag
is fired directly from the ad server, the X-Real-IP will be the ad server IP.


Server Side Tag Notes

  • The server-side tag collection only supports mobile in-app and connected device measurement and will not support cookie-based browser measurement.
  • The client’s server-side setup to trigger/send the DAR tag should suppress any Nielsen cookie returned by the Nielsen collection server as a result of the first DAR tag received. If the Nielsen cookie (returned upon receiving the first DAR tag into secure.imrworldwide.com) is not suppressed, then invalid traffic (IVT) filtration will be triggered upon receiving the 2nd and nth tag.
  • The tag received by Nielsen must be TLS v1.2 compliant or greater.

About Nielsen

Nielsen shapes the world’s media and content as a global leader in audience measurement, data and analytics. Through our understanding of people and their behaviors across all channels and platforms, we empower our clients with independent and actionable intelligence so they can connect and engage with their audiences—now and into the future.

An S&P 500 company, Nielsen (NYSE: NLSN) operates around the world in more than 55 countries. Learn more at www.nielsen.com or www.nielsen.com/investors and connect with us on social media.

Audience Is Everything®