<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://engineeringportal.nielsen.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>Engineering Client Portal - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://engineeringportal.nielsen.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/wiki/Special:Contributions/Admin"/>
	<updated>2026-05-27T03:26:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7339</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7339"/>
		<updated>2025-06-05T19:39:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Nielsen Media Impact (NMI), Add Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Optional for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Yes&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 3 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7338</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7338"/>
		<updated>2025-06-05T19:38:56Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Nielsen Media Impact (NMI), Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Optional for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;501&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7335</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7335"/>
		<updated>2025-06-04T17:44:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Optional for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Yes&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 3 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7334</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7334"/>
		<updated>2025-06-04T17:43:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Optional for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;501&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7333</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7333"/>
		<updated>2025-05-30T18:16:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Yes&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 3 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7332</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7332"/>
		<updated>2025-05-30T18:10:43Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;501&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7330</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7330"/>
		<updated>2025-05-29T20:38:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Yes&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 3 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7327</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7327"/>
		<updated>2025-05-22T17:21:46Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* S3 Bucket and Prefix Naming Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DAR_Tag_Implementation_Guide&amp;diff=7326</id>
		<title>DAR Tag Implementation Guide</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DAR_Tag_Implementation_Guide&amp;diff=7326"/>
		<updated>2025-05-20T20:39:32Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}}  {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
=== What is DAR ===&lt;br /&gt;
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. &lt;br /&gt;
=== What we measure=== &lt;br /&gt;
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.&lt;br /&gt;
=== How we measure it=== &lt;br /&gt;
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.&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
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.&lt;br /&gt;
__TOC__&lt;br /&gt;
= DAR Measurement Types =&lt;br /&gt;
&lt;br /&gt;
== DAR Display== &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Example Tag ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; &lt;br /&gt;
src=&amp;quot;https://dar.imrworldwide.com/js/dar.js?ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-code}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example OMID Display Placement ===&lt;br /&gt;
&lt;br /&gt;
DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table below during setup:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | OM Parameter&lt;br /&gt;
! style=&amp;quot;width: 40%&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;width: 40%&amp;quot; | Nielsen Value&lt;br /&gt;
! style=&amp;quot;width: 5%&amp;quot; |Required&lt;br /&gt;
|-&lt;br /&gt;
| Verification Vendor&lt;br /&gt;
| Vendor key for measurement provider&lt;br /&gt;
| nielsen.com-omid&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| JavaScriptResource&lt;br /&gt;
| URL for measurement provider’s verification script&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://dar.imrworldwide.com/js/dar.js&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| VerificationParameters&lt;br /&gt;
| Measurement provider’s verification tag parameters&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; |&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci=&lt;br /&gt;
{client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| Tracking Event verificationNotExecuted&lt;br /&gt;
| Error URL when the ad player denies measurement script execution&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://events.imrworldwide.com/er?ercd=8800&amp;amp;erms=verificationNotExecuted-&lt;br /&gt;
{reason}&amp;amp;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc&lt;br /&gt;
={placement-id}&amp;amp;am={ad-server-id}&amp;amp;c13={asid,app_id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
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.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Expected Display Ad Session Pings ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
! '''Description'''&lt;br /&gt;
! '''Timing'''&lt;br /&gt;
! '''Path'''&lt;br /&gt;
|-&lt;br /&gt;
| DAR Main Ping&lt;br /&gt;
| At initial load&lt;br /&gt;
| secure-gl.imrworldwide.com/cgi-bin/m&lt;br /&gt;
|-&lt;br /&gt;
| Nielsen Measure Ping&lt;br /&gt;
| Measurement start&lt;br /&gt;
| events.imrworldwide.com/nmp&lt;br /&gt;
|-&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
| After 1 second of viewable duration (may not occur based on MRC rules)&lt;br /&gt;
| events.imrworldwide.com/psp&lt;br /&gt;
|-&lt;br /&gt;
| Timed Pings&lt;br /&gt;
| At 1, 5, 15 and 120 seconds of ad session time (may not occur based on ad session length)&lt;br /&gt;
| events.imrworldwide.com/1sp, 5sp, 15sp, 120sp&lt;br /&gt;
|-&lt;br /&gt;
| Final Ping&lt;br /&gt;
| At window/tab unloading event&lt;br /&gt;
| events.imrworldwide.com/fp&lt;br /&gt;
|-&lt;br /&gt;
| Error Ping&lt;br /&gt;
| Potential integration error - please contact your Nielsen representative&lt;br /&gt;
| events.imrworldwide.com/er&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ping Flow ===&lt;br /&gt;
&lt;br /&gt;
This flow illustrates the behavior of the DAR Display tag.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2022-06-22 152646.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Ping Flow Legend&lt;br /&gt;
|- &lt;br /&gt;
| 1SP, 5SP, 15SP, 120SP&lt;br /&gt;
| Timed Measure Ping at 1, 5, 15 and 120 seconds&lt;br /&gt;
|- &lt;br /&gt;
| D0, D1, D2&lt;br /&gt;
| Dynamic SIVT Pings at 1, 15 &amp;amp;amp; 30 seconds&lt;br /&gt;
|- &lt;br /&gt;
| FP&lt;br /&gt;
| Final Ping&lt;br /&gt;
|- &lt;br /&gt;
| IMPID&lt;br /&gt;
| Unique Impression ID&lt;br /&gt;
|- &lt;br /&gt;
| NMP&lt;br /&gt;
| Nielsen Main Measure Ping&lt;br /&gt;
|-&lt;br /&gt;
| PSP&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
|-&lt;br /&gt;
| SIVT&lt;br /&gt;
| Sophisticated Invalid Traffic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DAR Video == &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Wrapped Video Tag (vWrap) Deployment ===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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''']].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Example Wrapped Video Tag (vWrap) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-family:'Courier New', Courier, monospace !important;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt; https://vwrap.imrworldwide.com/v1/wrap?ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&lt;br /&gt;
&amp;amp;am={ad-server-id}&amp;amp;c9={devid,Advertising_ID}&amp;amp;c13=asid,app_id}&amp;amp;apiframework={APIFRAMEWORK}&amp;amp;vastURL={ORIGINAL_VAST_URL}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
To observe how vWrap operates, we have provided some example VAST URLs which you can load directly in your browser.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
==== VAST ad Unit, no Impression/Viewability ====&lt;br /&gt;
First, here is a VAST ad unit with a single video file and no impression tracking or viewability measurement:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! https://dartag.info/vast-examples/example_video_only_nielsen_15s.xml &lt;br /&gt;
|}&lt;br /&gt;
==== VAST ad Unit, Nielsen vWrap for OMID measurement ====&lt;br /&gt;
This is the same VAST file loaded via Nielsen’s vWrap tag for '''OMID measurement''' (apiframework is set to 7):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&amp;amp;cr=nielsenomidtest&amp;amp;ce=nielsen&amp;amp;pc=vastomid&amp;amp;ci=nlsntest&amp;amp;am=4&amp;amp;apiframework=7&amp;amp;vastURL=http://dartag.info/vast-examples/example_video_only_nielsen_15s.xml&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== VAST ad Unit, Nielsen vWrap for VPAID measurement ====&lt;br /&gt;
And here is the same VAST with the vWrap tag configured for '''VPAID measurement''' (apiframework is set to 2):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&amp;amp;cr=nielsenomidtest&amp;amp;ce=nielsen&amp;amp;pc=vastvpaid&amp;amp;ci=nlsntest&amp;amp;am=4&amp;amp;apiframework=2&amp;amp;vastURL=http://dartag.info/vast-examples/example_video_only_nielsen_15s.xml &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video JS Tag ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
With OM SDK, the DAR Video tag supports the following ad types:&lt;br /&gt;
&lt;br /&gt;
* Native mobile in-app ad placements &lt;br /&gt;
* Mobile web ads&lt;br /&gt;
* OM Web placements&lt;br /&gt;
* OMID-enabled streaming video players with ad SDKs (for instance DAI IMA SDK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With VPAID, it supports the following operating modes:&lt;br /&gt;
* As VPAID wrapper for an existing VPAID ad unit in the VAST&lt;br /&gt;
* As VPAID ad unit in a VAST with video files and AdParameters node&lt;br /&gt;
* In Custom Integrations with VPAID host players&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In most cases, the DAR Video tag should not be manually implemented as a wrapper, instead consider utilizing Nielsen’s vWrap tag.&lt;br /&gt;
&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&lt;br /&gt;
The minimum required DAR parameters are '''ca, ci, ce, cr, pc''' and '''am'''. For VPAID wrapper placements, '''vpaidURL''' is also required.&lt;br /&gt;
&lt;br /&gt;
To comply with MRC guidelines, you will be required to append '''autop''' to indicate click-to-play vs auto-play.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']] for a full list of parameters.&lt;br /&gt;
&lt;br /&gt;
==== Expected Video Ad Session Pings ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! '''Description'''&lt;br /&gt;
! '''Timing'''&lt;br /&gt;
! '''Path'''&lt;br /&gt;
|-&lt;br /&gt;
| DAR Main Ping&lt;br /&gt;
| At initial load&lt;br /&gt;
| secure-gl.imrworldwide.com/cgi-bin/m&lt;br /&gt;
|-&lt;br /&gt;
| Nielsen Measure Ping&lt;br /&gt;
| Measurement start&lt;br /&gt;
| events.imrworldwide.com/nmp&lt;br /&gt;
|-&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
| After 2 seconds of viewable duration (may not occur based on MRC rules)&lt;br /&gt;
| events.imrworldwide.com/psp&lt;br /&gt;
|-&lt;br /&gt;
| Quarterly Ping&lt;br /&gt;
| At 25%, 50%, 75% and 100% of video progress&lt;br /&gt;
| events.imrworldwide.com/qp&lt;br /&gt;
|-&lt;br /&gt;
| Final Ping&lt;br /&gt;
| At video stop or window/tab unloading event&lt;br /&gt;
| events.imrworldwide.com/fp&lt;br /&gt;
|-&lt;br /&gt;
| Error Ping&lt;br /&gt;
| Potential integration error - please contact your Nielsen representative&lt;br /&gt;
| events.imrworldwide.com/er&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ping Flow ====&lt;br /&gt;
&lt;br /&gt;
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;amp;amp;darsup=1'''. The parameter, &amp;lt;code&amp;gt;darsup=1&amp;lt;/code&amp;gt;, 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.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2022-06-22 2.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Ping Flow Legend&lt;br /&gt;
|- &lt;br /&gt;
| D0, D1, D2&lt;br /&gt;
| Dynamic SIVT Pings at 1, 15 &amp;amp;amp; 30 seconds&lt;br /&gt;
|- &lt;br /&gt;
| FP&lt;br /&gt;
| Final Ping&lt;br /&gt;
|- &lt;br /&gt;
| IMPID&lt;br /&gt;
| Unique Impression ID&lt;br /&gt;
|- &lt;br /&gt;
| NMP&lt;br /&gt;
| Nielsen Main Measure Ping&lt;br /&gt;
|-&lt;br /&gt;
| PSP&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
|-&lt;br /&gt;
| QP&lt;br /&gt;
|Quarterly Media Pings at 25%, 50%, 75% and 100%&lt;br /&gt;
|-&lt;br /&gt;
| SIVT&lt;br /&gt;
| Sophisticated Invalid Traffic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example OMID Video Placement ====&lt;br /&gt;
&lt;br /&gt;
DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table in the VAST &amp;amp;lt;adVerifications&amp;amp;gt; node:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! '''OM Parameter'''&lt;br /&gt;
! '''Description'''&lt;br /&gt;
! '''Nielsen Value'''&lt;br /&gt;
! '''Required'''&lt;br /&gt;
|-&lt;br /&gt;
| Verification Vendor&lt;br /&gt;
| Vendor key for measurement provider&lt;br /&gt;
| nielsen.com-omid&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| JavaScriptResource&lt;br /&gt;
| URL for measurement provider’s verification script&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://dar.imrworldwide.com/js/darvideo.js&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| VerificationParameters&lt;br /&gt;
| Measurement provider’s verification tag parameters&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; |&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci=&lt;br /&gt;
{client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| Verification Not Executed URL&lt;br /&gt;
| Error URL when the ad player denies measurement script execution&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://events.imrworldwide.com/er?ercd=8800&amp;amp;erms=verificationNotExecuted-&lt;br /&gt;
{reason}&amp;amp;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&lt;br /&gt;
&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;amp;c9={devid,Advertising_ID}&amp;amp;c13={asid,app_id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example VPAID Placement in VAST ====&lt;br /&gt;
&lt;br /&gt;
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;amp;amp;vpaidURL parameter on the DAR JS tag stays empty.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;Impression id=&amp;quot;Nielsen Digital Ad Ratings&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[https://secure-enc.imrworldwide.com/cgi-bin/m?at=view&amp;amp;cy=2&amp;amp;rt=banner&amp;amp;src=njs&amp;amp;&lt;br /&gt;
st=image&amp;amp;tpv=vwrap&amp;amp;ca=nlsnXXXXXX&amp;amp;cr={AD.ID}&amp;amp;ce=publisherXXXX&amp;amp;ci=nlsnciXXXX&amp;amp;pc=placementID_XXXX1&amp;amp;am=3]]&amp;gt;&lt;br /&gt;
&amp;lt;/Impression&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;MediaFiles&amp;gt;&lt;br /&gt;
    &amp;lt;MediaFile apiFramework=&amp;quot;VPAID&amp;quot; type=&amp;quot;application/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[https://dar.imrworldwide.com/js/darvideo.js?darsup=1&amp;amp;ca=nlsnXXXXXX&amp;amp;cr={{AD.ID}}&amp;amp;&lt;br /&gt;
ce=publisherXXXX&amp;amp;ci=nlsnciXXXX&amp;amp;pc=placementID_XXXX1&amp;amp;am=3]]&amp;gt;&lt;br /&gt;
    &amp;lt;/MediaFile&amp;gt;&lt;br /&gt;
    &amp;lt;MediaFile bitrate=&amp;quot;720&amp;quot; delivery=&amp;quot;progressive&amp;quot; height=&amp;quot;480&amp;quot; id=&amp;quot;XXXXXX&amp;quot;&lt;br /&gt;
               maintainAspectRatio=&amp;quot;true&amp;quot; scalable=&amp;quot;true&amp;quot; type=&amp;quot;video/mp4&amp;quot;  &lt;br /&gt;
               width=&amp;quot;854&amp;quot;&amp;gt;&amp;lt;![CDATA[https://XXXXX.net/XXXXXX.mp4]]&amp;gt;&lt;br /&gt;
    &amp;lt;/MediaFile&amp;gt;&lt;br /&gt;
&amp;lt;/MediaFiles&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;AdParameters&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[{&amp;quot;mediaFiles&amp;quot;:[{&amp;quot;bitrate&amp;quot;:&amp;quot;720&amp;quot;,&amp;quot;uri&amp;quot;:&amp;quot;https://XXXXX.net/XXXXXX.mp4&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;480&amp;quot;,&amp;quot;scalable&amp;quot;:&amp;quot;true&amp;quot;,&lt;br /&gt;
&amp;quot;id&amp;quot;:&amp;quot;XXXXXX&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;video/mp4&amp;quot;,&amp;quot;maintainAspectRatio&amp;quot;:&amp;quot;true&amp;quot;,&amp;quot;delivery&amp;quot;:&amp;quot;progressive&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;854&amp;quot;}]]&amp;gt;&lt;br /&gt;
&amp;lt;/AdParameters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Server-Side Integration ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Pixel Tag== &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Example Tag ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;https://secure-gl.imrworldwide.com/cgi-bin/m?ca=nlsnXXXXXX&amp;amp;cr=crtve&lt;br /&gt;
&amp;amp;ce={PUBLISHER.ID}&amp;amp;pc=PLACEMENT.ID}&amp;amp;nlsnciXXXX&amp;amp;am=3&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&lt;br /&gt;
&amp;amp;cy=0&amp;amp;r=[timestamp]&amp;quot; style=&amp;quot;display:none&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tag Integration =&lt;br /&gt;
A successful tag integration will require you to go through the following 6 steps.&lt;br /&gt;
== Step 1: Determine Your Campaign Needs== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Please reach out to your Nielsen Technical Account Manager (TAM) for advice if the technical requirements for your campaign are not clear.&lt;br /&gt;
== Step 2: Generate Tags== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
== Step 3: Campaign Integration== &lt;br /&gt;
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.&lt;br /&gt;
== Step 4: Test the Tag Implementation== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
== Step 5: Share your Ad Server Report== &lt;br /&gt;
&lt;br /&gt;
=== Why the Ad Server Report is Needed ===&lt;br /&gt;
&lt;br /&gt;
Knowing the delivered impressions helps Nielsen run Discrepancy Checks ensuring overall quality and reduces errors in the tagging process.&lt;br /&gt;
&lt;br /&gt;
Nielsen can provide the client with a template with the inputs required to complete the quality checks.&lt;br /&gt;
&lt;br /&gt;
=== How to Share Your Delivered impressions ===&lt;br /&gt;
&lt;br /&gt;
Set up an automated daily report from your ad server containing Site Name, Site ID, Placement Name, Placement ID, and data date.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Monitoring Your Campaign== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Tag Parameters== &lt;br /&gt;
All passthrough parameters will appear on the JavaScript-generated DAR impression ping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#FFF;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; background-color:#EAECF0; color:#222;&amp;quot;&lt;br /&gt;
! Query Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! style=&amp;quot;text-align:center;&amp;quot; | Required&lt;br /&gt;
! style=&amp;quot;text-align:center;&amp;quot; | Pass-through&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Group 1 - Required Parameters&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| ca&lt;br /&gt;
| Campaign ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| pc&lt;br /&gt;
| Placement ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| ci&lt;br /&gt;
| Client ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| am&lt;br /&gt;
| Ad server ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;color:#222;&amp;quot;&lt;br /&gt;
| ce&lt;br /&gt;
| Site ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;background-color:#F4F5F7; color:#222;&amp;quot;&lt;br /&gt;
| cr&lt;br /&gt;
| Creative ID&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:#EFEFEF;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Group 2 - Use Case Specific Parameters&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| at&lt;br /&gt;
| Fixed Value &amp;quot;view&amp;quot; (Nielsen value, JS tags add this to DAR and NMP pings)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| st&lt;br /&gt;
| Fixed Value &amp;quot;image&amp;quot; (Nielsen value, JS tags add this to DAR and NMP pings)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| rt&lt;br /&gt;
| Fixed Value &amp;quot;banner&amp;quot; (Nielsen value, JS tags add this to DAR and NMP pings)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| r&lt;br /&gt;
| Cachebuster/Timestamp. It's required in the pixel tags with a hardcoded&amp;lt;br /&amp;gt;value as a default or a macro (r=timestamp/macro) .&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| cy&lt;br /&gt;
| Creative type (1: display/2: video) JS tags add this to DAR and NMP pings for In-House Viewability.&amp;lt;br /&amp;gt;When parameter is not present or value is missing on pixel tags, there will be no creative type breakout.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| '''[[DAR_Tag_Implementation_Guide#vWrap_apiframework_Values|apiframework]]'''&lt;br /&gt;
| IAB-defined value designating the measurement method See vWrap apiframework values&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | vWrap only&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| autof&lt;br /&gt;
| Video only: Auto refresh (1 for auto refresh, leave empty otherwise)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| autop&lt;br /&gt;
| Video only: Autoplay (1 for auto-play, 2 for click-to-play, leave empty otherwise)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c7&lt;br /&gt;
| OS Grouping&amp;lt;br /&amp;gt;c7=osgrp,IOS&amp;lt;br /&amp;gt;c7=osgrp,DROID&amp;lt;br /&amp;gt;c7=osgrp,ANDROID&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c8&lt;br /&gt;
| Device Grouping&amp;lt;br /&amp;gt;c8=devgrp,DSK (computers)&amp;lt;br /&amp;gt;c8=devgrp,PHN (mobile phone devices)&amp;lt;br /&amp;gt;c8=devgrp,TAB (mobile tablet devices)&amp;lt;br /&amp;gt;c8=devgrp,PMP (portable media player)&amp;lt;br /&amp;gt;c8=devgrp,UNWN (unknown mobile devices)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c9&lt;br /&gt;
| Mobile Advertising ID&amp;lt;br /&amp;gt;c9=devid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c10&lt;br /&gt;
| Platform&amp;lt;br /&amp;gt;c10=plt,DSK (Computer)&amp;lt;br /&amp;gt;c10=plt,MBL (Mobile)&amp;lt;br /&amp;gt;c10=plt,OTT (Connected Device)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c12&lt;br /&gt;
| App Version&amp;lt;br /&amp;gt;c12=apv,xxx&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c13&lt;br /&gt;
| Nielsen Assigned App ID&amp;lt;br /&amp;gt;Example:&amp;lt;br /&amp;gt;c13=asid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c14&lt;br /&gt;
| OS Version&amp;lt;br /&amp;gt;c14=osver,xxx&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c68&lt;br /&gt;
| Mobile App Bundle ID&amp;lt;br /&amp;gt;c68=bndlid,xxxxxxxxxxxxxx&amp;lt;br /&amp;gt;References:&amp;lt;br /&amp;gt;https://developer.apple.com/documentation/appstoreconnectapi/bundle_ids&amp;lt;br /&amp;gt;https://developer.android.com/studio/build/configure-app-module#set_the_application_id&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| C78&lt;br /&gt;
| Custom Integration Flag (please note: this is the only uppercase parameter name)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | some vendors&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| darsup&lt;br /&gt;
| If present suppress DAR main ping originating from JS tag (value can be 0 or 1, same effect)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| forceid&lt;br /&gt;
| If present provides impid, can be overwritten by impid parameter&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X (as impid)&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| impid&lt;br /&gt;
| Same as forceid, but higher priority in case both are present&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| frcd&lt;br /&gt;
| Video only: Forced duration (seconds/null)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| frcf&lt;br /&gt;
| Video only: Forced ad flag (yes/no/null)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| ptraf&lt;br /&gt;
| Video only: Purchased traffic&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| contplay&lt;br /&gt;
| Video only: Continuous play&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| gdpr&lt;br /&gt;
| GDPR flag to indicate whether GDPR is applicable:&amp;lt;br /&amp;gt;0 - GDPR does not apply&amp;lt;br /&amp;gt;1 - GDPR applies&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | in some jurisdictions&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| gdpr_consent&lt;br /&gt;
| URL-safe base64-encoded Transparency &amp;amp; Consent (TC) string for&amp;lt;br /&amp;gt;identifying user's privacy preferences&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | in some jurisdictions&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| hem_sha256&lt;br /&gt;
| Hashed email&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| hem_unknown&lt;br /&gt;
| Hashed email&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| mode&lt;br /&gt;
| VPAID video only, optional: Custom Direct Access mode&amp;lt;br /&amp;gt;(&amp;quot;w&amp;quot; wrapper / &amp;quot;c&amp;quot; custom; defaults to wrapper)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| onload&lt;br /&gt;
| VPAID video only, optional: JS callback for Custom Direct Access VPAID integration&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| pub&lt;br /&gt;
| Publisher Name&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| pubid&lt;br /&gt;
| Publisher ID&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| si&lt;br /&gt;
| Site identifier. Canonical URL of the content where the Ad creative is served.&amp;lt;br /&amp;gt;The parameter value has to be encoded with encodeURIComponent() method or equivalent.&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| uid2&lt;br /&gt;
| Unified ID 2.0&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| uid2_token&lt;br /&gt;
| Unified ID 2.0 token&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
|fp_id&lt;br /&gt;
|Publisher provided unique identifier for users&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| uoo&lt;br /&gt;
| User opt out&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Group 3 - Parameters With Required Position in URL&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#ffffff; color:#222;&amp;quot;&lt;br /&gt;
| vpaidURL&lt;br /&gt;
| VPAID Video only: Always the last parameter for video tags.&amp;lt;br /&amp;gt;Either VPAID ad unit URL to be wrapped or empty. If empty, DAR tag will use its own vpaidplayer.js&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | VPAID video tag only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:#f4f5f7;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; color:#222;&amp;quot; | vastURL&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; color:#222;&amp;quot; | vWrap Tag only: Always the last parameter for the vWrap tag.&amp;lt;br /&amp;gt;It must contain the URL of the original VAST for the placement.&lt;br /&gt;
| style=&amp;quot;text-align:center; vertical-align:middle; color:#222;&amp;quot; | vWrap tag only&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Additional Parameters == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Please work with your Nielsen Technical Account Manager to decide which of the following parameters to append to the standard DAR tag.&lt;br /&gt;
=== HEM Support (Hashed Email) ===&lt;br /&gt;
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}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold; background-color:#EAECF0;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
! Available Tag Parameters&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; background-color:#F8F9FA;&amp;quot;&lt;br /&gt;
| Hashed Email&lt;br /&gt;
| User’s email address that has been run through the sha256 hashing algorithm to create a unique hexadecimal string.&amp;lt;br /&amp;gt; If a client is unable to determine hashing type, they should pass&amp;lt;br /&amp;gt;using &amp;amp;hem_unknown parameter.&lt;br /&gt;
| &amp;amp;hem_unknown&amp;lt;br /&amp;gt;&amp;amp;hem_sha256&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#dae8fc; color:#002041;&amp;quot;&lt;br /&gt;
! Example&lt;br /&gt;
|- style=&amp;quot;font-weight:normal;&amp;quot;&lt;br /&gt;
| hem_sha256=671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unified ID ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#F8F9FA;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; background-color:#EAECF0;&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
! Available Tag Parameters&lt;br /&gt;
|-&lt;br /&gt;
| Unified ID 2.0&lt;br /&gt;
| An identifier based on a user’s verifiable PII (e.g. hashed email). UID2.0 was initially created by The Trade Desk (TTD)&amp;lt;br /&amp;gt;and is now managed by Prebid.&lt;br /&gt;
| &amp;amp;uid2&lt;br /&gt;
|-&lt;br /&gt;
| Unified ID 2.0 Token&lt;br /&gt;
| Encrypted Unified ID 2.0&lt;br /&gt;
| &amp;amp;uid_token&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#32BBB9; color:#002041;&amp;quot;&lt;br /&gt;
! Example&lt;br /&gt;
|- style=&amp;quot;font-weight:normal;&amp;quot;&lt;br /&gt;
| uid2=MTKVpUAzwYAPnHrtfE0wlINOMzhU7UUEjjVdCdRu63k=&amp;lt;br /&amp;gt;uid_token=AgAAAAPFR0zA5ogv/yaAPiUsAdZPsfqS8QlDSGxAB+rr8yekFs3AjLYVk5qqqiyV2XHbSuwzHmxSlLeQeKQI1mp015jsNnpX5&amp;lt;br /&amp;gt;/xGgXldcgVz+gFnyh3T8/3agMwRmyrhCxG4oH2C7fc48AQk2eotE7FW0ZDEYM8fD9ZxDaxFUC/OV3OuZA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== First Party Identifier ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Available Tag Parameters&lt;br /&gt;
|-&lt;br /&gt;
|First Party Identifier&lt;br /&gt;
|A user unique identifier given by the Publisher&lt;br /&gt;
|&amp;amp;fp_id&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Page and Bundle ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#F8F9FA;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; background-color:#EAECF0;&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
! Available Tag Parameters&lt;br /&gt;
|-&lt;br /&gt;
| Page URL&lt;br /&gt;
| Canonical URL of the content where the Ad creative is served. (e.g. https://example.com/news/tech/article.html) &amp;lt;br /&amp;gt;The parameter value has to be encoded with JavaScript’s encodeURIComponent() method or equivalent. &amp;lt;br /&amp;gt;Example: si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html&lt;br /&gt;
| &amp;amp;si&lt;br /&gt;
|-&lt;br /&gt;
| App Bundle ID&lt;br /&gt;
| 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&amp;lt;br /&amp;gt;or the Google Play Store.&amp;lt;br /&amp;gt;References: https://developer.android.com/studio/build/application-idhttps://developer.apple.com/documentation/appstoreconnectapi/bundle_ids&lt;br /&gt;
| &amp;amp;c68=bndlid&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#32BBB9; color:#002041;&amp;quot;&lt;br /&gt;
! Example&lt;br /&gt;
|- style=&amp;quot;font-weight:normal;&amp;quot;&lt;br /&gt;
| si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html&amp;lt;br /&amp;gt;c68=bndlid,com.tam.nielsen.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== vWrap apiframework Values== &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#F4F5F7;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Definition&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | VPAID 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | VPAID 2.0&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 3&lt;br /&gt;
| MRAID 1.0&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 4&lt;br /&gt;
| ORMMA&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 5&lt;br /&gt;
| MRAID 2.0&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 6&lt;br /&gt;
| MRAID 3.0&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | OMID 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | SIMID 1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SERVER-SIDE TAG DISPATCH ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In addition to the tag parameters covered in the prior sections, S2S tagging requires the implementation of [[Digital Measurement Ads Audit Beacon]] and additional HTTP headers outlined below.&lt;br /&gt;
&lt;br /&gt;
The following HTTP headers need to be modified in the DAR calls to support dispatch from a '''server-side''' publisher ad server:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;text-align:center; background-color:#c0c0c0; color:#000000;&amp;quot;&lt;br /&gt;
! HTTP Headers&lt;br /&gt;
! Description of Modifications&lt;br /&gt;
|-&lt;br /&gt;
| User-Agent (UA)&lt;br /&gt;
| This is expected to be the originating client user-agent for the&amp;lt;br /&amp;gt; device where the user was exposed to the ad. The HTTP UA from &amp;lt;br /&amp;gt;the client device should be used to populate the HTTP UA in the&amp;lt;br /&amp;gt; server-side connection/ping. DAR leverages the type of&amp;lt;br /&amp;gt;device for platform derivation.&lt;br /&gt;
|-&lt;br /&gt;
| X-Forwarded-For (XFF) IP&lt;br /&gt;
| This is expected to be the originating client IP address for the &amp;lt;br /&amp;gt;device where the user was exposed to the ad. Note: When the tag&amp;lt;br /&amp;gt; is fired directly from the ad server, the X-Real-IP will be the ad server IP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tag Notes ===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* The tag received by Nielsen must be TLS v1.2 compliant or greater.&lt;br /&gt;
&lt;br /&gt;
== About Nielsen ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
A Nielsen operates around the world in more than 55 countries. Learn more at [http://www.nielsen.com '''www.nielsen.com'''] and connect with us on social media.&lt;br /&gt;
&lt;br /&gt;
'''Audience Is Everything®'''&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Ads_Audit_Beacon&amp;diff=7325</id>
		<title>Digital Measurement Ads Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Ads_Audit_Beacon&amp;diff=7325"/>
		<updated>2025-05-20T04:47:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Nielsen Server-to-Server (S2S) solution needs audit pings for audience validation. The audit pings are https requests that are fired at least once per session. It primarily contains URL parameters with a randomly generated Session Identifier, Integration Identifier, and a timestamp that is matched to the server-side traffic.&lt;br /&gt;
&lt;br /&gt;
The end user device makes a request to Nielsen Collections servers at least once per Session. Sessions are defined as continuous interaction with the application, as defined by the Publisher. The Audit pings are executed ideally at the beginning of the Session or upon first ad exposure. Audit Pings may optionally fire more often, for example: fired upon each ad exposure if preferred.&lt;br /&gt;
&lt;br /&gt;
Audit Pings are intended to be as light-weight, generic as possible, and contain no personal identifiers, campaign information, or advertisement metadata.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Requests should be executed with the following convention structure:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Please note that this URL may require updates in response to changes in the market.)&lt;br /&gt;
&lt;br /&gt;
The Audit Ping will carry all parameters in the matrix later in this document. Under normal operating circumstances, the Nielsen collection system will return the following response codes:&lt;br /&gt;
&lt;br /&gt;
* 302: A redirect to another Nielsen domain, used for the purpose of generating a URL compatible with Nielsen streaming meters&lt;br /&gt;
* 200: The ping was successfully received, inspect traffic to ensure no CORS error&lt;br /&gt;
&lt;br /&gt;
== Audit Ping Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
* SessionID is ideally generated when the application is initiated, optionally upon first ad exposure&lt;br /&gt;
* Audit Pings should be executed at least every time a SessionID is created&lt;br /&gt;
* It is permissible for Audit Pings to fire more frequently than once per session (for example, upon each ad exposure, or page change, etc.)&lt;br /&gt;
* It is permissible for SessionIDs to change within a session, so long as the Audit Ping is fired again ensuring that the ImpID parameter reflects the same new SessionID&lt;br /&gt;
* For security reasons, downstream servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked, which is the preferred behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Mandatory?&lt;br /&gt;
! Specified By&lt;br /&gt;
! Format Example&lt;br /&gt;
|-&lt;br /&gt;
| intid&lt;br /&gt;
| Single ID assigned per integration for all audit pings across platforms&lt;br /&gt;
| Yes&lt;br /&gt;
| Nielsen&lt;br /&gt;
| a9ddf15ea054ea415718767ea6&lt;br /&gt;
|-&lt;br /&gt;
| apid&lt;br /&gt;
| Server App ID assigned by Nielsen&lt;br /&gt;
| Only required for content measurement&lt;br /&gt;
| Nielsen&lt;br /&gt;
| Alphanumeric application identifier assigned by Nielsen by platform&lt;br /&gt;
|-&lt;br /&gt;
| sessionid&lt;br /&gt;
| Unique id generated when video player is instantiated&lt;br /&gt;
| Yes&lt;br /&gt;
| Client&lt;br /&gt;
| Format: alphanumeric, Example: 16 char guid&lt;br /&gt;
|-&lt;br /&gt;
| product&lt;br /&gt;
| Indicates which product audit ping content corresponds to&lt;br /&gt;
| Yes&lt;br /&gt;
| Client&lt;br /&gt;
| Format: alphanumeric, Example: “dar”, “dcr”, “dtvr”&lt;br /&gt;
|-&lt;br /&gt;
| createtm&lt;br /&gt;
| Time the ping was fired&lt;br /&gt;
| Yes&lt;br /&gt;
| Client&lt;br /&gt;
| Format: UnixTime “1643858542”&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Generic Ping Format:'''&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&lt;br /&gt;
&amp;amp;intid=&amp;lt;Integration id&amp;gt;&amp;amp;apid=&amp;lt;App id&amp;gt;&amp;amp;sessionid=&amp;lt;Session Id&amp;gt;&amp;amp;product=&amp;lt;dar&amp;gt;&amp;amp;createtm=&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=a9ddf15ea054ea415718767ea6&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nielsen One Ads Impression Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
A new Impression ID parameter specified as &amp;quot;&amp;amp;impid&amp;quot; that exactly matches the SessionID included in the Audit Pings.&lt;br /&gt;
&lt;br /&gt;
'''Example Nielsen One Ads Ping:'''&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://secure-us.imrworldwide.com/cgi-bin/m?ci=us-201234h&amp;amp;cg=0[...]&amp;amp;impid=2576459933726989&amp;amp;rnd=164403011&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Ads_Audit_Beacon&amp;diff=7324</id>
		<title>Digital Measurement Ads Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Ads_Audit_Beacon&amp;diff=7324"/>
		<updated>2025-05-20T04:43:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Nielsen Server-to-Server (S2S) solution needs audit pings for audience validation. The audit pings are https requests that are fired at least once per session. It primarily contains URL parameters with a randomly generated Session Identifier, Integration Identifier, and a timestamp that is matched to the server-side traffic.&lt;br /&gt;
&lt;br /&gt;
The end user device makes a request to Nielsen Collections servers at least once per Session. Sessions are defined as continuous interaction with the application, with gaps that do not exceed contiguous content consumption of 30 minutes or greater. The Audit pings are required to fire only once per Session, ideally at the beginning of the Session or upon first ad exposure. Audit Pings may optionally fire more often, for example: fired upon each ad exposure if preferred.&lt;br /&gt;
&lt;br /&gt;
Audit Pings are intended to be as light-weight, generic as possible, and contain no personal identifiers, campaign information, or advertisement metadata. The following two primary technical purposes of the audit ping are:&lt;br /&gt;
&lt;br /&gt;
# to enable Nielsen to make a connection between metered Nielsen panelists and the Census data received via the Nielsen One Ads S2S integration. This ping provides a signal that Nielsen streaming meters and mobile meter devices can intercept the Session IDs&lt;br /&gt;
# as a secondary mechanism to monitor the health of the S2S Nielsen One Ads measurement. If Nielsen One Ads S2S measurement fails in some way, Nielsen can detect a disparity between the trends in volume from the Audit pings and Census data. Anomalous detected behavior will prompt Nielsen to investigate. For example: Audit Pings without corresponding Nielsen One Ads S2S measurement or the converse.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Requests should be executed with the following convention structure:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Please note that this URL may require updates in response to changes in the market.)&lt;br /&gt;
&lt;br /&gt;
The Audit Ping will carry all parameters in the matrix later in this document. Under normal operating circumstances, the Nielsen collection system will return the following response codes:&lt;br /&gt;
&lt;br /&gt;
* 302: A redirect to another Nielsen domain, used for the purpose of generating a URL compatible with Nielsen streaming meters&lt;br /&gt;
* 200: The ping was successfully received, inspect traffic to ensure no CORS error&lt;br /&gt;
&lt;br /&gt;
== Audit Ping Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
* SessionIDs Ideally when the application is initiated, a SessionID is also created, optionally upon first ad exposure&lt;br /&gt;
* Audit Pings will be fired at least every time a SessionID is created&lt;br /&gt;
* It is permissible for Audit Pings to fire more frequently than once per session (for example, upon each ad exposure, or page change, etc.)&lt;br /&gt;
* It is permissible for SessionIDs to change within a session, so long as the Audit Ping is fired again ensuring that the Nielsen One Ads S2S ImpID parameter reflects the same new SessionID&lt;br /&gt;
* For security reasons, downstream servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked, which is the preferred behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Mandatory?&lt;br /&gt;
! Specified By&lt;br /&gt;
! Format Example&lt;br /&gt;
|-&lt;br /&gt;
| intid&lt;br /&gt;
| Single ID assigned per integration for all audit pings across platforms&lt;br /&gt;
| Yes&lt;br /&gt;
| Nielsen&lt;br /&gt;
| a9ddf15ea054ea415718767ea6&lt;br /&gt;
|-&lt;br /&gt;
| apid&lt;br /&gt;
| Server App ID assigned by Nielsen&lt;br /&gt;
| Only required for content measurement&lt;br /&gt;
| Nielsen&lt;br /&gt;
| Alphanumeric application identifier assigned by Nielsen by platform&lt;br /&gt;
|-&lt;br /&gt;
| sessionid&lt;br /&gt;
| Unique id generated when video player is instantiated&lt;br /&gt;
| Yes&lt;br /&gt;
| Client&lt;br /&gt;
| Format: alphanumeric, Example: 16 char guid&lt;br /&gt;
|-&lt;br /&gt;
| product&lt;br /&gt;
| Indicates which product audit ping content corresponds to&lt;br /&gt;
| Yes&lt;br /&gt;
| Client&lt;br /&gt;
| Format: alphanumeric, Example: “dar”, “dcr”, “dtvr”&lt;br /&gt;
|-&lt;br /&gt;
| createtm&lt;br /&gt;
| Time the ping was fired&lt;br /&gt;
| Yes&lt;br /&gt;
| Client&lt;br /&gt;
| Format: UnixTime “1643858542”&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Generic Ping Format:'''&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&lt;br /&gt;
&amp;amp;intid=&amp;lt;Integration id&amp;gt;&amp;amp;apid=&amp;lt;App id&amp;gt;&amp;amp;sessionid=&amp;lt;Session Id&amp;gt;&amp;amp;product=&amp;lt;dar&amp;gt;&amp;amp;createtm=&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=a9ddf15ea054ea415718767ea6&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nielsen One Ads Ping Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
For S2S Nielsen One Ads Tags, a new Impression ID parameter specified as &amp;quot;&amp;amp;impid&amp;quot; that exactly matches the SessionID included in the Audit Pings.&lt;br /&gt;
&lt;br /&gt;
'''Example Nielsen One Ads Ping:'''&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
https://secure-us.imrworldwide.com/cgi-bin/m?ci=us-201234h&amp;amp;cg=0[...]&amp;amp;impid=2576459933726989&amp;amp;rnd=164403011&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7321</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7321"/>
		<updated>2025-05-14T20:23:41Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7320</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7320"/>
		<updated>2025-05-14T20:22:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Genre of content&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Format: Alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;CV (comedy variety)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;501&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7319</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7319"/>
		<updated>2025-05-14T20:19:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;501&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7318</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7318"/>
		<updated>2025-05-14T20:18:21Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* SLA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7317</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7317"/>
		<updated>2025-05-14T20:17:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7316</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7316"/>
		<updated>2025-05-14T20:16:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen.&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7315</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7315"/>
		<updated>2025-05-14T20:13:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session. The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists, 3) retrieve 3p cookies where applicable&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|client_id&lt;br /&gt;
|Nielsen-defined identifier for publisher&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;nlsnci123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_id&lt;br /&gt;
|Publisher-defined value to aggregate different campaigns under one advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1234567&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|campaign_name&lt;br /&gt;
|Publisher-defined human-readable name that will surface as the &amp;quot;campaign name&amp;quot; in reporting interface&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Campaign 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_id&lt;br /&gt;
|Publisher-defined unique advertiser ID for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;adv123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|advertiser_name&lt;br /&gt;
|Publisher-defined unique advertiser name for each advertiser&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Advertiser&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_id&lt;br /&gt;
|Publisher-defined placement ID for individual campaigns for an advertiser, removing the need to create cross campaigns&lt;br /&gt;
|Yes&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;plcmt1234&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|placement_name&lt;br /&gt;
|Publisher-defined placement name for each placement. If no value are passed then placement ID will be displayed as placement name&lt;br /&gt;
|Preferred&lt;br /&gt;
|Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Placement&amp;lt;/code&amp;gt;|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7314</id>
		<title>Digital Measurement SEI Ad Exposure Tagless</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure_Tagless&amp;diff=7314"/>
		<updated>2025-05-14T19:51:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}  This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.  The Single Endpoint...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing_CR&amp;diff=7313</id>
		<title>Digital Measurement SEI Content Viewing CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing_CR&amp;diff=7313"/>
		<updated>2025-05-14T18:59:14Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement S2S CR}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products. In addition to the below data points, a Nielsen panel match mechanism to be agreed upon, and is a necessary component of the methodology. &lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Apache Parquet format with snappy compression; (preferred)&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
* All data files have extensions to indicate the file format (.parquet | .json)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific, non-interoperable user ID (must remain persistent indefinitely); should match value provided in panel matching mechanism&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address, or truncated IP with last octet zeroed &amp;quot;.000&amp;quot;&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=7312</id>
		<title>Digital Streaming Measurement S2S CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=7312"/>
		<updated>2025-05-14T18:53:21Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
{{CategoryIcon|DCR.png|Digital Streaming Measurement Specifications (custom)}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Single Endpoint Integration (SEI) - log-file based data transaction mechanism&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 90px;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;width: 45px;&amp;quot; |&lt;br /&gt;
!| Implementation Guide&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | {{SmallIcon|S2SIcon.png|alt=SDK}}&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | {{OSIcon|VideoIcon.png|alt=Video}}&lt;br /&gt;
| '''[[Digital Measurement SEI Content Viewing CR]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement Content Relayed Audit Beacon]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''Panel Match Mechanism details to be mutually agreed upon'''&lt;br /&gt;
|-&lt;br /&gt;
|[[Nielsen Watermarking Introduction|'''Nielsen Watermarking Introduction''']]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DAR_Tag_Implementation_Guide&amp;diff=7304</id>
		<title>DAR Tag Implementation Guide</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DAR_Tag_Implementation_Guide&amp;diff=7304"/>
		<updated>2025-04-28T20:50:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Server Side Tag Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}}  {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
=== What is DAR ===&lt;br /&gt;
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. &lt;br /&gt;
=== What we measure=== &lt;br /&gt;
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.&lt;br /&gt;
=== How we measure it=== &lt;br /&gt;
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.&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
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.&lt;br /&gt;
__TOC__&lt;br /&gt;
= DAR Measurement Types =&lt;br /&gt;
&lt;br /&gt;
== DAR Display== &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Example Tag ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; &lt;br /&gt;
src=&amp;quot;https://dar.imrworldwide.com/js/dar.js?ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-code}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example OMID Display Placement ===&lt;br /&gt;
&lt;br /&gt;
DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table below during setup:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 20%&amp;quot; | OM Parameter&lt;br /&gt;
! style=&amp;quot;width: 40%&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;width: 40%&amp;quot; | Nielsen Value&lt;br /&gt;
! style=&amp;quot;width: 5%&amp;quot; |Required&lt;br /&gt;
|-&lt;br /&gt;
| Verification Vendor&lt;br /&gt;
| Vendor key for measurement provider&lt;br /&gt;
| nielsen.com-omid&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| JavaScriptResource&lt;br /&gt;
| URL for measurement provider’s verification script&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://dar.imrworldwide.com/js/dar.js&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| VerificationParameters&lt;br /&gt;
| Measurement provider’s verification tag parameters&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; |&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| Tracking Event verificationNotExecuted&lt;br /&gt;
| Error URL when the ad player denies measurement script execution&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://events.imrworldwide.com/er?ercd=8800&amp;amp;erms=verificationNotExecuted-&lt;br /&gt;
{reason}&amp;amp;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;amp;c13={asid,app_id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
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.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Expected Display Ad Session Pings ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
&lt;br /&gt;
! '''Description'''&lt;br /&gt;
! '''Timing'''&lt;br /&gt;
! '''Path'''&lt;br /&gt;
|-&lt;br /&gt;
| DAR Main Ping&lt;br /&gt;
| At initial load&lt;br /&gt;
| secure-gl.imrworldwide.com/cgi-bin/m&lt;br /&gt;
|-&lt;br /&gt;
| Nielsen Measure Ping&lt;br /&gt;
| Measurement start&lt;br /&gt;
| events.imrworldwide.com/nmp&lt;br /&gt;
|-&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
| After 1 second of viewable duration (may not occur based on MRC rules)&lt;br /&gt;
| events.imrworldwide.com/psp&lt;br /&gt;
|-&lt;br /&gt;
| Timed Pings&lt;br /&gt;
| At 1, 5, 15 and 120 seconds of ad session time (may not occur based on ad session length)&lt;br /&gt;
| events.imrworldwide.com/1sp, 5sp, 15sp, 120sp&lt;br /&gt;
|-&lt;br /&gt;
| Final Ping&lt;br /&gt;
| At window/tab unloading event&lt;br /&gt;
| events.imrworldwide.com/fp&lt;br /&gt;
|-&lt;br /&gt;
| Error Ping&lt;br /&gt;
| Potential integration error - please contact your Nielsen representative&lt;br /&gt;
| events.imrworldwide.com/er&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ping Flow ===&lt;br /&gt;
&lt;br /&gt;
This flow illustrates the behavior of the DAR Display tag.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2022-06-22 152646.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Ping Flow Legend&lt;br /&gt;
|- &lt;br /&gt;
| 1SP, 5SP, 15SP, 120SP&lt;br /&gt;
| Timed Measure Ping at 1, 5, 15 and 120 seconds&lt;br /&gt;
|- &lt;br /&gt;
| D0, D1, D2&lt;br /&gt;
| Dynamic SIVT Pings at 1, 15 &amp;amp;amp; 30 seconds&lt;br /&gt;
|- &lt;br /&gt;
| FP&lt;br /&gt;
| Final Ping&lt;br /&gt;
|- &lt;br /&gt;
| IMPID&lt;br /&gt;
| Unique Impression ID&lt;br /&gt;
|- &lt;br /&gt;
| NMP&lt;br /&gt;
| Nielsen Main Measure Ping&lt;br /&gt;
|-&lt;br /&gt;
| PSP&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
|-&lt;br /&gt;
| SIVT&lt;br /&gt;
| Sophisticated Invalid Traffic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DAR Video == &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Wrapped Video Tag (vWrap) Deployment ===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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''']].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Example Wrapped Video Tag (vWrap) ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-family:'Courier New', Courier, monospace !important;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt; https://vwrap.imrworldwide.com/v1/wrap?ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&lt;br /&gt;
&amp;amp;am={ad-server-id}&amp;amp;c9={devid,Advertising_ID}&amp;amp;c13=asid,app_id}&amp;amp;apiframework={APIFRAMEWORK}&amp;amp;vastURL={ORIGINAL_VAST_URL}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
To observe how vWrap operates, we have provided some example VAST URLs which you can load directly in your browser.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
==== VAST ad Unit, no Impression/Viewability ====&lt;br /&gt;
First, here is a VAST ad unit with a single video file and no impression tracking or viewability measurement:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! https://dartag.info/vast-examples/example_video_only_nielsen_15s.xml &lt;br /&gt;
|}&lt;br /&gt;
==== VAST ad Unit, Nielsen vWrap for OMID measurement ====&lt;br /&gt;
This is the same VAST file loaded via Nielsen’s vWrap tag for '''OMID measurement''' (apiframework is set to 7):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&amp;amp;cr=nielsenomidtest&amp;amp;ce=nielsen&amp;amp;pc=vastomid&amp;amp;ci=nlsntest&amp;amp;am=4&amp;amp;apiframework=7&amp;amp;vastURL=http://dartag.info/vast-examples/example_video_only_nielsen_15s.xml&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== VAST ad Unit, Nielsen vWrap for VPAID measurement ====&lt;br /&gt;
And here is the same VAST with the vWrap tag configured for '''VPAID measurement''' (apiframework is set to 2):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
!https://vwrap.imrworldwide.com/v1/wrap?ca=nlsn305255&amp;amp;cr=nielsenomidtest&amp;amp;ce=nielsen&amp;amp;pc=vastvpaid&amp;amp;ci=nlsntest&amp;amp;am=4&amp;amp;apiframework=2&amp;amp;vastURL=http://dartag.info/vast-examples/example_video_only_nielsen_15s.xml &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Video JS Tag ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
With OM SDK, the DAR Video tag supports the following ad types:&lt;br /&gt;
&lt;br /&gt;
* Native mobile in-app ad placements &lt;br /&gt;
* Mobile web ads&lt;br /&gt;
* OM Web placements&lt;br /&gt;
* OMID-enabled streaming video players with ad SDKs (for instance DAI IMA SDK)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With VPAID, it supports the following operating modes:&lt;br /&gt;
* As VPAID wrapper for an existing VPAID ad unit in the VAST&lt;br /&gt;
* As VPAID ad unit in a VAST with video files and AdParameters node&lt;br /&gt;
* In Custom Integrations with VPAID host players&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In most cases, the DAR Video tag should not be manually implemented as a wrapper, instead consider utilizing Nielsen’s vWrap tag.&lt;br /&gt;
&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&lt;br /&gt;
The minimum required DAR parameters are '''ca, ci, ce, cr, pc''' and '''am'''. For VPAID wrapper placements, '''vpaidURL''' is also required.&lt;br /&gt;
&lt;br /&gt;
To comply with MRC guidelines, you will be required to append '''autop''' to indicate click-to-play vs auto-play.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See the [[DAR_Tag_Implementation_Guide#Appendix|'''Appendix''']] for a full list of parameters.&lt;br /&gt;
&lt;br /&gt;
==== Expected Video Ad Session Pings ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! '''Description'''&lt;br /&gt;
! '''Timing'''&lt;br /&gt;
! '''Path'''&lt;br /&gt;
|-&lt;br /&gt;
| DAR Main Ping&lt;br /&gt;
| At initial load&lt;br /&gt;
| secure-gl.imrworldwide.com/cgi-bin/m&lt;br /&gt;
|-&lt;br /&gt;
| Nielsen Measure Ping&lt;br /&gt;
| Measurement start&lt;br /&gt;
| events.imrworldwide.com/nmp&lt;br /&gt;
|-&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
| After 2 seconds of viewable duration (may not occur based on MRC rules)&lt;br /&gt;
| events.imrworldwide.com/psp&lt;br /&gt;
|-&lt;br /&gt;
| Quarterly Ping&lt;br /&gt;
| At 25%, 50%, 75% and 100% of video progress&lt;br /&gt;
| events.imrworldwide.com/qp&lt;br /&gt;
|-&lt;br /&gt;
| Final Ping&lt;br /&gt;
| At video stop or window/tab unloading event&lt;br /&gt;
| events.imrworldwide.com/fp&lt;br /&gt;
|-&lt;br /&gt;
| Error Ping&lt;br /&gt;
| Potential integration error - please contact your Nielsen representative&lt;br /&gt;
| events.imrworldwide.com/er&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ping Flow ====&lt;br /&gt;
&lt;br /&gt;
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;amp;amp;darsup=1'''. The parameter, &amp;lt;code&amp;gt;darsup=1&amp;lt;/code&amp;gt;, 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.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot 2022-06-22 2.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Ping Flow Legend&lt;br /&gt;
|- &lt;br /&gt;
| D0, D1, D2&lt;br /&gt;
| Dynamic SIVT Pings at 1, 15 &amp;amp;amp; 30 seconds&lt;br /&gt;
|- &lt;br /&gt;
| FP&lt;br /&gt;
| Final Ping&lt;br /&gt;
|- &lt;br /&gt;
| IMPID&lt;br /&gt;
| Unique Impression ID&lt;br /&gt;
|- &lt;br /&gt;
| NMP&lt;br /&gt;
| Nielsen Main Measure Ping&lt;br /&gt;
|-&lt;br /&gt;
| PSP&lt;br /&gt;
| Primary Standard Ping&lt;br /&gt;
|-&lt;br /&gt;
| QP&lt;br /&gt;
|Quarterly Media Pings at 25%, 50%, 75% and 100%&lt;br /&gt;
|-&lt;br /&gt;
| SIVT&lt;br /&gt;
| Sophisticated Invalid Traffic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example OMID Video Placement ====&lt;br /&gt;
&lt;br /&gt;
DAR can be enabled through the OM SDK by passing the required Nielsen OM inputs listed in the table in the VAST &amp;amp;lt;adVerifications&amp;amp;gt; node:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! '''OM Parameter'''&lt;br /&gt;
! '''Description'''&lt;br /&gt;
! '''Nielsen Value'''&lt;br /&gt;
! '''Required'''&lt;br /&gt;
|-&lt;br /&gt;
| Verification Vendor&lt;br /&gt;
| Vendor key for measurement provider&lt;br /&gt;
| nielsen.com-omid&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| JavaScriptResource&lt;br /&gt;
| URL for measurement provider’s verification script&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://dar.imrworldwide.com/js/darvideo.js&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| VerificationParameters&lt;br /&gt;
| Measurement provider’s verification tag parameters&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; |&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| ✔&lt;br /&gt;
|-&lt;br /&gt;
| Verification Not Executed URL&lt;br /&gt;
| Error URL when the ad player denies measurement script execution&lt;br /&gt;
| style=&amp;quot;font-family:'Courier New', Courier, monospace !important; color:#222222;&amp;quot; | &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;https://events.imrworldwide.com/er?ercd=8800&amp;amp;erms=verificationNotExecuted-&lt;br /&gt;
{reason}&amp;amp;ca={campaign-id}&amp;amp;cr={creative-id}&amp;amp;ce={site-id}&amp;amp;ci={client-id}&lt;br /&gt;
&amp;amp;pc={placement-id}&amp;amp;am={ad-server-id}&amp;amp;c9={devid,Advertising_ID}&amp;amp;c13={asid,app_id}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example VPAID Placement in VAST ====&lt;br /&gt;
&lt;br /&gt;
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;amp;amp;vpaidURL parameter on the DAR JS tag stays empty.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;Impression id=&amp;quot;Nielsen Digital Ad Ratings&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[https://secure-enc.imrworldwide.com/cgi-bin/m?at=view&amp;amp;cy=2&amp;amp;rt=banner&amp;amp;src=njs&amp;amp;&lt;br /&gt;
st=image&amp;amp;tpv=vwrap&amp;amp;ca=nlsnXXXXXX&amp;amp;cr={AD.ID}&amp;amp;ce=publisherXXXX&amp;amp;ci=nlsnciXXXX&amp;amp;pc=placementID_XXXX1&amp;amp;am=3]]&amp;gt;&lt;br /&gt;
&amp;lt;/Impression&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;MediaFiles&amp;gt;&lt;br /&gt;
    &amp;lt;MediaFile apiFramework=&amp;quot;VPAID&amp;quot; type=&amp;quot;application/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[https://dar.imrworldwide.com/js/darvideo.js?darsup=1&amp;amp;ca=nlsnXXXXXX&amp;amp;cr={{AD.ID}}&amp;amp;&lt;br /&gt;
ce=publisherXXXX&amp;amp;ci=nlsnciXXXX&amp;amp;pc=placementID_XXXX1&amp;amp;am=3]]&amp;gt;&lt;br /&gt;
    &amp;lt;/MediaFile&amp;gt;&lt;br /&gt;
    &amp;lt;MediaFile bitrate=&amp;quot;720&amp;quot; delivery=&amp;quot;progressive&amp;quot; height=&amp;quot;480&amp;quot; id=&amp;quot;XXXXXX&amp;quot;&lt;br /&gt;
               maintainAspectRatio=&amp;quot;true&amp;quot; scalable=&amp;quot;true&amp;quot; type=&amp;quot;video/mp4&amp;quot;  &lt;br /&gt;
               width=&amp;quot;854&amp;quot;&amp;gt;&amp;lt;![CDATA[https://XXXXX.net/XXXXXX.mp4]]&amp;gt;&lt;br /&gt;
    &amp;lt;/MediaFile&amp;gt;&lt;br /&gt;
&amp;lt;/MediaFiles&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;AdParameters&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[{&amp;quot;mediaFiles&amp;quot;:[{&amp;quot;bitrate&amp;quot;:&amp;quot;720&amp;quot;,&amp;quot;uri&amp;quot;:&amp;quot;https://XXXXX.net/XXXXXX.mp4&amp;quot;,&amp;quot;height&amp;quot;:&amp;quot;480&amp;quot;,&amp;quot;scalable&amp;quot;:&amp;quot;true&amp;quot;,&lt;br /&gt;
&amp;quot;id&amp;quot;:&amp;quot;XXXXXX&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;video/mp4&amp;quot;,&amp;quot;maintainAspectRatio&amp;quot;:&amp;quot;true&amp;quot;,&amp;quot;delivery&amp;quot;:&amp;quot;progressive&amp;quot;,&amp;quot;width&amp;quot;:&amp;quot;854&amp;quot;}]]&amp;gt;&lt;br /&gt;
&amp;lt;/AdParameters&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Server-Side Integration ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Pixel Tag== &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Example Tag ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;https://secure-gl.imrworldwide.com/cgi-bin/m?ca=nlsnXXXXXX&amp;amp;cr=crtve&lt;br /&gt;
&amp;amp;ce={PUBLISHER.ID}&amp;amp;pc=PLACEMENT.ID}&amp;amp;nlsnciXXXX&amp;amp;am=3&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&lt;br /&gt;
&amp;amp;cy=0&amp;amp;r=[timestamp]&amp;quot; style=&amp;quot;display:none&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tag Integration =&lt;br /&gt;
A successful tag integration will require you to go through the following 6 steps.&lt;br /&gt;
== Step 1: Determine Your Campaign Needs== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Please reach out to your Nielsen Technical Account Manager (TAM) for advice if the technical requirements for your campaign are not clear.&lt;br /&gt;
== Step 2: Generate Tags== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
== Step 3: Campaign Integration== &lt;br /&gt;
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.&lt;br /&gt;
== Step 4: Test the Tag Implementation== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
== Step 5: Share your Ad Server Report== &lt;br /&gt;
&lt;br /&gt;
=== Why the Ad Server Report is Needed ===&lt;br /&gt;
&lt;br /&gt;
Knowing the delivered impressions helps Nielsen run Discrepancy Checks ensuring overall quality and reduces errors in the tagging process.&lt;br /&gt;
&lt;br /&gt;
Nielsen can provide the client with a template with the inputs required to complete the quality checks.&lt;br /&gt;
&lt;br /&gt;
=== How to Share Your Delivered impressions ===&lt;br /&gt;
&lt;br /&gt;
Set up an automated daily report from your ad server containing Site Name, Site ID, Placement Name, Placement ID, and data date.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Monitoring Your Campaign== &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Appendix =&lt;br /&gt;
== Tag Parameters== &lt;br /&gt;
All passthrough parameters will appear on the JavaScript-generated DAR impression ping.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#FFF;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; background-color:#EAECF0; color:#222;&amp;quot;&lt;br /&gt;
! Query Parameter&lt;br /&gt;
! Description&lt;br /&gt;
! style=&amp;quot;text-align:center;&amp;quot; | Required&lt;br /&gt;
! style=&amp;quot;text-align:center;&amp;quot; | Pass-through&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Group 1 - Required Parameters&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| ca&lt;br /&gt;
| Campaign ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| pc&lt;br /&gt;
| Placement ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| ci&lt;br /&gt;
| Client ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| am&lt;br /&gt;
| Ad server ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;color:#222;&amp;quot;&lt;br /&gt;
| ce&lt;br /&gt;
| Site ID&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;background-color:#F4F5F7; color:#222;&amp;quot;&lt;br /&gt;
| cr&lt;br /&gt;
| Creative ID&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:#EFEFEF;&amp;quot; | X&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Group 2 - Use Case Specific Parameters&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| at&lt;br /&gt;
| Fixed Value &amp;quot;view&amp;quot; (Nielsen value, JS tags add this to DAR and NMP pings)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| st&lt;br /&gt;
| Fixed Value &amp;quot;image&amp;quot; (Nielsen value, JS tags add this to DAR and NMP pings)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| rt&lt;br /&gt;
| Fixed Value &amp;quot;banner&amp;quot; (Nielsen value, JS tags add this to DAR and NMP pings)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| r&lt;br /&gt;
| Cachebuster/Timestamp. It's required in the pixel tags with a hardcoded&amp;lt;br /&amp;gt;value as a default or a macro (r=timestamp/macro) .&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| cy&lt;br /&gt;
| Creative type (1: display/2: video) JS tags add this to DAR and NMP pings for In-House Viewability.&amp;lt;br /&amp;gt;When parameter is not present or value is missing on pixel tags, there will be no creative type breakout.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Pixel only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| '''[[DAR_Tag_Implementation_Guide#vWrap_apiframework_Values|apiframework]]'''&lt;br /&gt;
| IAB-defined value designating the measurement method See vWrap apiframework values&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | vWrap only&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| autof&lt;br /&gt;
| Video only: Auto refresh (1 for auto refresh, leave empty otherwise)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| autop&lt;br /&gt;
| Video only: Autoplay (1 for auto-play, 2 for click-to-play, leave empty otherwise)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c7&lt;br /&gt;
| OS Grouping&amp;lt;br /&amp;gt;c7=osgrp,IOS&amp;lt;br /&amp;gt;c7=osgrp,DROID&amp;lt;br /&amp;gt;c7=osgrp,ANDROID&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c8&lt;br /&gt;
| Device Grouping&amp;lt;br /&amp;gt;c8=devgrp,DSK (computers)&amp;lt;br /&amp;gt;c8=devgrp,PHN (mobile phone devices)&amp;lt;br /&amp;gt;c8=devgrp,TAB (mobile tablet devices)&amp;lt;br /&amp;gt;c8=devgrp,PMP (portable media player)&amp;lt;br /&amp;gt;c8=devgrp,UNWN (unknown mobile devices)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c9&lt;br /&gt;
| Mobile Advertising ID&amp;lt;br /&amp;gt;c9=devid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c10&lt;br /&gt;
| Platform&amp;lt;br /&amp;gt;c10=plt,DSK (Computer)&amp;lt;br /&amp;gt;c10=plt,MBL (Mobile)&amp;lt;br /&amp;gt;c10=plt,OTT (Connected Device)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c12&lt;br /&gt;
| App Version&amp;lt;br /&amp;gt;c12=apv,xxx&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c13&lt;br /&gt;
| Nielsen Assigned App ID&amp;lt;br /&amp;gt;Example:&amp;lt;br /&amp;gt;c13=asid,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| c14&lt;br /&gt;
| OS Version&amp;lt;br /&amp;gt;c14=osver,xxx&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| c68&lt;br /&gt;
| Mobile App Bundle ID&amp;lt;br /&amp;gt;c68=bndlid,xxxxxxxxxxxxxx&amp;lt;br /&amp;gt;References:&amp;lt;br /&amp;gt;https://developer.apple.com/documentation/appstoreconnectapi/bundle_ids&amp;lt;br /&amp;gt;https://developer.android.com/studio/build/configure-app-module#set_the_application_id&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| C78&lt;br /&gt;
| Custom Integration Flag (please note: this is the only uppercase parameter name)&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | some vendors&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| darsup&lt;br /&gt;
| If present suppress DAR main ping originating from JS tag (value can be 0 or 1, same effect)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| forceid&lt;br /&gt;
| If present provides impid, can be overwritten by impid parameter&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X (as impid)&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| impid&lt;br /&gt;
| Same as forceid, but higher priority in case both are present&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| frcd&lt;br /&gt;
| Video only: Forced duration (seconds/null)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| frcf&lt;br /&gt;
| Video only: Forced ad flag (yes/no/null)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| ptraf&lt;br /&gt;
| Video only: Purchased traffic&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| contplay&lt;br /&gt;
| Video only: Continuous play&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| gdpr&lt;br /&gt;
| GDPR flag to indicate whether GDPR is applicable:&amp;lt;br /&amp;gt;0 - GDPR does not apply&amp;lt;br /&amp;gt;1 - GDPR applies&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | in some jurisdictions&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| gdpr_consent&lt;br /&gt;
| URL-safe base64-encoded Transparency &amp;amp; Consent (TC) string for&amp;lt;br /&amp;gt;identifying user's privacy preferences&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | in some jurisdictions&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| hem_sha256&lt;br /&gt;
| Hashed email&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| hem_unknown&lt;br /&gt;
| Hashed email&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| mode&lt;br /&gt;
| VPAID video only, optional: Custom Direct Access mode&amp;lt;br /&amp;gt;(&amp;quot;w&amp;quot; wrapper / &amp;quot;c&amp;quot; custom; defaults to wrapper)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| onload&lt;br /&gt;
| VPAID video only, optional: JS callback for Custom Direct Access VPAID integration&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| pub&lt;br /&gt;
| Publisher Name&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| pubid&lt;br /&gt;
| Publisher ID&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| si&lt;br /&gt;
| Site identifier. Canonical URL of the content where the Ad creative is served.&amp;lt;br /&amp;gt;The parameter value has to be encoded with encodeURIComponent() method or equivalent.&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| uid2&lt;br /&gt;
| Unified ID 2.0&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#EFEFEF; color:#222;&amp;quot;&lt;br /&gt;
| uid2_token&lt;br /&gt;
| Unified ID 2.0 token&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
|fp_id&lt;br /&gt;
|Publisher provided unique identifier for users&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; color:#222;&amp;quot;&lt;br /&gt;
| uoo&lt;br /&gt;
| User opt out&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Mobile&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | X&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; vertical-align:middle; background-color:#FFEBD3; color:#222;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Group 3 - Parameters With Required Position in URL&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle; background-color:#ffffff; color:#222;&amp;quot;&lt;br /&gt;
| vpaidURL&lt;br /&gt;
| VPAID Video only: Always the last parameter for video tags.&amp;lt;br /&amp;gt;Either VPAID ad unit URL to be wrapped or empty. If empty, DAR tag will use its own vpaidplayer.js&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | VPAID video tag only&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;background-color:#f4f5f7;&amp;quot;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; color:#222;&amp;quot; | vastURL&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; color:#222;&amp;quot; | vWrap Tag only: Always the last parameter for the vWrap tag.&amp;lt;br /&amp;gt;It must contain the URL of the original VAST for the placement.&lt;br /&gt;
| style=&amp;quot;text-align:center; vertical-align:middle; color:#222;&amp;quot; | vWrap tag only&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Additional Parameters == &lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Please work with your Nielsen Technical Account Manager to decide which of the following parameters to append to the standard DAR tag.&lt;br /&gt;
=== HEM Support (Hashed Email) ===&lt;br /&gt;
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}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold; background-color:#EAECF0;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
! Available Tag Parameters&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; background-color:#F8F9FA;&amp;quot;&lt;br /&gt;
| Hashed Email&lt;br /&gt;
| User’s email address that has been run through the sha256 hashing algorithm to create a unique hexadecimal string.&amp;lt;br /&amp;gt; If a client is unable to determine hashing type, they should pass&amp;lt;br /&amp;gt;using &amp;amp;hem_unknown parameter.&lt;br /&gt;
| &amp;amp;hem_unknown&amp;lt;br /&amp;gt;&amp;amp;hem_sha256&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#dae8fc; color:#002041;&amp;quot;&lt;br /&gt;
! Example&lt;br /&gt;
|- style=&amp;quot;font-weight:normal;&amp;quot;&lt;br /&gt;
| hem_sha256=671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unified ID ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#F8F9FA;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; background-color:#EAECF0;&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
! Available Tag Parameters&lt;br /&gt;
|-&lt;br /&gt;
| Unified ID 2.0&lt;br /&gt;
| An identifier based on a user’s verifiable PII (e.g. hashed email). UID2.0 was initially created by The Trade Desk (TTD)&amp;lt;br /&amp;gt;and is now managed by Prebid.&lt;br /&gt;
| &amp;amp;uid2&lt;br /&gt;
|-&lt;br /&gt;
| Unified ID 2.0 Token&lt;br /&gt;
| Encrypted Unified ID 2.0&lt;br /&gt;
| &amp;amp;uid_token&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#32BBB9; color:#002041;&amp;quot;&lt;br /&gt;
! Example&lt;br /&gt;
|- style=&amp;quot;font-weight:normal;&amp;quot;&lt;br /&gt;
| uid2=MTKVpUAzwYAPnHrtfE0wlINOMzhU7UUEjjVdCdRu63k=&amp;lt;br /&amp;gt;uid_token=AgAAAAPFR0zA5ogv/yaAPiUsAdZPsfqS8QlDSGxAB+rr8yekFs3AjLYVk5qqqiyV2XHbSuwzHmxSlLeQeKQI1mp015jsNnpX5&amp;lt;br /&amp;gt;/xGgXldcgVz+gFnyh3T8/3agMwRmyrhCxG4oH2C7fc48AQk2eotE7FW0ZDEYM8fD9ZxDaxFUC/OV3OuZA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== First Party Identifier ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
!Available Tag Parameters&lt;br /&gt;
|-&lt;br /&gt;
|First Party Identifier&lt;br /&gt;
|A user unique identifier given by the Publisher&lt;br /&gt;
|&amp;amp;fp_id&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Page and Bundle ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#F8F9FA;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; background-color:#EAECF0;&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
! Available Tag Parameters&lt;br /&gt;
|-&lt;br /&gt;
| Page URL&lt;br /&gt;
| Canonical URL of the content where the Ad creative is served. (e.g. https://example.com/news/tech/article.html) &amp;lt;br /&amp;gt;The parameter value has to be encoded with JavaScript’s encodeURIComponent() method or equivalent. &amp;lt;br /&amp;gt;Example: si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html&lt;br /&gt;
| &amp;amp;si&lt;br /&gt;
|-&lt;br /&gt;
| App Bundle ID&lt;br /&gt;
| 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&amp;lt;br /&amp;gt;or the Google Play Store.&amp;lt;br /&amp;gt;References: https://developer.android.com/studio/build/application-idhttps://developer.apple.com/documentation/appstoreconnectapi/bundle_ids&lt;br /&gt;
| &amp;amp;c68=bndlid&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#32BBB9; color:#002041;&amp;quot;&lt;br /&gt;
! Example&lt;br /&gt;
|- style=&amp;quot;font-weight:normal;&amp;quot;&lt;br /&gt;
| si=https%3A%2F%2Fexample.com%2Fnews%2Ftech%2Farticle.html&amp;lt;br /&amp;gt;c68=bndlid,com.tam.nielsen.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== vWrap apiframework Values== &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#F4F5F7;&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Definition&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | VPAID 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | VPAID 2.0&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 3&lt;br /&gt;
| MRAID 1.0&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 4&lt;br /&gt;
| ORMMA&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 5&lt;br /&gt;
| MRAID 2.0&lt;br /&gt;
|- style=&amp;quot;font-weight:normal; color:#666;&amp;quot;&lt;br /&gt;
| 6&lt;br /&gt;
| MRAID 3.0&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | OMID 1.0&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| style=&amp;quot;font-weight:normal;&amp;quot; | SIMID 1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SERVER-SIDE TAG DISPATCH ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;text-align:center; background-color:#c0c0c0; color:#000000;&amp;quot;&lt;br /&gt;
! HTTP Headers&lt;br /&gt;
! Description of Modifications&lt;br /&gt;
|-&lt;br /&gt;
| User-Agent (UA)&lt;br /&gt;
| This is expected to be the originating client user-agent for the&amp;lt;br /&amp;gt; device where the user was exposed to the ad. The HTTP UA from &amp;lt;br /&amp;gt;the client device should be used to populate the HTTP UA in the&amp;lt;br /&amp;gt; server-side connection/ping. DAR leverages the type of&amp;lt;br /&amp;gt;device for platform derivation.&lt;br /&gt;
|-&lt;br /&gt;
| X-Forwarded-For (XFF) IP&lt;br /&gt;
| This is expected to be the originating client IP address for the &amp;lt;br /&amp;gt;device where the user was exposed to the ad. Note: When the tag&amp;lt;br /&amp;gt; is fired directly from the ad server, the X-Real-IP will be the ad server IP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Server Side Tag Notes ===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* The tag received by Nielsen must be TLS v1.2 compliant or greater.&lt;br /&gt;
&lt;br /&gt;
== About Nielsen ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
A Nielsen operates around the world in more than 55 countries. Learn more at [http://www.nielsen.com '''www.nielsen.com'''] and connect with us on social media.&lt;br /&gt;
&lt;br /&gt;
'''Audience Is Everything®'''&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7224</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7224"/>
		<updated>2025-03-25T20:03:35Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Optional&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7218</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7218"/>
		<updated>2025-03-19T19:06:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: + timestamp for NBE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |timestamp&lt;br /&gt;
|Time impression occurred &lt;br /&gt;
|Preferred; Yes for NBE&lt;br /&gt;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7150</id>
		<title>Digital Measurement SEI Static Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7150"/>
		<updated>2024-12-13T22:44:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
This document describes the log file exposures, to be used in conjunction with:&lt;br /&gt;
*[[Digital Measurement Content Audit Beacon]]&lt;br /&gt;
*[[Digital Measurement SEI Content Asset Metadata]]&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for an asset&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |section&lt;br /&gt;
|section of each site (e.g. section value should be first level in page URL: website.com/section). Limit to 25 unique values&lt;br /&gt;
|Yes&lt;br /&gt;
|Format: alphanumeric (no [[Special Characters]])&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Home Page&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |cln&lt;br /&gt;
|Cumulative time spent viewing in seconds&lt;br /&gt;
|Yes if no position array&lt;br /&gt;
|Format: int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;300&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7149</id>
		<title>Digital Measurement SEI Static Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7149"/>
		<updated>2024-12-13T22:40:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
This document describes the log file exposures, to be used in conjunction with:&lt;br /&gt;
*[[Digital Measurement Content Audit Beacon]]&lt;br /&gt;
*[[Digital Measurement SEI Content Asset Metadata]]&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for an asset&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |section&lt;br /&gt;
|section of each site (e.g. section value should be first level in page URL: website.com/section). Limit to 25 unique values&lt;br /&gt;
|Yes&lt;br /&gt;
|Format: alphanumeric (no [[Special Characters]])&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Home Page&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |cln&lt;br /&gt;
|Cumulative time spent viewing in seconds&lt;br /&gt;
|Yes if no position array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=7148</id>
		<title>Digital Measurement SEI Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=7148"/>
		<updated>2024-12-13T18:28:46Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content measurement products.&lt;br /&gt;
&lt;br /&gt;
This document describes the log file exposures, to be used in conjunction with [[Digital Measurement SEI Content Asset Metadata]] and [[Digital Measurement Content Audit Beacon]] to enable measurement.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2cf24dba5fb0a30e26e83b2ab9…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_load_flag&lt;br /&gt;
|linear or dynamic ad load&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Default / Unknown &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = linear ad load&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = dynamic ad load&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_support_flag&lt;br /&gt;
|Intended method of monetizing the content&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = (no ads),&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = (content is supported by ads)&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;quot; if content ad support was intended but did not occur&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|adpod&lt;br /&gt;
|AdPod sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment for each AdPod. If the same AdPod is played out twice (due to rewind), still increment the AdPod sequence to reflect the sequence the AdPods are played.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adposition&lt;br /&gt;
|Ad sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment each time a new Ad is encountered. If the same Ad is played out twice (due to rewind), still increment the Ad sequence to reflect the sequence the Ads are played&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adid&lt;br /&gt;
| The unique identifier for this Ad&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
In-house AdId, Industry AdID, AdNetwork ID or DAR placement ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|isdarid&lt;br /&gt;
|Is the AdId being passed a Nielsen DAR placement ID&lt;br /&gt;
|Required if AdID&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = is NOT DAR ID;&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = is a DAR ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adstart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|adend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDgD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=7147</id>
		<title>Digital Measurement SEI Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=7147"/>
		<updated>2024-12-13T18:28:27Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
This document describes the log file exposures, to be used in conjunction with [[Digital Measurement SEI Content Asset Metadata]] and [[Digital Measurement Content Audit Beacon]] to enable measurement.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2cf24dba5fb0a30e26e83b2ab9…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_load_flag&lt;br /&gt;
|linear or dynamic ad load&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Default / Unknown &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = linear ad load&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = dynamic ad load&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_support_flag&lt;br /&gt;
|Intended method of monetizing the content&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = (no ads),&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = (content is supported by ads)&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;quot; if content ad support was intended but did not occur&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|adpod&lt;br /&gt;
|AdPod sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment for each AdPod. If the same AdPod is played out twice (due to rewind), still increment the AdPod sequence to reflect the sequence the AdPods are played.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adposition&lt;br /&gt;
|Ad sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment each time a new Ad is encountered. If the same Ad is played out twice (due to rewind), still increment the Ad sequence to reflect the sequence the Ads are played&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adid&lt;br /&gt;
| The unique identifier for this Ad&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
In-house AdId, Industry AdID, AdNetwork ID or DAR placement ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|isdarid&lt;br /&gt;
|Is the AdId being passed a Nielsen DAR placement ID&lt;br /&gt;
|Required if AdID&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = is NOT DAR ID;&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = is a DAR ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adstart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|adend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDgD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7120</id>
		<title>Digital Measurement SEI Ad Exposure</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=7120"/>
		<updated>2024-11-20T16:59:25Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Manifest File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Ad Ratings}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This document outlines the required specification for facilitating Nielsen ONE advertising measurement, Digital Ad Ratings (DAR) measurement, Ad Effectiveness (MTA, Lift, etc.), and Activation products leveraging the Single Endpoint integration (SEI). Integration specifications for other Nielsen products (DCR, DTVR, etc.) via SEI are available separately.&lt;br /&gt;
&lt;br /&gt;
The Single Endpoint integration contains two components:&lt;br /&gt;
&lt;br /&gt;
# '''Exposure File'''- the specifications of which are described in this document for the transmission to Nielsen with event level data shared via a Server-to-Server (S2S) method. This S2S file transfer supplies event data and related campaign, study, and user metadata required for facilitating measurement.&lt;br /&gt;
# '''Audit Beacon'''- (implementation details available here: [[Digital Measurement Ads Audit Beacon]]) are HTTPS requests that emanate from the end-user device at a minimum of once per Session (uninterrupted user experience with gaps shorter than 30 minutes, or as mutually agreed upon). The Audit Ping provides Nielsen the ability to 1) validate traffic volume 2) provide a signal that Nielsen meters can detect for participating Nielsen panelists.&lt;br /&gt;
&lt;br /&gt;
=== Ad Measurement Considerations ===&lt;br /&gt;
Nielsen ad campaign setup is required using the '''Campaign Management Interface (CMI)''' tool or '''Tagging API''' for each campaign where Nielsen reporting is expected - this applies to new or current Nielsen clients transitioning from standard client-device-fired pixel tags to Single Endpoint style.&lt;br /&gt;
&lt;br /&gt;
Nielsen ad pixel tags should not directly fire for any exposures already included in the Exposure File after the testing period. Third-party Nielsen pixel tags should be intercepted, suppressed, and included in a server file transfer with all associated information. &lt;br /&gt;
&lt;br /&gt;
The Audit Ping is required for facilitating MRC Accredited measurement.&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-&amp;lt;'''env'''&amp;gt;/&amp;lt;'''filetype'''&amp;gt;/&amp;lt;'''split'''&amp;gt;/'''yyyy'''/'''mm'''/'''dd'''/'''hh'''/&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|“test” or “prod”&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.[parquet|json]&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty '''_SUCCESS''' file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in json format that implements the [https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD_command_examples.html#unload-examples-manifest-verbose AWS unload manifest file] format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt; &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 55&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Require'''&lt;br /&gt;
|'''Specified'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt; MRC = 1&amp;lt;/code&amp;gt; &lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt; &lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
'''Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC):'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval.For example files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|'''Required'''&lt;br /&gt;
|'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;70fa265f-5d49-4af7-ba9e-5e9da416bf78&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad&lt;br /&gt;
|Array that contains advertisement-related parameters indented below&lt;br /&gt;
|Required&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;dar_url&amp;quot;:&amp;quot;http://secure-gl.imr...&amp;quot;,&lt;br /&gt;
      &amp;quot;publisher_name&amp;quot;:&amp;quot;Publisher 123&amp;quot;,&lt;br /&gt;
      ...&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|dar_url&lt;br /&gt;
|The DAR url for the specific Nielsen campaign to be tracked. In cases of 3rd party DAR urls, this url should be intercepted and unaltered by the publisher/provider&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;http://secure-gl.imrworldcwide.com/cgi-bin/m?ca=nlsn1234&amp;amp;cr=678&amp;amp;ce=abc&amp;amp;pc=12345&amp;amp;ci=nlsnci123&amp;amp;am=1&amp;amp;at=view&amp;amp;rt=banner&amp;amp;st=image&amp;amp;r=12345&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_name&lt;br /&gt;
|Name of the publisher where the ad or content is being served.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Publisher 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|publisher_user_id&lt;br /&gt;
|Publisher-specific (first party) user ID (should remain persistent).&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;ed36968977606872e4312943c218568123786342&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_name&lt;br /&gt;
|Name of the provider supplying the data to Nielsen. &lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Provider 123&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|For CTV (only for provider onboarding)&lt;br /&gt;
|&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;A769C2B-3CBD-5784-852F-C57875CC9D91A&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|gracenote_id&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: 14 character string. Normally leading with 2 alpha characters ('EP', 'MV', 'SH' or 'SP'), followed by 12 numbers.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|program_genre&lt;br /&gt;
|Original broadcast time of content (if applicable) in Unix epoch timestamp format&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| }&lt;br /&gt;
|original_airtime&lt;br /&gt;
|Gracenote TMS ID (If available) should be passed for all telecasted content.&lt;br /&gt;
|Required for CTV&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;1531337551&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |dma&lt;br /&gt;
|Designated Market Area where viewing occurred&lt;br /&gt;
|Yes&lt;br /&gt;
|&amp;lt;code&amp;gt;501&amp;lt;code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes, if available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |is_device_id_hashed&lt;br /&gt;
|If device_id is SHA-256 hashed&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = hashed&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = else&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;671638d17df92ac6e46e3f00ad0e78f09116ca29128e93dcb53ff340abdeb2c2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDGD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes, or alternatives below&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;172.217.22.14&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
|ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Preferred; required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=7118</id>
		<title>Digital Measurement SEI Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=7118"/>
		<updated>2024-11-18T15:27:29Z</updated>

		<summary type="html">&lt;p&gt;Admin: {&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2cf24dba5fb0a30e26e83b2ab9…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_load_flag&lt;br /&gt;
|linear or dynamic ad load&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Default / Unknown &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = linear ad load&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = dynamic ad load&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_support_flag&lt;br /&gt;
|Intended method of monetizing the content&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = (no ads),&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = (content is supported by ads)&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;quot; if content ad support was intended but did not occur&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|adpod&lt;br /&gt;
|AdPod sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment for each AdPod. If the same AdPod is played out twice (due to rewind), still increment the AdPod sequence to reflect the sequence the AdPods are played.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adposition&lt;br /&gt;
|Ad sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment each time a new Ad is encountered. If the same Ad is played out twice (due to rewind), still increment the Ad sequence to reflect the sequence the Ads are played&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adid&lt;br /&gt;
| The unique identifier for this Ad&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
In-house AdId, Industry AdID, AdNetwork ID or DAR placement ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|isdarid&lt;br /&gt;
|Is the AdId being passed a Nielsen DAR placement ID&lt;br /&gt;
|Required if AdID&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = is NOT DAR ID;&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = is a DAR ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adstart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|adend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDgD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=MediaWiki:Common.css&amp;diff=7117</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=MediaWiki:Common.css&amp;diff=7117"/>
		<updated>2024-11-18T15:18:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#footer-right-icons {&lt;br /&gt;
    visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: 'Inter';&lt;br /&gt;
	src: url(https://eng-client-portal-npd.nonprod.digitalengsdk.com/w/skins/foreground/assets/fonts/Inter-VariableFont_slnt,wght.ttf) format(&amp;quot;opentype&amp;quot;),&lt;br /&gt;
		url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&amp;amp;display=swap);&lt;br /&gt;
	font-feature-settings: &amp;quot;zero&amp;quot;; &lt;br /&gt;
	font-variant-numeric: slashed-zero;&lt;br /&gt;
	font-display: swap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: 'Fira Code';&lt;br /&gt;
	src:  url(https://eng-client-portal-npd.nonprod.digitalengsdk.com/w/skins/foreground/assets/fonts/FiraCode-VariableFont_wght.ttf) format(&amp;quot;opentype&amp;quot;),&lt;br /&gt;
		url(https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&amp;amp;display=swap);&lt;br /&gt;
    font-variant-numeric: slashed-zero;&lt;br /&gt;
	font-feature-settings: &amp;quot;zero&amp;quot;;&lt;br /&gt;
	font-display: swap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
  background: #FFFFFF;&lt;br /&gt;
  font-family: 'Inter', sans-serif;&lt;br /&gt;
  -webkit-text-size-adjust: 100%;&lt;br /&gt;
  -ms-text-size-adjust: 100%;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  tab-size: 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
  height: auto !important;&lt;br /&gt;
  font-family: 'Inter', sans-serif !important;&lt;br /&gt;
  color: #111218;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix so &amp;lt;tt&amp;gt;, &amp;lt;code&amp;gt;, and &amp;lt;pre&amp;gt; display in a suitable size in firefox, chrome, etc */&lt;br /&gt;
tt, code, pre  { &lt;br /&gt;
	font-size: 0.85rem;&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
  	/*display: block;*/&lt;br /&gt;
	margin: 2px 4px;&lt;br /&gt;
	white-space: normal;&lt;br /&gt;
	overflow-wrap: anywhere;&lt;br /&gt;
	/*padding: 8px 12px;*/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
blockquote {&lt;br /&gt;
	margin: 1rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
em, i {&lt;br /&gt;
	font-family: 'Inter', sans-serif;&lt;br /&gt;
	font-style: oblique 14deg;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p+p {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.center {&lt;br /&gt;
  text-align: center !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.row {&lt;br /&gt;
    display: flex;&lt;br /&gt;
    flex-direction: row;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.row { &lt;br /&gt;
	width: 100%; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 40.0625em) /* small screens (up to 641px) */ { &lt;br /&gt;
	div.row .row {	&lt;br /&gt;
		flex-wrap: wrap;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	div.large-6.columns {&lt;br /&gt;
		flex-wrap: wrap;&lt;br /&gt;
		width: auto;	&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#breadcrumb { &lt;br /&gt;
		font-size: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
	#bannertext {&lt;br /&gt;
		font-size: 1.2rem !important;&lt;br /&gt;
		margin: 1rem !important;&lt;br /&gt;
		line-height: 1.2065em;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (min-width: 40.0625em) and (max-width: 64.0625em) /* large mobile devices &amp;amp; tablets (640px) to laptops (1025px) */ { &lt;br /&gt;
	.row {&lt;br /&gt;
		max-width: 80%; }&lt;br /&gt;
	&lt;br /&gt;
	div.large-6.columns {	&lt;br /&gt;
		max-width: 23%;&lt;br /&gt;
		margin: 5px !important;&lt;br /&gt;
	}&lt;br /&gt;
    &lt;br /&gt;
	.large-6.columns .iconText, .large-6.columns .iconText a {&lt;br /&gt;
		font-size: 0.85em !important;&lt;br /&gt;
		height: 30px !important;&lt;br /&gt;
		line-height: 0.875rem;	} &lt;br /&gt;
&lt;br /&gt;
	.iconImage { &lt;br /&gt;
		padding: 1em !important; }&lt;br /&gt;
	&lt;br /&gt;
	#breadcrumb {    &lt;br /&gt;
		font-size: 1rem !important;	}&lt;br /&gt;
		&lt;br /&gt;
	#bannertext {&lt;br /&gt;
		font-size: 1.3rem !important;&lt;br /&gt;
		margin: 1rem 2rem 1rem 2rem !important;	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (min-width: 64.0625em) and (max-width: 90.0625em) /* laptop (1024px) to large monitor (1441px) */ { &lt;br /&gt;
	.row {&lt;br /&gt;
		max-width: 70%; }&lt;br /&gt;
&lt;br /&gt;
	div.large-6.columns { &lt;br /&gt;
		font-size: smaller;	}&lt;br /&gt;
		&lt;br /&gt;
	#bannertext {&lt;br /&gt;
    	font-size: 1.3rem !important;&lt;br /&gt;
    	margin: 1rem 3rem 1rem 3rem !important;	}&lt;br /&gt;
		&lt;br /&gt;
	#breadcrumb {    &lt;br /&gt;
		font-size: 1rem !important;    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (min-width: 64.0625em) /* screens wider than 1440px */ { &lt;br /&gt;
	div.large-6.columns {&lt;br /&gt;
    	width: 23%; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (min-width: 90.0625em) and (max-width: 160.0625em) /* large monitor (1441px) to 4K screen (2561px) */ { &lt;br /&gt;
	.row {&lt;br /&gt;
		max-width: 65%; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (min-width: 160.0625em) /* screens wider than 2560px */ { &lt;br /&gt;
	.row {&lt;br /&gt;
		max-width: 50%; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Main landing page */&lt;br /&gt;
&lt;br /&gt;
div.small-4.large-4.columns {&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    background: #F1F2F3;&lt;br /&gt;
	border-radius: 12px;&lt;br /&gt;
    display: flex;&lt;br /&gt;
    flex-direction: column;&lt;br /&gt;
    align-items: center;&lt;br /&gt;
    padding: 32px;&lt;br /&gt;
    margin: 10px;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.small-4.large-4.columns .iconText, .small-4.large-4.columns .iconText a {&lt;br /&gt;
	width: 150px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* separate LOB landing pages */&lt;br /&gt;
&lt;br /&gt;
div.large-6.columns {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
    display: flex;&lt;br /&gt;
    flex-direction: column;&lt;br /&gt;
    flex-wrap: wrap;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    align-items: stretch;&lt;br /&gt;
    align-content: center;&lt;br /&gt;
    background: #F1F2F3;&lt;br /&gt;
    border-radius: 12px;&lt;br /&gt;
    padding: 10px 20px 30px 20px;&lt;br /&gt;
    margin: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.iconImage {&lt;br /&gt;
  margin: auto;&lt;br /&gt;
  padding: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.iconText, .iconText a {&lt;br /&gt;
	font-size: 1rem;&lt;br /&gt;
	font-family: 'Inter', sans-serif !important;&lt;br /&gt;
	font-weight: 600;&lt;br /&gt;
	text-transform: capitalize;&lt;br /&gt;
	background: #6A46FE;&lt;br /&gt;
	border: 2px solid #6A46FE;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	color: #ffffff;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	justify-content: center;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	padding: 0.3em;&lt;br /&gt;
	gap: 4px;&lt;br /&gt;
	width: auto;&lt;br /&gt;
	height: 48px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* TABLE OF CONTENTS */&lt;br /&gt;
&lt;br /&gt;
#toc.toc {&lt;br /&gt;
	position: fixed;&lt;br /&gt;
	height: auto;&lt;br /&gt;
	width: auto;&lt;br /&gt;
	max-width: 280px;&lt;br /&gt;
	max-height: 100dvh;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	left: 0;&lt;br /&gt;
	top: 55px;&lt;br /&gt;
	z-index: 1000;&lt;br /&gt;
	background-color: rgba(249, 249, 249, 0.95);&lt;br /&gt;
	border: none;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#toc &amp;gt; ul {&lt;br /&gt;
    height: 90dvh;&lt;br /&gt;
    overflow-y: auto;&lt;br /&gt;
    scrollbar-gutter: stable;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toc .toctitle {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row-reverse;&lt;br /&gt;
	justify-content: flex-end;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	height: 35px;&lt;br /&gt;
	width: auto;&lt;br /&gt;
	flex-wrap: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toctogglespan .toctogglelabel {&lt;br /&gt;
	margin: 6px;&lt;br /&gt;
	float: left;&lt;br /&gt;
	display: block;&lt;br /&gt;
	height: auto;&lt;br /&gt;
	width: auto;&lt;br /&gt;
	content: url(https://mywikis-wiki-media.s3.us-central-1.wasabisys.com/nielsen/hamburgersmall.png);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toc .toctitle h2 {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	width: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#toc ul, .toc ul {&lt;br /&gt;
	font-size: 0.75rem;&lt;br /&gt;
	line-height: 1rem;&lt;br /&gt;
	margin-right: 0;&lt;br /&gt;
	margin-left: 2px;&lt;br /&gt;
	padding-block: 6px;&lt;br /&gt;
	padding-inline-start: 10px;&lt;br /&gt;
	padding-inline-end: 2px;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
#toc li, .toc li &amp;gt; a {&lt;br /&gt;
	font-size: 0.75rem;&lt;br /&gt;
	line-height: 0.9rem;&lt;br /&gt;
	padding-block:3px;&lt;br /&gt;
	color: #111218;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toc li:hover &amp;gt; a:hover { &lt;br /&gt;
	color: #6A46FE;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.tocnumber {	&lt;br /&gt;
	display: none; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#toctogglecheckbox {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toctogglecheckbox, &lt;br /&gt;
:not(:checked) &amp;gt; .toctogglecheckbox {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
	margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &lt;br /&gt;
:default(.toctogglecheckbox:checked) ~ ul {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:where(.toctogglecheckbox:checked) ~ ul {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
.toctogglecheckbox:not(:checked) + .toctitle .toctogglelabel:after {&lt;br /&gt;
    content: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.toctogglecheckbox:checked + .toctitle .toctogglelabel:after {&lt;br /&gt;
	content: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:not(:checked) &amp;gt; .toctogglespan:before { &lt;br /&gt;
	content: none !important; }&lt;br /&gt;
	&lt;br /&gt;
:not(:checked) &amp;gt; .toctogglespan:after { &lt;br /&gt;
	content: none !important; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* TABLE FORMATTING */&lt;br /&gt;
&lt;br /&gt;
.smallIcon {&lt;br /&gt;
  margin-right: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table tr th {&lt;br /&gt;
  padding: 0.5625em 0.5625em;&lt;br /&gt;
  font-size: 0.875em !important;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table tr td {&lt;br /&gt;
  padding: 0.5625em 0.5625em;&lt;br /&gt;
  font-size: 0.875em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Use the name altertable as the class when you want to alternate row colors - La Mar */&lt;br /&gt;
table.altertable tr:nth-child(even) {&lt;br /&gt;
  background-color: #d0f6f8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* LIST FORMATTING */&lt;br /&gt;
&lt;br /&gt;
.mw-content-ltr ul {&lt;br /&gt;
	margin: 0.25em 0.5em 0.25em 2em;&lt;br /&gt;
	font-size: inherit; /* so that lists within a table are the correct font size */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* TOP BAR FORMATTING */&lt;br /&gt;
&lt;br /&gt;
#navwrapper {&lt;br /&gt;
  top: 0;&lt;br /&gt;
  background: rgb(0,33,66,0.9) !important;&lt;br /&gt;
  /* background-color: #002142; */&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-bottom: -6px;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: row;&lt;br /&gt;
  align-content: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  flex-wrap: nowrap;&lt;br /&gt;
  position: sticky;&lt;br /&gt;
  z-index: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
nav.top-bar, .top-bar {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
  height: 55px;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: row;&lt;br /&gt;
  justify-content: space-around;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
div.title-name {&lt;br /&gt;
	font-family: 'Inter', sans-serif !important;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	text-transform: capitalize !important;&lt;br /&gt;
	color: #ffffff !important;&lt;br /&gt;
	font-size: 1.0875rem !important;&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	z-index: 901;&lt;br /&gt;
	margin: 0 0.5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (min-width: 40em) /* top bar adjustments for screens 640px and up */ {&lt;br /&gt;
	.top-bar:before, .top-bar:after {&lt;br /&gt;
		content: none; &lt;br /&gt;
    	display: table; &lt;br /&gt;
    	margin-inline-start: auto;&lt;br /&gt;
    	margin-inline-end: auto;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar .title-area {&lt;br /&gt;
		width: 18rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar-section .dropdown {&lt;br /&gt;
		top: 45px;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar-section .has-dropdown.moved &amp;gt; .dropdown a, .top-bar-section .has-dropdown.moved &amp;gt; .dropdown {&lt;br /&gt;
		top: 45px;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media only screen and (max-width: 40em) /* top bar, top bar expanded, search form, and personal tools dropdown adjustments for screens up to 640px */ {&lt;br /&gt;
	.top-bar .title-area {&lt;br /&gt;
		width: inherit;	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar-section {&lt;br /&gt;
		right: 0 !important;&lt;br /&gt;
		width: inherit;&lt;br /&gt;
		position: static;&lt;br /&gt;
		transition: none;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar.expanded {&lt;br /&gt;
		overflow: visible;	}&lt;br /&gt;
		&lt;br /&gt;
	.top-bar.expanded .top-bar-section .has-dropdown:not(.moved) &amp;gt; ul {&lt;br /&gt;
		height: 0;&lt;br /&gt;
		width: 0;&lt;br /&gt;
		padding: 0;&lt;br /&gt;
		margin: 0;&lt;br /&gt;
		position: absolute !important;&lt;br /&gt;
	}&lt;br /&gt;
		&lt;br /&gt;
	.top-bar-section .dropdown li a.parent-link,&lt;br /&gt;
	.top-bar-section .has-dropdown li a.parent-link {&lt;br /&gt;
		height: 0px;&lt;br /&gt;
		margin: 0;&lt;br /&gt;
		padding: 0;&lt;br /&gt;
		width: 0;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar.expanded .top-bar-section .dropdown,&lt;br /&gt;
	.top-bar.expanded .top-bar-section .has-dropdown.moved &amp;gt; .dropdown,  &lt;br /&gt;
	.top-bar.expanded .top-bar-section .has-dropdown.moved &amp;gt; .dropdown a {&lt;br /&gt;
		color: #ffffff;&lt;br /&gt;
		width: 18em;&lt;br /&gt;
		font-family: 'Inter',sans-serif;&lt;br /&gt;
		line-height: 1.5rem;&lt;br /&gt;
		background: inherit;&lt;br /&gt;
		margin: auto;&lt;br /&gt;
		float: right;&lt;br /&gt;
		clear: both;&lt;br /&gt;
		position: static !important;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar-section ul li.active &amp;gt; a a:not(.button), .top-bar-section ul li ul.dropdown li &amp;gt; a {&lt;br /&gt;
		background: rgb(0, 33, 66, 0.9) !important;	}&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	#personal-tools-dropdown li.title.back.js-generated {&lt;br /&gt;
		background: url(https://eng-client-portal-npd.nonprod.digitalengsdk.com/w/images/4/43/action-icondark_mode_.png) no-repeat !important;&lt;br /&gt;
		background-size: contain !important;&lt;br /&gt;
		background-position: center;&lt;br /&gt;
		width: fit-content;&lt;br /&gt;
		float: right;&lt;br /&gt;
		z-index: 1000;&lt;br /&gt;
		position: relative;&lt;br /&gt;
		top: -20px;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	.top-bar-section .dropdown li.title h5 a {&lt;br /&gt;
		display: inline-block;&lt;br /&gt;
		font-size: 0.75rem;&lt;br /&gt;
		color: transparent;&lt;br /&gt;
		background: transparent;&lt;br /&gt;
		width: fit-content !important;&lt;br /&gt;
		float: right;&lt;br /&gt;
		padding: 0;&lt;br /&gt;
		z-index: 999;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.top-bar.expanded .top-bar-section .dropdown li.title h5, &lt;br /&gt;
	.top-bar.expanded .top-bar-section .dropdown li.title h5 a {&lt;br /&gt;
		background: transparent !important;&lt;br /&gt;
		color: transparent !important;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	ul#actions.f-dropdown.open {&lt;br /&gt;
		max-width: fit-content !important;&lt;br /&gt;
		right: 50px !important;&lt;br /&gt;
		left: auto !important;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	#toc {&lt;br /&gt;
		visibility: hidden;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar .title-area {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	flex-wrap: nowrap;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
nav.top-bar.expanded {&lt;br /&gt;
	height: auto !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar.expanded .title-area {&lt;br /&gt;
  background: inherit;&lt;br /&gt;
  width: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar .name, .top-bar .name a {&lt;br /&gt;
  color: #ffffff !important;&lt;br /&gt;
  width: inherit;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  font-size: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
img.top-bar-logo {&lt;br /&gt;
	height: auto;&lt;br /&gt;
	max-height: 20px;&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0 0 0 0.5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar .toggle-topbar.menu-icon {&lt;br /&gt;
	margin: 0 0.5rem;&lt;br /&gt;
	top: auto;&lt;br /&gt;
	right: auto;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar .toggle-topbar.menu-icon a {&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  padding: 0 0.5rem;&lt;br /&gt;
  line-height: normal;&lt;br /&gt;
  position: relative;&lt;br /&gt;
  height: 55px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.small-12.columns /* top bar search form section */ { &lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	flex-wrap: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#top-bar-right.right, #top-bar-right.right .has-form li {&lt;br /&gt;
    display: flex;&lt;br /&gt;
    flex-direction: row;&lt;br /&gt;
    flex-wrap: nowrap;&lt;br /&gt;
    justify-content: center;&lt;br /&gt;
    max-width: none;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    max-height: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li#personal-tools-dropdown {&lt;br /&gt;
  visibility: visible !important;&lt;br /&gt;
  width: inherit;&lt;br /&gt;
  max-width: 50px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li#personal-tools-dropdown .drop-icon {&lt;br /&gt;
	margin-right: 15px;&lt;br /&gt;
	font-size: 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-cactions #actions {&lt;br /&gt;
	z-index: 600;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a#actions-button {&lt;br /&gt;
	z-index: 599;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section .has-dropdown {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section .dropdown {&lt;br /&gt;
	z-index: 601;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section ul {&lt;br /&gt;
  background: inherit;&lt;br /&gt;
  width: inherit;&lt;br /&gt;
  margin: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section ul li {&lt;br /&gt;
  background: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section .has-form, .top-bar-section li a:not(.button) {&lt;br /&gt;
	 background: inherit;&lt;br /&gt;
	 font-family: 'Inter', sans-serif;&lt;br /&gt;
	 max-height: inherit;&lt;br /&gt;
	 height: auto;&lt;br /&gt;
	 width: inherit;&lt;br /&gt;
	padding: 0.25rem 0.5rem 0.25rem 0.5rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section ul li:hover:not(.has-form) &amp;gt; a, .top-bar-section li.active:not(.has-form) a:not(.button){&lt;br /&gt;
    background: inherit;&lt;br /&gt;
    color: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section ul li.active &amp;gt; a a:not(.button), .top-bar-section ul li ul.dropdown li &amp;gt; a {&lt;br /&gt;
  background: rgb(0, 33, 66, 0.9) !important;&lt;br /&gt;
  border-bottom: 0px solid;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section ul li.hover&amp;gt;a, .top-bar-section ul li ul.dropdown li.hover&amp;gt;a {&lt;br /&gt;
  background: inherit;&lt;br /&gt;
  color: transparent;&lt;br /&gt;
  border-bottom: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section&amp;gt;ul&amp;gt;.divider, .top-bar-section&amp;gt;ul&amp;gt;[role=&amp;quot;separator&amp;quot;] {&lt;br /&gt;
  border-color: -moz-use-text-color #fff;&lt;br /&gt;
  border-right: solid 0px #fff;&lt;br /&gt;
  border-left: solid 0px #fff;&lt;br /&gt;
  max-width: 5%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.top-bar-section .divider, .top-bar-section [role=&amp;quot;separator&amp;quot;] {&lt;br /&gt;
  border-bottom: solid 0px;&lt;br /&gt;
  border-top: solid 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* SEARCH - TOP BAR */&lt;br /&gt;
&lt;br /&gt;
.top-bar .button.search {&lt;br /&gt;
  margin: 4px;&lt;br /&gt;
  background: url(https://mywikis-wiki-media.s3.us-central-1.wasabisys.com/nielsen/searchwhite.png) no-repeat; &lt;br /&gt;
  color: transparent;&lt;br /&gt;
  width: 21px;&lt;br /&gt;
  border: none;&lt;br /&gt;
  background-size: contain;&lt;br /&gt;
  background-position: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input#searchInput {&lt;br /&gt;
	background: #F1F2F3;&lt;br /&gt;
	border-radius: 8px !important;&lt;br /&gt;
	border-width: 2px !important;&lt;br /&gt;
	border-color: #DDDEE4 !important;&lt;br /&gt;
	font-size: 0.75rem;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	height: 25px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input#searchInput::placeholder {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-iconElement-icon { opacity: 50%; }&lt;br /&gt;
&lt;br /&gt;
#searchInput::-webkit-input-placeholder { color: #FFFFFF; }&lt;br /&gt;
&lt;br /&gt;
#searchInput:-moz-placeholder { color: #FFFFFF; }&lt;br /&gt;
&lt;br /&gt;
#searchInput::-moz-placeholder { color: #FFFFFF; }&lt;br /&gt;
&lt;br /&gt;
#searchInput:-ms-input-placeholder { color: #FFFFFF; }&lt;br /&gt;
&lt;br /&gt;
/* Create page in Search */&lt;br /&gt;
.mw-search-createlink { display: none; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* SEARCH - PAGE */&lt;br /&gt;
&lt;br /&gt;
div.oo-ui-fieldLayout-field {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
	margin: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-actionFieldLayout-input, .oo-ui-actionFieldLayout-button {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	margin: 10px;&lt;br /&gt;
	max-height: 38px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-actionFieldLayout .oo-ui-actionFieldLayout-input .oo-ui-widget.oo-ui-textInputWidget &amp;gt; .oo-ui-inputWidget-input {&lt;br /&gt;
	background: #F1F2F3;&lt;br /&gt;
	border: 2px solid #DDDEE4;&lt;br /&gt;
	border-radius: 8px;&lt;br /&gt;
	margin-right: 10px;&lt;br /&gt;
	position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-actionFieldLayout-input {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-actionFieldLayout-button {&lt;br /&gt;
 	width: 20%;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
.oo-ui-textInputWidget {&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-widget-searchInputWidget {&lt;br /&gt;
	display: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#mw-search-top-table div.oo-ui-actionFieldLayout {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* BUTTONS */&lt;br /&gt;
&lt;br /&gt;
button,&lt;br /&gt;
.button,&lt;br /&gt;
.multipleTemplateAdder {&lt;br /&gt;
  background-color: #6A46FE;&lt;br /&gt;
  border: 2px solid #6A46FE;&lt;br /&gt;
  border-radius: 32px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
button:hover,&lt;br /&gt;
button:focus,&lt;br /&gt;
.button:hover,&lt;br /&gt;
.button:focus {&lt;br /&gt;
  background-color: #4B31AF;&lt;br /&gt;
  border: 2px solid #4B31AF;&lt;br /&gt;
  border-radius: 32px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
button:disabled,&lt;br /&gt;
.button:disabled {&lt;br /&gt;
	background-color: #6A46FE;&lt;br /&gt;
	border: 2px solid #6A46FE;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	opacity: 0.32;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive &amp;gt; .oo-ui-buttonElement-button,&lt;br /&gt;
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive &amp;gt; .oo-ui-buttonElement-button:active { &lt;br /&gt;
	border: 2px solid #6A46FE;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	background-color: #6A46FE;&lt;br /&gt;
	color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive &amp;gt; .oo-ui-buttonElement-button:hover { &lt;br /&gt;
	 background-color: #4B31AF;&lt;br /&gt;
	border: 2px solid #4B31AF;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive &amp;gt; .oo-ui-buttonElement-button:focus { &lt;br /&gt;
	background-color: #4B31AF;&lt;br /&gt;
	border: 2px solid #4B31AF;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	box-shadow: 0px 0px 0px 6px rgba(149, 140, 248, 0.16);&lt;br /&gt;
	color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input#wpPreview {&lt;br /&gt;
	border: 2px solid #6A46FE;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	background-color: #6A46FE;&lt;br /&gt;
	color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input#wpDiff {&lt;br /&gt;
	border: 2px solid #DDDEE4;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	background-color: #F1F2F3;&lt;br /&gt;
	color: #111218;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
button.secondary,&lt;br /&gt;
button.secondary:hover,&lt;br /&gt;
button.secondary:focus,&lt;br /&gt;
.button.secondary,&lt;br /&gt;
.button.secondary:hover,&lt;br /&gt;
.button.secondary:focus {&lt;br /&gt;
	background: #363945;&lt;br /&gt;
	border: 2px solid #363945;&lt;br /&gt;
	border-radius: 32px;&lt;br /&gt;
	color: #ffffff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Back to Top button - use TopButton template */&lt;br /&gt;
&lt;br /&gt;
span#Topbutton, #Topbutton a {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background-color: #6a46fec4;&lt;br /&gt;
	width: auto;&lt;br /&gt;
	height: auto;&lt;br /&gt;
	max-width: 50px;&lt;br /&gt;
	max-height: 50px;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	/* padding: 10px; */&lt;br /&gt;
	border-radius: 8px;&lt;br /&gt;
	position: fixed;&lt;br /&gt;
	bottom: 40px;&lt;br /&gt;
	right: 30px;&lt;br /&gt;
	/* transition: background-color .3s,opacity .5s,visibility .5s; */&lt;br /&gt;
	opacity: 1;&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
	z-index: 1000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Topbutton a {&lt;br /&gt;
	content: url(https://eng-client-portal-npd.nonprod.digitalengsdk.com/w/images/6/67/caretwhite.png);&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Topbutton a:hover {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	background-color: #4B31AF&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#Topbutton:active {&lt;br /&gt;
	background-color: #6A46FEc4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* LINK FORMATTING */&lt;br /&gt;
&lt;br /&gt;
a {&lt;br /&gt;
  color: #6A46FE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover,&lt;br /&gt;
a:focus {&lt;br /&gt;
  color: #4B31AF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* a.new { color: #ba0000; } */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.label {&lt;br /&gt;
  background-color: transparent;&lt;br /&gt;
  font-size: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &amp;quot;Special&amp;quot; label */&lt;br /&gt;
h4.namespace.label {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#bannertext a {&lt;br /&gt;
	color: #FFFFFF !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* TEXT FORMATTING */&lt;br /&gt;
&lt;br /&gt;
.mw-headline {&lt;br /&gt;
  font-family: 'Inter', sans-serif !important;&lt;br /&gt;
  color: #111218; /* removed !important ... need to check how it behaves */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1 {&lt;br /&gt;
	font-family: 'Inter', sans-serif;&lt;br /&gt;
	font-weight: 800;&lt;br /&gt;
	font-size: 2rem;&lt;br /&gt;
	letter-spacing: -0.25px;&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h2 {&lt;br /&gt;
  font-family: 'Inter', sans-serif !important;&lt;br /&gt;
  color: #111218;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  font-size: 1.8rem;&lt;br /&gt;
  letter-spacing: -0.25px;&lt;br /&gt;
  margin-top: 1.5em;&lt;br /&gt;
  margin-bottom: 0.83em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h3 {&lt;br /&gt;
	font-family: 'Inter', sans-serif;&lt;br /&gt;
	font-size: 1.65rem;&lt;br /&gt;
	font-weight: 800;&lt;br /&gt;
	color: #002142 !important;&lt;br /&gt;
	letter-spacing: -0.33px;&lt;br /&gt;
	line-height: 1.6em;&lt;br /&gt;
	margin-top: 1.5em;&lt;br /&gt;
	margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h4 {&lt;br /&gt;
	font-family: 'Inter', sans-serif;&lt;br /&gt;
	font-size: 1.33rem;&lt;br /&gt;
	font-weight: 600;&lt;br /&gt;
	letter-spacing: -0.25px;&lt;br /&gt;
	margin-top: 1.75em;&lt;br /&gt;
	margin-bottom: 0.4em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h5 {&lt;br /&gt;
	font-family: 'Inter', sans-serif;&lt;br /&gt;
	font-size: 1.33rem;&lt;br /&gt;
	font-weight: 500;&lt;br /&gt;
	line-height: 1.6em;&lt;br /&gt;
	margin-top: 1.75em;&lt;br /&gt;
	margin-bottom: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h6 {&lt;br /&gt;
	font-family: 'Inter', sans-serif;&lt;br /&gt;
	font-size: 1.15rem;&lt;br /&gt;
	font-weight: 600;&lt;br /&gt;
	line-height: 1.6em;&lt;br /&gt;
	margin-top: 1.5em;&lt;br /&gt;
	margin-bottom: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1#firstHeading {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	height: 0px;&lt;br /&gt;
	margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* what is this for? */&lt;br /&gt;
h2#firstHeading.title {&lt;br /&gt;
  font-family: 'Inter', sans-serif;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  font-size: 1rem;&lt;br /&gt;
  letter-spacing: -0.25px;&lt;br /&gt;
  text-transform: capitalize;&lt;br /&gt;
  margin-bottom: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h2#filehistory {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h2#metadata {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h3#tagline {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0px;&lt;br /&gt;
  margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h5#siteSub {&lt;br /&gt;
	visibility: hidden;&lt;br /&gt;
	height: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Category links */&lt;br /&gt;
&lt;br /&gt;
div #catlinks.catlinks {&lt;br /&gt;
  margin-top: 2.5em !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#catlinks {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ul#filetoc {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div#mw-imagepage-section-filehistory {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.mw-redirectedfrom {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.mw-imagepage-section-metadata {&lt;br /&gt;
  visibility: hidden;&lt;br /&gt;
  height: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-ui-vform {&lt;br /&gt;
  margin-left: auto;&lt;br /&gt;
  margin-right: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer-left, ul#footer-left {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  font-size: 80%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
li#footer-about {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#footer-lastmod {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
footer.row {&lt;br /&gt;
  margin-top: 2.5em;&lt;br /&gt;
  margin-bottom: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
div#mw-customtoggle-myDivision.mw-customtoggle-myDivision {&lt;br /&gt;
	display: flex !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-collapsible-toggle.mw-collapsible-toggle-default.mw-collapsible-toggle-expanded {&lt;br /&gt;
	background: url(https://eng-client-portal-npd.nonprod.digitalengsdk.com/w/images/9/9c/collapse.png) no-repeat;&lt;br /&gt;
	background-size: contain;&lt;br /&gt;
	width: 35px;&lt;br /&gt;
	height: 35px;&lt;br /&gt;
	float: none !important;&lt;br /&gt;
	display: inline-flex;&lt;br /&gt;
	float: none !important;&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
  .mw-collapsible-toggle.mw-collapsible-toggle-collapsed {&lt;br /&gt;
	display: inline-flex;&lt;br /&gt;
	margin: 4px;&lt;br /&gt;
	background: url(https://eng-client-portal-npd.nonprod.digitalengsdk.com/w/images/3/32/expand.png) no-repeat;&lt;br /&gt;
	background-size: contain;&lt;br /&gt;
	width: 35px;&lt;br /&gt;
	height: 35px;&lt;br /&gt;
	float: none !important;&lt;br /&gt;
	flex-wrap: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.mw-collapsible-text {&lt;br /&gt;
	color: transparent;&lt;br /&gt;
	width: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.mw-collapsible-toggle-default:before {&lt;br /&gt;
	content: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
span.mw-collapsible-toggle-default:after {&lt;br /&gt;
	content: none !important;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7095</id>
		<title>Digital Measurement SEI Static Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7095"/>
		<updated>2024-10-21T21:29:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
This document describes the log file exposures, to be used in conjunction with:&lt;br /&gt;
*[[Digital Measurement Content Audit Beacon]]&lt;br /&gt;
*[[Digital Measurement SEI Content Asset Metadata]]&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for an asset&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |cln&lt;br /&gt;
|Cumulative time spent viewing in seconds&lt;br /&gt;
|Yes if no position array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7094</id>
		<title>Digital Measurement SEI Static Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7094"/>
		<updated>2024-10-21T20:18:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for an asset&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes if no &amp;quot;cln&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |cln&lt;br /&gt;
|Cumulative time spent viewing in seconds&lt;br /&gt;
|Yes if no position array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7093</id>
		<title>Digital Measurement SEI Static Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Static_Content_Viewing&amp;diff=7093"/>
		<updated>2024-10-21T20:11:13Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.  = Delivery Specifications = Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression;&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |provider_user_id&lt;br /&gt;
|Provider-specific user ID (must remain persistent indefinitely)&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2cf24dba5fb0a30e26e83b2ab9…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_load_flag&lt;br /&gt;
|linear or dynamic ad load&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Default / Unknown &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = linear ad load&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = dynamic ad load&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_support_flag&lt;br /&gt;
|Intended method of monetizing the content&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = (no ads),&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = (content is supported by ads)&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;quot; if content ad support was intended but did not occur&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|adpod&lt;br /&gt;
|AdPod sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment for each AdPod. If the same AdPod is played out twice (due to rewind), still increment the AdPod sequence to reflect the sequence the AdPods are played.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adposition&lt;br /&gt;
|Ad sequence number.&lt;br /&gt;
&lt;br /&gt;
Increment each time a new Ad is encountered. If the same Ad is played out twice (due to rewind), still increment the Ad sequence to reflect the sequence the Ads are played&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adid&lt;br /&gt;
| The unique identifier for this Ad&lt;br /&gt;
|No&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
In-house AdId, Industry AdID, AdNetwork ID or DAR placement ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|isdarid&lt;br /&gt;
|Is the AdId being passed a Nielsen DAR placement ID&lt;br /&gt;
|Required if AdID&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = is NOT DAR ID;&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = is a DAR ID&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|adstart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|adend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_id&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Yes,if &lt;br /&gt;
&lt;br /&gt;
available&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha256&lt;br /&gt;
|SHA-256 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Strongly Preferred&lt;br /&gt;
|&amp;lt;code&amp;gt;55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Yes, for CTV if available&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDgD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |psudo_id_sha256&lt;br /&gt;
|Hashed Device User Agent string + IP address&lt;br /&gt;
|No&lt;br /&gt;
|&amp;lt;code&amp;gt;421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Nielsen_Watermarking_Introduction&amp;diff=7003</id>
		<title>Nielsen Watermarking Introduction</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Nielsen_Watermarking_Introduction&amp;diff=7003"/>
		<updated>2024-09-11T13:08:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement S2S CR}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
[[File:Netflix_Encoding_and_ID3_Tagging.pdf|972x972px]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=7002</id>
		<title>Digital Measurement Content Relayed Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=7002"/>
		<updated>2024-09-11T13:07:42Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement S2S CR}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
The Nielsen server-to-server solution requires audit pings for the purpose of validating audience reach and video viewing duration; one start and one end for each video stream. Pings originate from the end-user device to Nielsen Collections servers. End pings execute upon cessation of playback.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Ping is executed with following convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://'''[to_be_provided]'''.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;+'''[query parameters]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Start Audit Ping carries all parameters in the table below. The End Audit Ping carries a subset of the parameters in the matrix below as denoted in the mandatory column.  &lt;br /&gt;
&lt;br /&gt;
Under normal operating circumstances, the audit ping server returns the following codes:&lt;br /&gt;
&lt;br /&gt;
* Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked&lt;br /&gt;
* 200: Ping successfully received, inspect traffic to ensure no CORS errors&lt;br /&gt;
&lt;br /&gt;
= Session &amp;amp; Stream =&lt;br /&gt;
&lt;br /&gt;
# Sessions&lt;br /&gt;
## Optionally, a new Session ID may be created when a new player is created &lt;br /&gt;
## If more than one video player exists within the same App (e.g. picture in picture) a different Session ID is required for each&lt;br /&gt;
# Streams&lt;br /&gt;
## New Stream ID is generated for each new video stream.&lt;br /&gt;
## If stream playback continues after 24 hours, then a new Stream ID should be created and a new Audit ping should be executed (Session ID may remain)&lt;br /&gt;
## Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same&lt;br /&gt;
## If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return&lt;br /&gt;
## Audit pings should be fired at the beginning and end of a stream&lt;br /&gt;
&lt;br /&gt;
= Two-part Audit Ping design requires: =&lt;br /&gt;
&lt;br /&gt;
#'''End-user-device-initiated ping''' with client-owned root domain and SessionID included in subdomain. Nielsen meters are trained to regex for a unique domain format. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://2576459933726989.darnuid.[publisher-domain].com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#'''S2S Audit Ping relay from client-server to Nielsen server''' with furnished URL parameters outlined below. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=xp3clqou0dzb1u4jq2jecoyvza&amp;amp;appid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:stdvss2saudit.png]]&lt;br /&gt;
&lt;br /&gt;
= Furnished S2S Audit Ping Proxy Parameters =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified''' &lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
|apid&lt;br /&gt;
|Server App ID assigned by Nielsen&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&lt;br /&gt;
Example: &amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;ce6c1c95-de3e-431e-b11e-77…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|pingtype&lt;br /&gt;
|Indicator for ping type: &amp;quot;start&amp;quot; or &amp;quot;end&amp;quot; audit ping&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: integer,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = Start Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Start Session&lt;br /&gt;
*&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; = End Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = End Session&lt;br /&gt;
|-&lt;br /&gt;
|product&lt;br /&gt;
|Indicates which product audit ping corresponds to&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
Example: &amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ctv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|createtm&lt;br /&gt;
|Time ping is initiated&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
'''Audit Ping Start Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=0&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577858505&amp;amp;devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping End Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=2&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577859637&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing_CR&amp;diff=7001</id>
		<title>Digital Measurement SEI Content Viewing CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing_CR&amp;diff=7001"/>
		<updated>2024-09-11T13:07:27Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement S2S CR}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression; (preferred)&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific, non-interoperable user ID (must remain persistent indefinitely); should match value provided in panel matching mechanism&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address, or truncated IP with last octet zeroed &amp;quot;.000&amp;quot;&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Nielsen_Watermarking_Introduction&amp;diff=6997</id>
		<title>Nielsen Watermarking Introduction</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Nielsen_Watermarking_Introduction&amp;diff=6997"/>
		<updated>2024-09-10T20:54:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Netflix_Encoding_and_ID3_Tagging.pdf|972x972px]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing_CR&amp;diff=6989</id>
		<title>Digital Measurement SEI Content Viewing CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing_CR&amp;diff=6989"/>
		<updated>2024-09-04T22:33:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.&lt;br /&gt;
&lt;br /&gt;
= Delivery Specifications =&lt;br /&gt;
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats. &lt;br /&gt;
&lt;br /&gt;
* All prefix labels and file names should be lowercase except for app ids. &lt;br /&gt;
* Supported format are:&lt;br /&gt;
** Text files with utf-8 encoding in JSON Lines format;&lt;br /&gt;
** Apache Parquet format with snappy compression; (preferred)&lt;br /&gt;
* All data files have extensions to indicate the file format (.json | .parquet)&lt;br /&gt;
* Data file can be partitioned into multiple parts with min size of 256MB&lt;br /&gt;
* Data can be delivered separately in multiple splits, if needed due to organizational, technical or privacy requirements. This allows to permission s3 access separately, to process data independently and to persist data partitioned, within the limits of the SEI system;&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-&amp;lt;'''partnerid'''&amp;gt;-feeds-'''&amp;lt;env&amp;gt;'''/'''&amp;lt;filetype&amp;gt;'''/'''&amp;lt;split&amp;gt;'''/'''yyyy/mm/dd/hh'''/'''&amp;lt;object&amp;gt;'''&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;prod&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|&amp;lt;code&amp;gt;exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dcr-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar-exposure&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;audio-exposure&amp;lt;/code&amp;gt;, etc., where:&lt;br /&gt;
&lt;br /&gt;
* exposure is reserved for multi-product files&lt;br /&gt;
* &amp;lt;product&amp;gt;-exposure is for single product files, where &amp;lt;product&amp;gt; is [&amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;ctvc&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt;]&lt;br /&gt;
|-&lt;br /&gt;
|split&lt;br /&gt;
|a separate data split, can be by platform (ex.: ios, browser, android, ctv), by country (us, ca, jp, etc.), by publisher, by team, etc. or “all” (if data is provided in one split).&lt;br /&gt;
|-&lt;br /&gt;
|yyyy/mm/dd/hh&lt;br /&gt;
|&lt;br /&gt;
* yyyy	- year&lt;br /&gt;
* mm	- month&lt;br /&gt;
* dd	- date padded with 0 example 01, 02,..., 31&lt;br /&gt;
* hh	- hour padded with 0 example 00, 02,..., 23&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S3 Bucket and Prefix Naming Convention ===&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;'''partnerid'''&amp;gt;_&amp;lt;'''filetype'''&amp;gt;_&amp;lt;'''intid'''&amp;gt;_&amp;lt;'''appid'''&amp;gt;_&amp;lt;'''starttime'''&amp;gt;_&amp;lt;'''endtime'''&amp;gt;.['''json'''|'''parquet''']&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Name'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|partnerid&lt;br /&gt;
|Abbreviation provided by Nielsen for each provider or publisher&lt;br /&gt;
|-&lt;br /&gt;
|filetype&lt;br /&gt;
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:&lt;br /&gt;
&lt;br /&gt;
* '''exposure''' is reserved for multi-product files&lt;br /&gt;
* '''&amp;lt;product&amp;gt;-exposure''' is for single product files, where '''&amp;lt;product&amp;gt;''' is '''[dar|dcr|dtvr|ctvc|audio]'''&lt;br /&gt;
|-&lt;br /&gt;
|initid&lt;br /&gt;
|integration id: unique identifier provided by Nielsen&lt;br /&gt;
|-&lt;br /&gt;
|appid&lt;br /&gt;
|Nielsen-provided server application identifier&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|start date and hour of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|-&lt;br /&gt;
|endtime&lt;br /&gt;
|end date and hour (not inclusive)  of the data in the file in UTC&lt;br /&gt;
&lt;br /&gt;
* Example format: yyyymmddhh&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Success File ===&lt;br /&gt;
Empty &amp;lt;code&amp;gt;'''_SUCCESS'''&amp;lt;/code&amp;gt; file should be provided to indicate that data delivery for a particular hour and split is completed (even if there is no data for that particular hour and split).&lt;br /&gt;
&lt;br /&gt;
=== Manifest File ===&lt;br /&gt;
A manifest should be provided which contains metadata related to the uploaded file(s). The manifest is a text file in .json format that implements the AWS unload manifest file format. It has the same name as the data file, but has the &amp;lt;code&amp;gt;'''_manifest'''&amp;lt;/code&amp;gt; suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;entries&amp;quot;: [&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0000_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0001_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true},&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0002_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
     {&amp;quot;url&amp;quot;:&amp;quot;s3://bucket/prefix/0003_object_00.snappy.parquet&amp;quot;, &amp;quot;mandatory&amp;quot;:true}&lt;br /&gt;
   ],&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;meta&amp;quot;: {&lt;br /&gt;
     &amp;quot;schema_version&amp;quot;: &amp;quot;S2SV1.7.0&amp;quot;,&lt;br /&gt;
     &amp;quot;accreditation_status&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
     &amp;quot;start_time&amp;quot;: &amp;quot;1710154800&amp;quot;,&lt;br /&gt;
     &amp;quot;end_time&amp;quot;: &amp;quot;1710158399&amp;quot;,&lt;br /&gt;
     &amp;quot;record_count&amp;quot;: 31337&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The manifest contains a complete list of all files provided for a given period and split, as well as a meta data (a.k.a. header) which should include the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
!'''Type'''&lt;br /&gt;
|-&lt;br /&gt;
|schema_version&lt;br /&gt;
|Schema Version&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&amp;lt;code&amp;gt;S2SV1.7.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|accreditation_status&lt;br /&gt;
|Accreditation Status&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;MRC = 1&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_start_time&lt;br /&gt;
|Data Start Time (min)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710154800&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|data_end_time&lt;br /&gt;
|Data Start Time (max)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format:32-bit unsigned int Unix time in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1710158399&amp;lt;/code&amp;gt;&lt;br /&gt;
|String&lt;br /&gt;
|-&lt;br /&gt;
|record_count&lt;br /&gt;
|Number of records in data file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: &amp;lt;code&amp;gt;31337&amp;lt;/code&amp;gt;&lt;br /&gt;
|Number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): ===&lt;br /&gt;
&amp;lt;code&amp;gt;useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0000.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0001.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0002.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_0003.json&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/acme_dtvr-exposure_a9ddf15ea054ea415718767ea6_P47C2495B-BBBA-56DE-BE99-14758F92F034_2024031111_2024031112_manifest&lt;br /&gt;
&lt;br /&gt;
useast1-nlsn-w-dig-sei-acme-feeds-prod/dar-exposure/ios/2022/05/25/11/_SUCCESS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SLA =&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 3 hours of the start of that hourly viewing file interval. For example, files from 1:00 AM to 2:00 AM must be delivered before 4 AM.&lt;br /&gt;
&lt;br /&gt;
= Accuracy of Measurement =&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing time.&lt;br /&gt;
&lt;br /&gt;
The reported content “reference” time needs to match the actual content that was played out with plus/minus 10 seconds (for clarity: start and end times can each be off by up to 10 seconds, so the combined under/over reporting for each individual viewing segment should be no greater than 20 seconds)&lt;br /&gt;
&lt;br /&gt;
== CTV, Mirroring, and Casting ==&lt;br /&gt;
For apps native to the OTT device ''(i.e. downloading and viewing a streaming app to an Apple TV)'', audit ping should fire from the OTT device, and Viewing data should reside in OTT Viewing file.&lt;br /&gt;
&lt;br /&gt;
[[File:Phone_Playback.png]]&lt;br /&gt;
&lt;br /&gt;
For mirroring, where video playback occurs on the mobile device and OTT device, only one Viewing file row is necessary where, if possible to determine, set: &amp;lt;code&amp;gt;&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;&amp;lt;/code&amp;gt; and include in respective mobile platform Viewing file. &lt;br /&gt;
&lt;br /&gt;
For a casting scenario where content is controlled via the mobile device, but displayed only on the OTT device such as an AppleTV or Chromecast, an audit ping must fire from the mobile device before the casting occurs and at the end of playback from the mobile device only. Viewing data resides in the respective mobile platform Viewing file.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
{...&lt;br /&gt;
   &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&lt;br /&gt;
   &amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&lt;br /&gt;
   &amp;quot;position&amp;quot;:[&lt;br /&gt;
      {&lt;br /&gt;
         &amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
         &amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&lt;br /&gt;
         &amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
   ],&lt;br /&gt;
   &amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schema Parameter Definitions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Application name&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;BestAppIOS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Application version&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;21.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. &amp;quot;Session&amp;quot; is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID:&lt;br /&gt;
&amp;lt;code&amp;gt;cdcde33c-b62f-4f17-a9c8-0db4f78e09d6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|ID for every new instance of exposure to a different asset&lt;br /&gt;
|Yes, if no sessionid&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: &lt;br /&gt;
&amp;lt;code&amp;gt;d7a909f1-5e77-4af7-8a9b-f2…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |streamended&lt;br /&gt;
|Stream is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (stream continues in subsequent file),&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; (stream closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |publisher_user_id&lt;br /&gt;
|Publisher-specific, non-interoperable user ID (must remain persistent indefinitely); should match value provided in panel matching mechanism&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8f434346648f6b96d9dda901c5…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|In-house id used for a video asset (TMS ID if available)&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;VID123456789&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_load_flag&lt;br /&gt;
|linear or dynamic ad load&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Default / Unknown &lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = linear ad load&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = dynamic ad load&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |ad_support_flag&lt;br /&gt;
|Intended method of monetizing the content&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = (no ads),&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = (content is supported by ads)&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;quot; if content ad support was intended but did not occur&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing.&lt;br /&gt;
&lt;br /&gt;
For viewing gaps &amp;lt; than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|referencestart&lt;br /&gt;
|Wall clock reference start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|referenceend&lt;br /&gt;
|Wall clock reference end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858775&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858515&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|playheadend&lt;br /&gt;
|Content position end time&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds or integer indexed from 0 (typical for VOD)&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;1577858785&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |viewedads&lt;br /&gt;
|Array of ads viewed by client.&lt;br /&gt;
&lt;br /&gt;
See below for additional details on position array parameters&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JSON&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: &lt;br /&gt;
[&lt;br /&gt;
   {&lt;br /&gt;
      &amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
      &amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&lt;br /&gt;
      &amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device HTTP User Agent string&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Apple-iPhone1C2/801.293&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xff&lt;br /&gt;
|IP address, or truncated IP with last octet zeroed &amp;quot;.000&amp;quot;&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: xxx.xxx.xxx.xxx&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if Device User Agent String (UAS) is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device platform(mobile, desktop, connected device)&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MBL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTT&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_type&lt;br /&gt;
|Device type for connected devices&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|Operating system of mobile devices. All other device should be NA&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;IOS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DROID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NA&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Type of device: phone, tablet, desktop, set top box (CTV or OTT), unknown&lt;br /&gt;
|Required if no UAS&lt;br /&gt;
|&amp;lt;code&amp;gt;DSK&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STV&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DVD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PMP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OTHER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STB&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;XBX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PSX&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AMN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;APL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;GGL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RKU&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UNWN&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The following 4 parameters become mandatory if IP Address is not available&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |robotic_flag&lt;br /&gt;
|Flag indicating IAB bot rule if IP address present in IAB bot list&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not bot,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = bot&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |zip_code&lt;br /&gt;
| ZIP code where viewing occurred&lt;br /&gt;
|Required if no IP&lt;br /&gt;
|&amp;lt;code&amp;gt;10001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |country&lt;br /&gt;
|Country ISO 3166 ALPHA-2&lt;br /&gt;
|Required if no IP&lt;br /&gt;
| &amp;lt;code&amp;gt;US&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; CA&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6988</id>
		<title>Digital Streaming Measurement S2S CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6988"/>
		<updated>2024-09-04T22:26:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
{{CategoryIcon|DCR.png|Digital Streaming Measurement Specifications (custom)}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Single Endpoint Integration (SEI) - log-file based data transaction mechanism&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 90px;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;width: 45px;&amp;quot; |&lt;br /&gt;
!| Implementation Guide&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | {{SmallIcon|S2SIcon.png|alt=SDK}}&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot;  | {{OSIcon|VideoIcon.png|alt=Video}}&lt;br /&gt;
| '''[[Digital Measurement SEI Content Viewing CR]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement Content Relayed Audit Beacon]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio File]]''' (possibly optional if audio watermark monitoring feed can be repurposed)&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio Metadata]]''' (possibly optional if audio watermark monitoring feed can be repurposed)&lt;br /&gt;
|-&lt;br /&gt;
| '''Panel Match Mechanism details to be mutually agreed upon'''&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6987</id>
		<title>Digital Streaming Measurement S2S CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6987"/>
		<updated>2024-09-04T22:09:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
{{CategoryIcon|DCR.png|Digital Streaming Measurement Specifications (custom)}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Single Endpoint Integration (SEI) - log-file based data transaction mechanism&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 90px;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;width: 45px;&amp;quot; |&lt;br /&gt;
!| Implementation Guide&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | {{SmallIcon|S2SIcon.png|alt=SDK}}&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot;  | {{OSIcon|VideoIcon.png|alt=Video}}&lt;br /&gt;
| '''[[Digital Measurement SEI Content Viewing CR]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement Content Relayed Audit Beacon]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio File]]''' (possibly optional if audio watermark monitoring feed can be repurposed)&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio Metadata]]''' (possibly optional if audio watermark monitoring feed can be repurposed)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6986</id>
		<title>Digital Streaming Measurement S2S CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6986"/>
		<updated>2024-09-04T22:09:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
{{CategoryIcon|DCR.png|Digital Streaming Measurement Specifications (custom)}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Single Endpoint Integration (SEI) - log-file based data transaction mechanism&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 90px;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;width: 45px;&amp;quot; |&lt;br /&gt;
!| Implementation Guide&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | {{SmallIcon|S2SIcon.png|alt=SDK}}&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot;  | {{OSIcon|VideoIcon.png|alt=Video}}&lt;br /&gt;
| '''[[Digital Measurement SEI Content Viewing CR]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement Content Relayed Audit Beacon]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio File]]''' (possibly optional if audio monitoring feed can be repurposed)&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio Metadata]]''' (possibly optional if audio monitoring feed can be repurposed)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6985</id>
		<title>Digital Streaming Measurement S2S CR</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Streaming_Measurement_S2S_CR&amp;diff=6985"/>
		<updated>2024-09-04T22:07:51Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}} Category:Digital {{CategoryIcon|DCR.png|Digital Streaming Measurement Specifications for Clean Room}} __NOTOC__  {| class=&amp;quot;wikitable&amp;quot; | colspan=&amp;quot;3&amp;quot; | Single Endpoint Integration (SEI) - log-file based data transaction mechanism |- ! style=&amp;quot;width: 90px;&amp;quot; | Type ! style=&amp;quot;width: 45px;&amp;quot; | !| Implementation Guide |- | rowspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | {{SmallIcon|S2SIcon.png|alt=SDK}} |- | rowspan=&amp;quot;5&amp;quot;  | {...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;br /&gt;
{{CategoryIcon|DCR.png|Digital Streaming Measurement Specifications for Clean Room}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Single Endpoint Integration (SEI) - log-file based data transaction mechanism&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 90px;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;width: 45px;&amp;quot; |&lt;br /&gt;
!| Implementation Guide&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | {{SmallIcon|S2SIcon.png|alt=SDK}}&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot;  | {{OSIcon|VideoIcon.png|alt=Video}}&lt;br /&gt;
| '''[[Digital Measurement SEI Content Viewing CR]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement Content Relayed Audit Beacon]]'''&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio File]]''' (possibly optional if audio monitoring feed can be repurposed)&lt;br /&gt;
|-&lt;br /&gt;
| '''[[Digital Measurement SEI Audio Metadata]]''' (possibly optional if audio monitoring feed can be repurposed)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Asset_Metadata&amp;diff=6984</id>
		<title>DTVR SEI Asset Metadata</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Asset_Metadata&amp;diff=6984"/>
		<updated>2024-09-04T21:49:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page DTVR SEI Asset Metadata to Digital Measurement SEI Audio Metadata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Digital Measurement SEI Audio Metadata]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Audio_Metadata&amp;diff=6983</id>
		<title>Digital Measurement SEI Audio Metadata</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Audio_Metadata&amp;diff=6983"/>
		<updated>2024-09-04T21:49:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page DTVR SEI Asset Metadata to Digital Measurement SEI Audio Metadata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}The Nielsen “server-2-server” method of collecting DTVR data requires the distributor to make available to Nielsen audio file for each live-streaming channel and each VoD asset that is eligible to DTVR crediting. Please contact your Nielsen Technical contact for a full description of what content is eligible for DTVR crediting.&lt;br /&gt;
&lt;br /&gt;
In addition, to the audio files themselves, the DTVR ingestion process needs to some additional metadata for each audio file; this document specifies the additional “out-of-band” metadata that need to be provided.&lt;br /&gt;
&lt;br /&gt;
The specification is defined using a JSON schema.&lt;br /&gt;
&lt;br /&gt;
=== File Naming Convention and Location ===&lt;br /&gt;
File should be named with following convention: FileType_MVPDId_AssetId_UTCStart_UTCEnd&lt;br /&gt;
&lt;br /&gt;
File type: DTVRAssetMetaData&lt;br /&gt;
&lt;br /&gt;
MVPDid: unique identifier provided by Nielsen for each MVPD&lt;br /&gt;
&lt;br /&gt;
AssetId: in-house assetId&lt;br /&gt;
&lt;br /&gt;
UTCStart (time in 32-bit unsigned int UTC in seconds from first second of audio captured)&lt;br /&gt;
&lt;br /&gt;
UTCEnd (time in 32-bit unsigned int UTC in seconds from first second of audio captured)&lt;br /&gt;
&lt;br /&gt;
Files should be placed in S3 buckets with the following folder structure:&lt;br /&gt;
&lt;br /&gt;
[To be determined during design phase]&lt;br /&gt;
&lt;br /&gt;
Nielsen will move files to another location as they are processed so processing status is apparent.&lt;br /&gt;
&lt;br /&gt;
In the case of a stream that has one version with blackouts and one without, one with mobile and one non-mobile, each stream would have its own unique asset id.&lt;br /&gt;
&lt;br /&gt;
Nielsen recommends for live-streams that the audio track associated with the live feed be segmented into 15min chunks for delivery to Nielsen.&lt;br /&gt;
&lt;br /&gt;
For VoD, Nielsen recommends using a single audio file, unless the total duration is greater than 6 hours, in which case the file should be broken up into smaller chunks.&lt;br /&gt;
&lt;br /&gt;
For live-streams, the audio file does not need to break on a show boundary. Nielsen recommends breaking on a convenient wall-clock time, such as on the hour, 15past, 30past, 45past etc&lt;br /&gt;
&lt;br /&gt;
Please check with the Nielsen Technical support to confirm the proposed audio format is supported, and if any compression, encryption algorithms or frequency band filters are going to be used to transport the audio files to Nielsen.&lt;br /&gt;
&lt;br /&gt;
=== SLA ===&lt;br /&gt;
The files must be delivered into the proper S3 bucket within 2 hours of the broadcast. For example, files from 1:00 AM to 1:15 AM must be delivered before 3:00 AM. The metadata file should be delivered to an S3 bucket after the audio files described in this reference file are delivered, and before any Viewing file that would use these audio files has been delivered. Please refer to the associated specifications for the SLA’s of these other files.&lt;br /&gt;
&lt;br /&gt;
=== JSON Param Definition ===&lt;br /&gt;
'''Header Record'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Mandatory'''&lt;br /&gt;
!'''Specified by'''&lt;br /&gt;
!'''Format or Example'''&lt;br /&gt;
|-&lt;br /&gt;
|schemaversion&lt;br /&gt;
|Json Schema Version &lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|Example: S2SDTVRAssetMetaDataV2.0&lt;br /&gt;
|-&lt;br /&gt;
|apid&lt;br /&gt;
|Server App ID&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|Example: A487421B-XXXX-YYYY-8343-E3BBB66E44F2&lt;br /&gt;
|-&lt;br /&gt;
|creationtime&lt;br /&gt;
|File creation time&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&lt;br /&gt;
|-&lt;br /&gt;
|assetid&lt;br /&gt;
|In-House Asset Id&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
|assetname&lt;br /&gt;
|In-House video asset name,&lt;br /&gt;
&lt;br /&gt;
used for troubleshooting&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: &amp;quot;A&amp;amp;E High Def East&amp;quot; or GraceNote channel mnemonic or call station letters &lt;br /&gt;
|-&lt;br /&gt;
|webpageurl&lt;br /&gt;
|Website Identifier, used for diagnostics, can be turned off/on as needed&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric  (max 2k) &lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;nowiki&amp;gt;http://www.myapp.com/video.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|recordcount&lt;br /&gt;
|# of records in body of file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: numeric&lt;br /&gt;
|}&lt;br /&gt;
'''Header JSON Schema:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;$schema&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://json-schema.org/draft-04/schema#&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;properties&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;schemaversion&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;apid&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;creationtime&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;assetid&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;assetname&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;webpageurl&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;recordcount&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
 },&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;required&amp;quot;: [ &amp;quot;schemaversion&amp;quot;, &amp;quot;apid&amp;quot;, &amp;quot;creationtime&amp;quot;, &amp;quot;assetid&amp;quot;, &amp;quot;assetname&amp;quot;, &amp;quot;recordcount&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Header Record - Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;schemaversion&amp;quot;:&amp;quot;S2SDTVRAssetMetaDataV2.0&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;apid&amp;quot;:&amp;quot;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;creationtime&amp;quot;:&amp;quot;1473781507&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;assetid&amp;quot;:&amp;quot; VID123456789&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;assetname&amp;quot;:&amp;quot;A&amp;amp;E High Def East&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;webpageurl&amp;quot;:&amp;quot;&amp;lt;nowiki&amp;gt;http://www.myapp.com/video.html&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;recordcount&amp;quot;:&amp;quot;100&amp;quot;&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Body'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Mandatory'''&lt;br /&gt;
!'''Specified by'''&lt;br /&gt;
!'''Format or Example'''&lt;br /&gt;
|-&lt;br /&gt;
|audiofilename&lt;br /&gt;
|Audio file name&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Example: aacFile1.aac&lt;br /&gt;
&lt;br /&gt;
Audio files are assumed to be uploaded to the same directory/folder as the associated Asset Metadata file&lt;br /&gt;
|-&lt;br /&gt;
|referencestart&lt;br /&gt;
|Starting in-house reference point for the audio file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&lt;br /&gt;
&lt;br /&gt;
For VoD, this will be an offset from the start of the asset&lt;br /&gt;
&lt;br /&gt;
For Live stream, this will be the in-house time&lt;br /&gt;
|-&lt;br /&gt;
|referenceend&lt;br /&gt;
|End in-house reference point for the audio file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&lt;br /&gt;
&lt;br /&gt;
For VoD, this will be an offset from the start of the asset&lt;br /&gt;
&lt;br /&gt;
For Live stream, this will be the in-house time&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
'''Body Message Schema:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;$schema&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;http://json-schema.org/draft-04/schema#&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;properties&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;audiofilename&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;referencestart&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;referenceend&amp;quot;: {  &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; }&lt;br /&gt;
&lt;br /&gt;
 },&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;required&amp;quot;: [ &amp;quot;audiofilename&amp;quot;, &amp;quot;referencestart&amp;quot;, &amp;quot;referenceend&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Body - Example:''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;audiofilename&amp;quot;:&amp;quot;aacFile1.aac&amp;quot;,&amp;quot;referencestart&amp;quot;:&amp;quot;1489506887&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;1489506889&amp;quot;}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6982</id>
		<title>Digital Measurement Content Relayed Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6982"/>
		<updated>2024-09-04T21:38:43Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Furnished S2S Audit Pint Proxy Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
The Nielsen server-to-server solution requires audit pings for the purpose of validating audience reach and video viewing duration; one start and one end for each video stream. Pings originate from the end-user device to Nielsen Collections servers. End pings execute upon cessation of playback.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Ping is executed with following convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://'''[to_be_provided]'''.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;+'''[query parameters]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Start Audit Ping carries all parameters in the table below. The End Audit Ping carries a subset of the parameters in the matrix below as denoted in the mandatory column.  &lt;br /&gt;
&lt;br /&gt;
Under normal operating circumstances, the audit ping server returns the following codes:&lt;br /&gt;
&lt;br /&gt;
* Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked&lt;br /&gt;
* 200: Ping successfully received, inspect traffic to ensure no CORS errors&lt;br /&gt;
&lt;br /&gt;
= Session &amp;amp; Stream =&lt;br /&gt;
&lt;br /&gt;
# Sessions&lt;br /&gt;
## Optionally, a new Session ID may be created when a new player is created &lt;br /&gt;
## If more than one video player exists within the same App (e.g. picture in picture) a different Session ID is required for each&lt;br /&gt;
# Streams&lt;br /&gt;
## New Stream ID is generated for each new video stream.&lt;br /&gt;
## If stream playback continues after 24 hours, then a new Stream ID should be created and a new Audit ping should be executed (Session ID may remain)&lt;br /&gt;
## Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same&lt;br /&gt;
## If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return&lt;br /&gt;
## Audit pings should be fired at the beginning and end of a stream&lt;br /&gt;
&lt;br /&gt;
= Two-part Audit Ping design requires: =&lt;br /&gt;
&lt;br /&gt;
#'''End-user-device-initiated ping''' with client-owned root domain and SessionID included in subdomain. Nielsen meters are trained to regex for a unique domain format. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://2576459933726989.darnuid.[publisher-domain].com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#'''S2S Audit Ping relay from client-server to Nielsen server''' with furnished URL parameters outlined below. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=xp3clqou0dzb1u4jq2jecoyvza&amp;amp;appid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:stdvss2saudit.png]]&lt;br /&gt;
&lt;br /&gt;
= Furnished S2S Audit Ping Proxy Parameters =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified''' &lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
|apid&lt;br /&gt;
|Server App ID assigned by Nielsen&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&lt;br /&gt;
Example: &amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;ce6c1c95-de3e-431e-b11e-77…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|pingtype&lt;br /&gt;
|Indicator for ping type: &amp;quot;start&amp;quot; or &amp;quot;end&amp;quot; audit ping&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: integer,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = Start Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Start Session&lt;br /&gt;
*&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; = End Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = End Session&lt;br /&gt;
|-&lt;br /&gt;
|product&lt;br /&gt;
|Indicates which product audit ping corresponds to&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
Example: &amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ctv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|createtm&lt;br /&gt;
|Time ping is initiated&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
'''Audit Ping Start Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=0&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577858505&amp;amp;devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping End Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=2&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577859637&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6981</id>
		<title>Digital Measurement Content Relayed Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6981"/>
		<updated>2024-09-04T21:38:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Furnished S2S Audit Pint Proxy Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
The Nielsen server-to-server solution requires audit pings for the purpose of validating audience reach and video viewing duration; one start and one end for each video stream. Pings originate from the end-user device to Nielsen Collections servers. End pings execute upon cessation of playback.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Ping is executed with following convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://'''[to_be_provided]'''.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;+'''[query parameters]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Start Audit Ping carries all parameters in the table below. The End Audit Ping carries a subset of the parameters in the matrix below as denoted in the mandatory column.  &lt;br /&gt;
&lt;br /&gt;
Under normal operating circumstances, the audit ping server returns the following codes:&lt;br /&gt;
&lt;br /&gt;
* Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked&lt;br /&gt;
* 200: Ping successfully received, inspect traffic to ensure no CORS errors&lt;br /&gt;
&lt;br /&gt;
= Session &amp;amp; Stream =&lt;br /&gt;
&lt;br /&gt;
# Sessions&lt;br /&gt;
## Optionally, a new Session ID may be created when a new player is created &lt;br /&gt;
## If more than one video player exists within the same App (e.g. picture in picture) a different Session ID is required for each&lt;br /&gt;
# Streams&lt;br /&gt;
## New Stream ID is generated for each new video stream.&lt;br /&gt;
## If stream playback continues after 24 hours, then a new Stream ID should be created and a new Audit ping should be executed (Session ID may remain)&lt;br /&gt;
## Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same&lt;br /&gt;
## If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return&lt;br /&gt;
## Audit pings should be fired at the beginning and end of a stream&lt;br /&gt;
&lt;br /&gt;
= Two-part Audit Ping design requires: =&lt;br /&gt;
&lt;br /&gt;
#'''End-user-device-initiated ping''' with client-owned root domain and SessionID included in subdomain. Nielsen meters are trained to regex for a unique domain format. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://2576459933726989.darnuid.[publisher-domain].com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#'''S2S Audit Ping relay from client-server to Nielsen server''' with furnished URL parameters outlined below. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=xp3clqou0dzb1u4jq2jecoyvza&amp;amp;appid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:stdvss2saudit.png]]&lt;br /&gt;
&lt;br /&gt;
= Furnished S2S Audit Pint Proxy Parameters =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified''' &lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
|apid&lt;br /&gt;
|Server App ID assigned by Nielsen&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&lt;br /&gt;
Example: &amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;ce6c1c95-de3e-431e-b11e-77…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|pingtype&lt;br /&gt;
|Indicator for ping type: &amp;quot;start&amp;quot; or &amp;quot;end&amp;quot; audit ping&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: integer,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = Start Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Start Session&lt;br /&gt;
*&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; = End Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = End Session&lt;br /&gt;
|-&lt;br /&gt;
|product&lt;br /&gt;
|Indicates which product audit ping corresponds to&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
Example: &amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ctv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|createtm&lt;br /&gt;
|Time ping is initiated&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
'''Audit Ping Start Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=0&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577858505&amp;amp;devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping End Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=2&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577859637&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6980</id>
		<title>Digital Measurement Content Relayed Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6980"/>
		<updated>2024-09-04T21:37:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Query Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
The Nielsen server-to-server solution requires audit pings for the purpose of validating audience reach and video viewing duration; one start and one end for each video stream. Pings originate from the end-user device to Nielsen Collections servers. End pings execute upon cessation of playback.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Ping is executed with following convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://'''[to_be_provided]'''.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;+'''[query parameters]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Start Audit Ping carries all parameters in the table below. The End Audit Ping carries a subset of the parameters in the matrix below as denoted in the mandatory column.  &lt;br /&gt;
&lt;br /&gt;
Under normal operating circumstances, the audit ping server returns the following codes:&lt;br /&gt;
&lt;br /&gt;
* Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked&lt;br /&gt;
* 200: Ping successfully received, inspect traffic to ensure no CORS errors&lt;br /&gt;
&lt;br /&gt;
= Session &amp;amp; Stream =&lt;br /&gt;
&lt;br /&gt;
# Sessions&lt;br /&gt;
## Optionally, a new Session ID may be created when a new player is created &lt;br /&gt;
## If more than one video player exists within the same App (e.g. picture in picture) a different Session ID is required for each&lt;br /&gt;
# Streams&lt;br /&gt;
## New Stream ID is generated for each new video stream.&lt;br /&gt;
## If stream playback continues after 24 hours, then a new Stream ID should be created and a new Audit ping should be executed (Session ID may remain)&lt;br /&gt;
## Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same&lt;br /&gt;
## If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return&lt;br /&gt;
## Audit pings should be fired at the beginning and end of a stream&lt;br /&gt;
&lt;br /&gt;
= Two-part Audit Ping design requires: =&lt;br /&gt;
&lt;br /&gt;
#'''End-user-device-initiated ping''' with client-owned root domain and SessionID included in subdomain. Nielsen meters are trained to regex for a unique domain format. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://2576459933726989.darnuid.[publisher-domain].com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#'''S2S Audit Ping relay from client-server to Nielsen server''' with furnished URL parameters outlined below. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=xp3clqou0dzb1u4jq2jecoyvza&amp;amp;appid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:stdvss2saudit.png]]&lt;br /&gt;
&lt;br /&gt;
= Furnished S2S Audit Pint Proxy Parameters =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified''' &lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
|apid&lt;br /&gt;
|Server App ID assigned by Nielsen&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&lt;br /&gt;
Example: &amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;ce6c1c95-de3e-431e-b11e-77…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|pingtype&lt;br /&gt;
|Indicator for ping type: &amp;quot;start&amp;quot; or &amp;quot;end&amp;quot; audit ping&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: integer,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = Start Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Start Session&lt;br /&gt;
*&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; = End Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = End Session&lt;br /&gt;
|-&lt;br /&gt;
|product&lt;br /&gt;
|Indicates which product audit ping corresponds to&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
Example: &amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ctv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|createtm&lt;br /&gt;
|Time ping is initiated&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
'''Audit Ping Start Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=0&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577858505&amp;amp;devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping End Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=2&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577859637&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6979</id>
		<title>Digital Measurement Content Relayed Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Relayed_Audit_Beacon&amp;diff=6979"/>
		<updated>2024-09-04T21:32:27Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{Breadcrumb|Digital Streaming Measurement}} {{CurrentBreadcrumb}}&lt;br /&gt;
&lt;br /&gt;
The Nielsen server-to-server solution requires audit pings for the purpose of validating audience reach and video viewing duration; one start and one end for each video stream. Pings originate from the end-user device to Nielsen Collections servers. End pings execute upon cessation of playback.&lt;br /&gt;
&lt;br /&gt;
== Ping Structure ==&lt;br /&gt;
Ping is executed with following convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://'''[to_be_provided]'''.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;+'''[query parameters]'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Start Audit Ping carries all parameters in the table below. The End Audit Ping carries a subset of the parameters in the matrix below as denoted in the mandatory column.  &lt;br /&gt;
&lt;br /&gt;
Under normal operating circumstances, the audit ping server returns the following codes:&lt;br /&gt;
&lt;br /&gt;
* Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like &amp;quot;text/plain&amp;quot; in simple GET requests ensure that preflight requests are not invoked&lt;br /&gt;
* 200: Ping successfully received, inspect traffic to ensure no CORS errors&lt;br /&gt;
&lt;br /&gt;
= Session &amp;amp; Stream =&lt;br /&gt;
&lt;br /&gt;
# Sessions&lt;br /&gt;
## Optionally, a new Session ID may be created when a new player is created &lt;br /&gt;
## If more than one video player exists within the same App (e.g. picture in picture) a different Session ID is required for each&lt;br /&gt;
# Streams&lt;br /&gt;
## New Stream ID is generated for each new video stream.&lt;br /&gt;
## If stream playback continues after 24 hours, then a new Stream ID should be created and a new Audit ping should be executed (Session ID may remain)&lt;br /&gt;
## Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same&lt;br /&gt;
## If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return&lt;br /&gt;
## Audit pings should be fired at the beginning and end of a stream&lt;br /&gt;
&lt;br /&gt;
= Two-part Audit Ping design requires: =&lt;br /&gt;
&lt;br /&gt;
#'''End-user-device-initiated ping''' with client-owned root domain and SessionID included in subdomain. Nielsen meters are trained to regex for a unique domain format. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://2576459933726989.darnuid.[publisher-domain].com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#'''S2S Audit Ping relay from client-server to Nielsen server''' with furnished URL parameters outlined below. Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;intid=xp3clqou0dzb1u4jq2jecoyvza&amp;amp;appid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;product=dar&amp;amp;createtm=1643858542&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:stdvss2saudit.png]]&lt;br /&gt;
&lt;br /&gt;
= Query Parameters =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!'''Parameter'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
!'''Required'''&lt;br /&gt;
!'''Specified''' &lt;br /&gt;
!'''Format / Example'''&lt;br /&gt;
|-&lt;br /&gt;
|apid&lt;br /&gt;
|Server App ID assigned by Nielsen&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|&lt;br /&gt;
Example: &amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|sessionid&lt;br /&gt;
|Unique, client generated value that represents the start of a user session. “Session” is defined as continuous (flexible) interaction with an application that may span multiple streams.&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
Example: Random GUID: &amp;lt;code&amp;gt;ce6c1c95-de3e-431e-b11e-77…&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|pingtype&lt;br /&gt;
|Indicator for ping type: &amp;quot;start&amp;quot; or &amp;quot;end&amp;quot; audit ping&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: integer,&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = Start Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = Start Session&lt;br /&gt;
*&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; = End Stream&lt;br /&gt;
*&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = End Session&lt;br /&gt;
|-&lt;br /&gt;
|product&lt;br /&gt;
|Indicates which product audit ping corresponds to&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, &lt;br /&gt;
Example: &amp;lt;code&amp;gt;dcr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dtvr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dar&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ctv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes, if devid/HHID provided&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
*&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = not opt-out&lt;br /&gt;
*&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = opt-out&lt;br /&gt;
|-&lt;br /&gt;
|devid&lt;br /&gt;
|Mobile Ad ID (IDFA, ADID), Connected Device ID&lt;br /&gt;
|Optional, or in S2S file&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|hhid&lt;br /&gt;
|House Hold ID. Used as a primary match key to external data sources.&lt;br /&gt;
|Optional, or in S2S file.&lt;br /&gt;
|Client&lt;br /&gt;
|&amp;lt;code&amp;gt;B0EOFEDgD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|createtm&lt;br /&gt;
|Time ping is initiated&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|&lt;br /&gt;
Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
Example: &amp;lt;code&amp;gt;1577858505&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
'''Audit Ping Start Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=0&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577858505&amp;amp;devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Audit Ping End Example:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;apid=FC984EC1-E044-B465-E040-070AAD3173A1&amp;amp;sessionid=2576459933726989&amp;amp;streamid=3679422587354472&amp;amp;pingtype=2&amp;amp;product=ctv&amp;amp;uoo=1&amp;amp;createtm=1577859637&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=File:stdvss2saudit.png&amp;diff=6978</id>
		<title>File:stdvss2saudit.png</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=File:stdvss2saudit.png&amp;diff=6978"/>
		<updated>2024-09-04T21:31:56Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;stdvss2saudit&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>