<?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=AbbyArgue</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=AbbyArgue"/>
	<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/wiki/Special:Contributions/AbbyArgue"/>
	<updated>2026-04-25T04:49:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Audio_Metadata&amp;diff=6861</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=6861"/>
		<updated>2024-07-03T15:55:50Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &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>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Audio_Metadata&amp;diff=6860</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=6860"/>
		<updated>2024-07-03T15:54:59Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &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;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;}&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6859</id>
		<title>DTVR SEI Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6859"/>
		<updated>2024-07-03T15:39:52Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification describes the file format that needs to be used to supply Nielsen with end-user viewing data captured by a “server-to-server” method for the Nielsen Digital TV Ratings (DTVR) product. &lt;br /&gt;
&lt;br /&gt;
* The specification is defined using a JSON schema, with each file ideally containing all the viewing that has been captured within an hour.&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 it’s own unique asset id.&lt;br /&gt;
* The audio file with related data should arrive before the viewing data file for the same hour.&lt;br /&gt;
[[File:S2S Diagram.png|thumb|700x700px]]&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 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;
=== File Naming Convention ===&lt;br /&gt;
File should be named with following convention: FileType_AppID _UTCStart_UTCEnd&lt;br /&gt;
&lt;br /&gt;
File Type: DTVRViewingFile&lt;br /&gt;
&lt;br /&gt;
AppID: app identifier&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. Accuracy of measurement&lt;br /&gt;
&lt;br /&gt;
These thresholds are currently under review during the Beta program period, and may change before data collected in this manner flows into Nielsen currency products.&lt;br /&gt;
&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing&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 is no more than 20 seconds).&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: S2SDTVRViewingV1.3&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;
|type&lt;br /&gt;
|Type of data &lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Value: &amp;quot;content&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|producttype&lt;br /&gt;
|Product Type &lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Value: &amp;quot;DTVR&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|File Start 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;
|endtime&lt;br /&gt;
|File End 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;
|recordcount&lt;br /&gt;
|# of records in body of file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
Note: Multiple entries in position array still only count as a single record for the purposes of the file record count&lt;br /&gt;
|}&lt;br /&gt;
'''Header Record - Example:'''&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;schemaversion&amp;quot;:&amp;quot;S2SDTVRViewingV1.3&amp;quot;,&amp;quot;apid&amp;quot;:&amp;quot;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;content&amp;quot;,&amp;quot;producttype&amp;quot;:&amp;quot;DTVR&amp;quot;,&amp;quot;starttime&amp;quot;:&amp;quot;1473781507&amp;quot;,&amp;quot;endtime&amp;quot;:&amp;quot;1473791507&amp;quot;,&amp;quot;recordcount&amp;quot;:&amp;quot;14&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Body'''&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;
!'''Mandatory'''&lt;br /&gt;
!'''Specified by'''&lt;br /&gt;
!'''Format or Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Client side App name&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: BestAppIOS&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Client side App version&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: 1.3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique id generated when 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;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|id for every new instance of an asset&lt;br /&gt;
|Required if no sessionid&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: UTC or other random #&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionended&lt;br /&gt;
|Session is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: numeric,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (session will continue in next file), 2 (session closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|id for an asset&lt;br /&gt;
&lt;br /&gt;
(could be TMS id)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetname&lt;br /&gt;
|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: “A&amp;amp;E High Def East” or GraceNote channel mnemonic or call station letters &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |origcontent&lt;br /&gt;
|The origin of the content that is being played out&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format : integer &lt;br /&gt;
&lt;br /&gt;
0 – (assumed default if no value provided); content is being streamed from source other than user's device e.g. Cloud DVR, MVPD VoD Library, or Publisher live-feed&lt;br /&gt;
&lt;br /&gt;
1 – content is being played out directly from user device e.g. local DVR&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |picturemode&lt;br /&gt;
|Picture in Picture Mode&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer – 0 (no PnP), 1 (PnP being used)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |secondscr&lt;br /&gt;
|Second Screen Indicator. For Mirroring &amp;amp; Extended Screen via OTT device scenarios&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: MIR or OTT&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: &lt;br /&gt;
&lt;br /&gt;
[{ &amp;quot;referencestart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;referenceend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;playheadend&amp;quot;:&amp;quot;utc&amp;quot; &amp;quot;}]&lt;br /&gt;
&lt;br /&gt;
Additional Notes: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; For viewing gaps less than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; For playouts that are abandoned before the first whole second of viewing is rendered, a position record of zero duration should be created IF an audit ping has already been fired&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;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&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;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start 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;
|&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;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC 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. Should not be the user ID.&lt;br /&gt;
&lt;br /&gt;
If hashing required, SHA-256 is preferred&lt;br /&gt;
|Yes, for opted-in mobile devices where available&lt;br /&gt;
|Client&lt;br /&gt;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|Client&lt;br /&gt;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC4335C&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_md5&lt;br /&gt;
|MD5 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Preferred&lt;br /&gt;
|Client&lt;br /&gt;
|3E168605F46DFB596EB717b7C83ACBC0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha1&lt;br /&gt;
|SHA-1 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Preferred&lt;br /&gt;
|Client&lt;br /&gt;
|37B7410CD605DB6294318CDB174014F062F0E9C6&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_other&lt;br /&gt;
|Hashed email if hashing algorithm is unknown or not sha256, md5, or sha1&lt;br /&gt;
|Preferred&lt;br /&gt;
|Client&lt;br /&gt;
|3E168605F46DFB596EB717b7C83ACBC0&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 where available, or audit ping &lt;br /&gt;
|Client&lt;br /&gt;
|B0EOFEDgD&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;
|Client&lt;br /&gt;
|Format: xxx.xxx.xxx.xxx or xxx.xxx.xxx.000&lt;br /&gt;
&lt;br /&gt;
or 000.000.000.000 for opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device User Agent&lt;br /&gt;
|Desired&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: Apple-iPhone1C2/801.293&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device Platform&lt;br /&gt;
|Required if UA not shared&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example DSK, MBL, OTT&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Device Group&lt;br /&gt;
|Required if UA not shared&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example PHN = phone, TAB = tablet, DSK = desktop, STV = Smart TV, UNWN = unknown&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|OS Group&lt;br /&gt;
|Required if UA not shared&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example DROID, IOS, UNWN&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
'''Body - Example:''' &lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;apn&amp;quot;:&amp;quot;BestAppiOS&amp;quot;,&amp;quot;apv&amp;quot;:&amp;quot;1.1&amp;quot;,&amp;quot;sessionid&amp;quot;:&amp;quot;123456789&amp;quot;, &amp;quot;streamid&amp;quot;:&amp;quot;123465435&amp;quot;,&amp;quot;sessionended&amp;quot;:&amp;quot;1&amp;quot;, &amp;quot;assetid&amp;quot;:&amp;quot;vid345-67483&amp;quot;,&amp;quot;assetname&amp;quot;:&amp;quot;ABC HD EAST&amp;quot;,&amp;quot;origcontent&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;picturemode&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;,&amp;quot;xff&amp;quot;:&amp;quot;205.114.192.12&amp;quot;,&amp;quot;device_platform&amp;quot;:&amp;quot;MBL&amp;quot;,&amp;quot;device_group&amp;quot;:&amp;quot;PHN&amp;quot;,&amp;quot;os_group&amp;quot;:&amp;quot;ios&amp;quot;,&amp;quot;xdua&amp;quot;:&amp;quot;Apple-iPhone1C2/801.293&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;utc&amp;quot;}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6858</id>
		<title>DTVR SEI Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6858"/>
		<updated>2024-07-03T15:29:06Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification describes the file format that needs to be used to supply Nielsen with end-user viewing data captured by a “server-to-server” method for the Nielsen Digital TV Ratings (DTVR) product. &lt;br /&gt;
&lt;br /&gt;
* The specification is defined using a JSON schema, with each file ideally containing all the viewing that has been captured within an hour.&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 it’s own unique asset id.&lt;br /&gt;
* The audio file with related data should arrive before the viewing data file for the same hour.&lt;br /&gt;
[[File:S2S Diagram.png|thumb|700x700px]]&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 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;
=== File Naming Convention ===&lt;br /&gt;
File should be named with following convention: FileType_AppID _UTCStart_UTCEnd&lt;br /&gt;
&lt;br /&gt;
File Type: DTVRViewingFile&lt;br /&gt;
&lt;br /&gt;
AppID: app identifier&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. Accuracy of measurement&lt;br /&gt;
&lt;br /&gt;
These thresholds are currently under review during the Beta program period, and may change before data collected in this manner flows into Nielsen currency products.&lt;br /&gt;
&lt;br /&gt;
The reported “wall clock” time of viewing needs to be within 25 seconds of the actual viewing&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 is no more than 20 seconds).&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: S2SDTVRViewingV1.3&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;
|type&lt;br /&gt;
|Type of data &lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Value: &amp;quot;content&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|producttype&lt;br /&gt;
|Product Type &lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Value: &amp;quot;DTVR&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|starttime&lt;br /&gt;
|File Start 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;
|endtime&lt;br /&gt;
|File End 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;
|recordcount&lt;br /&gt;
|# of records in body of file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
Note: Multiple entries in position array still only count as a single record for the purposes of the file record count&lt;br /&gt;
|}&lt;br /&gt;
'''Header Record - Example:'''&lt;br /&gt;
 {&amp;quot;schemaversion&amp;quot;:&amp;quot;S2SDTVRViewingV1.3&amp;quot;,&amp;quot;apid&amp;quot;:&amp;quot;A487421B-XXXX-YYYY-8343-E3BBB66E44F2&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;content&amp;quot;,&amp;quot;producttype&amp;quot;:&amp;quot;DTVR&amp;quot;,&amp;quot;starttime&amp;quot;:&amp;quot;1473781507&amp;quot;,&amp;quot;endtime&amp;quot;:&amp;quot;1473791507&amp;quot;,&amp;quot;recordcount&amp;quot;:&amp;quot;14&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Body'''&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;
|'''Mandatory'''&lt;br /&gt;
|'''Specified by'''&lt;br /&gt;
|'''Format or Example'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apn&lt;br /&gt;
|Client side App name&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: BestAppIOS&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |apv&lt;br /&gt;
|Client side App version&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: 1.3&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionid&lt;br /&gt;
|Unique id generated when 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;
| colspan=&amp;quot;2&amp;quot; |streamid&lt;br /&gt;
|id for every new instance of an asset&lt;br /&gt;
|Required if no sessionid&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: UTC or other random #&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |sessionended&lt;br /&gt;
|Session is known to have ended in this file&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: numeric,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (session will continue in next file), 2 (session closed)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetid&lt;br /&gt;
|id for an asset&lt;br /&gt;
&lt;br /&gt;
(could be TMS id)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |assetname&lt;br /&gt;
|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: “A&amp;amp;E High Def East” or GraceNote channel mnemonic or call station letters &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |origcontent&lt;br /&gt;
|The origin of the content that is being played out&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format : integer &lt;br /&gt;
&lt;br /&gt;
0 – (assumed default if no value provided); content is being streamed from source other than user's device e.g. Cloud DVR, MVPD VoD Library, or Publisher live-feed&lt;br /&gt;
&lt;br /&gt;
1 – content is being played out directly from user device e.g. local DVR&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |picturemode&lt;br /&gt;
|Picture in Picture Mode&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer – 0 (no PnP), 1 (PnP being used)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |secondscr&lt;br /&gt;
|Second Screen Indicator. For Mirroring &amp;amp; Extended Screen via OTT device scenarios&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: MIR or OTT&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |position&lt;br /&gt;
|Array of contiguous content viewing&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: &lt;br /&gt;
&lt;br /&gt;
[{ &amp;quot;referencestart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;referenceend&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;utc&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;playheadend&amp;quot;:&amp;quot;utc&amp;quot; &amp;quot;}]&lt;br /&gt;
&lt;br /&gt;
Additional Notes: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; For viewing gaps less than 1 second, the gap can be smoothed over&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; For playouts that are abandoned before the first whole second of viewing is rendered, a position record of zero duration should be created IF an audit ping has already been fired&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;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&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;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC in seconds)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start 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;
|&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;
|Client&lt;br /&gt;
|Format: utc (time in 32-bit unsigned int UTC 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. Should not be the user ID.&lt;br /&gt;
&lt;br /&gt;
If hashing required, SHA-256 is preferred&lt;br /&gt;
|Yes, for opted-in mobile devices where available&lt;br /&gt;
|Client&lt;br /&gt;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|Client&lt;br /&gt;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC4335C&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_md5&lt;br /&gt;
|MD5 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Preferred&lt;br /&gt;
|Client&lt;br /&gt;
|3E168605F46DFB596EB717b7C83ACBC0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_sha1&lt;br /&gt;
|SHA-1 hashed email&lt;br /&gt;
&lt;br /&gt;
Note: email normalization rules applied before hashing&lt;br /&gt;
|Preferred&lt;br /&gt;
|Client&lt;br /&gt;
|37B7410CD605DB6294318CDB174014F062F0E9C6&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |hem_other&lt;br /&gt;
|Hashed email if hashing algorithm is unknown or not sha256, md5, or sha1&lt;br /&gt;
|Preferred&lt;br /&gt;
|Client&lt;br /&gt;
|3E168605F46DFB596EB717b7C83ACBC0&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 where available, or audit ping &lt;br /&gt;
|Client&lt;br /&gt;
|B0EOFEDgD&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;
|Client&lt;br /&gt;
|Format: xxx.xxx.xxx.xxx or xxx.xxx.xxx.000&lt;br /&gt;
&lt;br /&gt;
or 000.000.000.000 for opt-out&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |xdua&lt;br /&gt;
|Device User Agent&lt;br /&gt;
|Desired&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example: Apple-iPhone1C2/801.293&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_platform&lt;br /&gt;
|Device Platform&lt;br /&gt;
|Required if UA not shared&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example DSK, MBL, OTT&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |device_group&lt;br /&gt;
|Device Group&lt;br /&gt;
|Required if UA not shared&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example PHN = phone, TAB = tablet, DSK = desktop, STV = Smart TV, UNWN = unknown&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |os_group&lt;br /&gt;
|OS Group&lt;br /&gt;
|Required if UA not shared&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Example DROID, IOS, UNWN&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
&lt;br /&gt;
'''Body - Example:''' &lt;br /&gt;
 {&amp;quot;apn&amp;quot;:&amp;quot;BestAppiOS&amp;quot;,&amp;quot;apv&amp;quot;:&amp;quot;1.1&amp;quot;,&amp;quot;sessionid&amp;quot;:&amp;quot;123456789&amp;quot;, &amp;quot;streamid&amp;quot;:&amp;quot;123465435&amp;quot;,&amp;quot;sessionended&amp;quot;:&amp;quot;1&amp;quot;, &amp;quot;assetid&amp;quot;:&amp;quot;vid345-67483&amp;quot;,&amp;quot;assetname&amp;quot;:&amp;quot;ABC HD EAST&amp;quot;,&amp;quot;origcontent&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;picturemode&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot;,&amp;quot;xff&amp;quot;:&amp;quot;205.114.192.12&amp;quot;,&amp;quot;device_platform&amp;quot;:&amp;quot;MBL&amp;quot;,&amp;quot;device_group&amp;quot;:&amp;quot;PHN&amp;quot;,&amp;quot;os_group&amp;quot;:&amp;quot;ios&amp;quot;,&amp;quot;xdua&amp;quot;:&amp;quot;Apple-iPhone1C2/801.293&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;utc&amp;quot;}&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6857</id>
		<title>DTVR SEI Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6857"/>
		<updated>2024-07-03T15:24:19Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification describes the file format that needs to be used to supply Nielsen with end-user viewing data captured by a “server-to-server” method for the Nielsen Digital TV Ratings (DTVR) product. &lt;br /&gt;
&lt;br /&gt;
* The specification is defined using a JSON schema, with each file ideally containing all the viewing that has been captured within an hour.&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 it’s own unique asset id.&lt;br /&gt;
* The audio file with related data should arrive before the viewing data file for the same hour.&lt;br /&gt;
[[File:S2S Diagram.png|thumb|700x700px]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=File:S2S_Diagram.png&amp;diff=6856</id>
		<title>File:S2S Diagram.png</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=File:S2S_Diagram.png&amp;diff=6856"/>
		<updated>2024-07-03T15:22:59Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;S2S&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6855</id>
		<title>DTVR SEI Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6855"/>
		<updated>2024-07-03T15:21:29Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}This interface specification describes the file format that needs to be used to supply Nielsen with end-user viewing data captured by a “server-to-server” method for the Nielsen Digital TV Ratings (DTVR) product. &lt;br /&gt;
&lt;br /&gt;
* The specification is defined using a JSON schema, with each file ideally containing all the viewing that has been captured within an hour.&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 it’s own unique asset id.&lt;br /&gt;
* The audio file with related data should arrive before the viewing data file for the same hour.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Audio_Metadata&amp;diff=6854</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=6854"/>
		<updated>2024-07-03T15:04:45Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;Placeholder&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Placeholder&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6835</id>
		<title>DTVR SEI Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=DTVR_SEI_Viewing&amp;diff=6835"/>
		<updated>2024-06-26T17:27:33Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;Placeholder&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Placeholder&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=6700</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=6700"/>
		<updated>2024-06-06T19:58:16Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* Manifest File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{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''' 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 Ping''' (not required for ad effectiveness) 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 '''[dar|dcr|dtvr|ctvc|audio]'''&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 '''_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 '''_manifest''' 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;
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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
&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;
&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;
&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;
&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&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;
|501&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=6699</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=6699"/>
		<updated>2024-06-06T19:57:41Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* Manifest File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{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''' 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 Ping''' (not required for ad effectiveness) 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 '''[dar|dcr|dtvr|ctvc|audio]'''&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 '''_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 '''_manifest''' 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;
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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&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;
|501&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=6698</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=6698"/>
		<updated>2024-06-06T19:55:09Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* S3 Bucket and Prefix Naming Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{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''' 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 Ping''' (not required for ad effectiveness) 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 '''[dar|dcr|dtvr|ctvc|audio]'''&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 '''_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 '''_manifest''' suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&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;
 }&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
 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&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&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;
|501&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=6697</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=6697"/>
		<updated>2024-06-06T19:54:42Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* S3 Bucket and Prefix Naming Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{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''' 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 Ping''' (not required for ad effectiveness) 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 '''[dar|dcr|dtvr|ctvc|audio]'''&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;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]&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 '''_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 '''_manifest''' suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&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;
 }&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
 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&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&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;
|501&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6696</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6696"/>
		<updated>2024-06-06T19:45:51Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}&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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&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 (stream continues in subsequent file), 2 (stream closed)&amp;lt;/code&amp;gt;&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; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAAB2Jz2_k74GXSzx4npHuI_&amp;lt;wbr /&amp;gt;JwJd3QSUpW30rDkGTcbHEzIMWleCzM-uvNOP9fzJcQMWQLJqzXMCAxParOb5sGijSV9dNM3QiBniJYGZ5GI-lL1fXTTN0IgZ4iWBmeRiPpS9AAAAAAAAAAAAAAAAAAAAAFJWFM5SVhTONNU=/00000/00000/00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_&amp;lt;wbr /&amp;gt;M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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: &lt;br /&gt;
&amp;lt;code&amp;gt;SH009311820022&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;Nightly News&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|&lt;br /&gt;
Format: alphanumeric&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; |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 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = dynamic ad load&amp;lt;/code&amp;gt;&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 = (no ads),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ads),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;code&amp;gt;&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
}]&lt;br /&gt;
|-&lt;br /&gt;
|{&amp;lt;/code&amp;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;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&lt;br /&gt;
|-&lt;br /&gt;
|{&lt;br /&gt;
|adpod&lt;br /&gt;
|AdPod sequence number.&amp;lt;/code&amp;gt;&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;
&lt;br /&gt;
&amp;lt;code&amp;gt;0 = is NOT DAR ID; 1 = is a DAR ID&amp;lt;/code&amp;gt;&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;
&lt;br /&gt;
&amp;lt;code&amp;gt;0 = not opt-out, 1 = opt-out&amp;lt;/code&amp;gt;&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, MBL, 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, APL, DVD, GGL, PSX, RKU, STB, STV, 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, DROID, 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, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, 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 = not bot, 1 = bot&amp;lt;/code&amp;gt;&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, CA, etc.&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6689</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6689"/>
		<updated>2024-06-06T19:06:35Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* Data delivery example for hour 11 (11:00:00 AM UTC to 11:59:59 PM UTC): */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}&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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6688</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6688"/>
		<updated>2024-06-06T19:05:13Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* S3 Bucket and Prefix Naming Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}&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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6687</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6687"/>
		<updated>2024-06-06T19:04:39Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* S3 Bucket and Prefix Naming Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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;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]'''&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}&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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6685</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6685"/>
		<updated>2024-06-06T19:02:34Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* Schema Parameter Definitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;
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;'''&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}&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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6684</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6684"/>
		<updated>2024-06-06T19:01:51Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* CTV, Mirroring, and Casting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;
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;'''&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}&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;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[&lt;br /&gt;
{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&lt;br /&gt;
&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6683</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6683"/>
		<updated>2024-06-06T18:53:30Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* Manifest File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;
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;'''&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&lt;br /&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6682</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6682"/>
		<updated>2024-06-06T18:52:34Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: /* S3 Bucket and Prefix Naming Convention */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;
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;'''&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;quot;test&amp;quot; or &amp;quot;prod&amp;quot;&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;
|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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' 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;: 55&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&lt;br /&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
| FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
| US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Audit_Beacon&amp;diff=6680</id>
		<title>Digital Measurement Content Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Audit_Beacon&amp;diff=6680"/>
		<updated>2024-06-06T18:44:17Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Update to v1.8.8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{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;
https://[to_be_provided].imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;+[query parameters] &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;
= 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;
|Example: A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&lt;br /&gt;
|-&lt;br /&gt;
|pingtype&lt;br /&gt;
|Indicator for ping type: “start” or “end” audit ping&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
1 = Start Stream&lt;br /&gt;
&lt;br /&gt;
0 = Start Session&lt;br /&gt;
&lt;br /&gt;
3 = End Stream&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: dcr, dtvr, dar, ctv&lt;br /&gt;
|-&lt;br /&gt;
|uoo&lt;br /&gt;
|User opt out flag for demographic measurement&lt;br /&gt;
|Yes, if devid/LUID provided&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&lt;br /&gt;
|-&lt;br /&gt;
|luid&lt;br /&gt;
|Living Unit ID - Experian Household ID&lt;br /&gt;
|Optional, or in S2S file&lt;br /&gt;
|Client&lt;br /&gt;
|B0EOFEDgD&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&lt;br /&gt;
|}&lt;br /&gt;
'''Audit Ping Start Example:'''&lt;br /&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&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Audit_Beacon&amp;diff=6678</id>
		<title>Digital Measurement Content Audit Beacon</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Content_Audit_Beacon&amp;diff=6678"/>
		<updated>2024-06-06T18:42:08Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}} Category:Digital&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=6677</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=6677"/>
		<updated>2024-06-06T18:41:02Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Update to v1.7.1&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;
 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;&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 [dar|dcr|dtvr|ctvc|audio]&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;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]&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 _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 AWS unload manifest file format. It has the same name as the data file, but has the _manifest suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&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;
 }&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
 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&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Viewing&amp;diff=6676</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=6676"/>
		<updated>2024-06-06T18:30:39Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}} Category:Digital&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Asset_Metadata&amp;diff=6675</id>
		<title>Digital Measurement SEI Content Asset Metadata</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Asset_Metadata&amp;diff=6675"/>
		<updated>2024-06-05T17:30:30Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Update to new version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}The Nielsen &amp;quot;Server-To-Server&amp;quot; method of collecting DCR data requires the distributor to make available each Asset (Episode) referenced in the DCR Viewing file in a separate metadata file (a.k.a metadata catalog).&lt;br /&gt;
&lt;br /&gt;
== Naming Convention and Delivery Specification ==&lt;br /&gt;
Consolidated list of asset metadata catalog that is up to date for a particular hour needs to be provided in a single file following the naming convention specified below. The metadata needs to be in a json lines format, including a header line. A reasonable effort needs to be made to remove expired/inactive asset ids, to avoid size creep. &lt;br /&gt;
&lt;br /&gt;
Nielsen will move files to indicate they are being processed.&lt;br /&gt;
&lt;br /&gt;
'''S3 bucket naming convention:'''&lt;br /&gt;
 useast1-nlsn-w-dig-sei-&amp;lt;partner_id&amp;gt;-feeds-&amp;lt;env&amp;gt;/&amp;lt;s3_prefix&amp;gt;/&amp;lt;s3_object&amp;gt;&lt;br /&gt;
'''S3 prefix naming convention:'''&lt;br /&gt;
 &amp;lt;file_type&amp;gt;/yyyy/mm/dd/hh&lt;br /&gt;
'''S3 object naming convention:'''&lt;br /&gt;
 &amp;lt;partner_id&amp;gt;_&amp;lt;file_type&amp;gt;_&amp;lt;int_id&amp;gt;[.gz|.bz2]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|'''partner_id'''&lt;br /&gt;
|'''Partner id provided by Nielsen (4 letter code or TICK symbol, a.k.a. publisher id) in human readable format.'''&lt;br /&gt;
|-&lt;br /&gt;
|env&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;[ test | prod ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|int_id&lt;br /&gt;
|Integration id provided by Nielsen. Used to link different integration inputs, ex.  associate single audit ping integration with different viewsership pipelines (dar, dtvr, dcr, etc.)&lt;br /&gt;
|-&lt;br /&gt;
|file_type&lt;br /&gt;
|[ dcrassetmetadata ]&lt;br /&gt;
|-&lt;br /&gt;
|/yyyy/mm/dd/hh/&lt;br /&gt;
|year/month/day/hour (including leading zeros, starting from 00 hour )&lt;br /&gt;
&lt;br /&gt;
ex.: 2023/02/12/05&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;[.gz|.bz2]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Uncompressed json lines (no extension) -  splittable, ideal for medium size files, less than 5 GB, preferred for metadata. Optional compression formats supported:&lt;br /&gt;
&lt;br /&gt;
* [.gz] - non splittable, requires multiple files, if data larger than 32 MB&lt;br /&gt;
* [.bz2]- splittable, preferred for larger files, above 256 MB (block size 256MB)  (in development)&lt;br /&gt;
|}&lt;br /&gt;
'''Example of a file for 10:00 EST to 11:00 AM EST:''' &lt;br /&gt;
 useast1-nlsn-w-dig-sei-acme-feeds-prod/dcrassetmetadata/2022/06/12/10/&lt;br /&gt;
&lt;br /&gt;
 acme_dcrassetmetadata_a9ddf15ea054ea415718767ea6&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 before any Viewing file has been delivered. Please refer to the associated specifications for the SLAs 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: S2SAssetMetaDataDCRV2.0&lt;br /&gt;
|-&lt;br /&gt;
|mvpdid&lt;br /&gt;
|Server App ID&lt;br /&gt;
|Yes&lt;br /&gt;
|Nielsen&lt;br /&gt;
|Example: NLSN&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;
|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;
In this schema implementation this value is set to &amp;quot;1&amp;quot;, as each file will only contain the metadata associated to a single asset&lt;br /&gt;
|}&lt;br /&gt;
'''Header JSON Schema:'''&lt;br /&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;mvpdid&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;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;appid&amp;quot;, &amp;quot;creationtime&amp;quot;, &amp;quot;recordcount&amp;quot; ]&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
'''Header Record - Example:'''&lt;br /&gt;
 {&amp;quot;schemaversion&amp;quot;:&amp;quot;S2SAssetMetaDataDCRV2.0&amp;quot;,&amp;quot;mvpdid&amp;quot;:&amp;quot;NLSN&amp;quot;,&amp;quot;creationtime&amp;quot;:&amp;quot;1473781507&amp;quot;,&amp;quot;recordcount&amp;quot;:&amp;quot;1&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Body 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;
|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;
AssetId needs to be unique at episode level&lt;br /&gt;
|-&lt;br /&gt;
|assetname&lt;br /&gt;
|In-house video asset name,&lt;br /&gt;
&lt;br /&gt;
for troubleshooting&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Examples: TMS ID, EIDR ID or Episode title&lt;br /&gt;
|-&lt;br /&gt;
|programname&lt;br /&gt;
|Name of the program&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, Max 25 char’s; no special characters&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name&lt;br /&gt;
|-&lt;br /&gt;
|episodetitle&lt;br /&gt;
|Title of the episode&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Examples: News: “Prime Time News YYYY-MM-DD”&lt;br /&gt;
&lt;br /&gt;
TV Show: “The Greatest American Hero S2E23”&lt;br /&gt;
&lt;br /&gt;
Movie: “Movie Title”&lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Episode Title&lt;br /&gt;
|-&lt;br /&gt;
|episodelen&lt;br /&gt;
|Total episode length&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: Integer (seconds)&lt;br /&gt;
&lt;br /&gt;
Example: 3600&lt;br /&gt;
&lt;br /&gt;
For continuous live stream or unknown duration use 24*60*60 (86400)&lt;br /&gt;
&lt;br /&gt;
Can be updated with a replacement asset file when the live playout ends, and the exact duration becomes known&lt;br /&gt;
|-&lt;br /&gt;
|isfullepisode&lt;br /&gt;
|Full episode Flag &lt;br /&gt;
&lt;br /&gt;
(indicates full episode or a clip)&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: integer – 0 (not full episode), 1 (full episode)&lt;br /&gt;
|-&lt;br /&gt;
|genre&lt;br /&gt;
|Nielsen genre code&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: CV (comedy variety), N (news)&lt;br /&gt;
&lt;br /&gt;
Contact Nielsen Technical support for a list of current Genre codes&lt;br /&gt;
|-&lt;br /&gt;
|airdate&lt;br /&gt;
|The date the episode was first made available on Traditional TV &lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: US ET:  YYYYMMDDHHMMSS&lt;br /&gt;
&lt;br /&gt;
Example: 19970716231256&lt;br /&gt;
&lt;br /&gt;
For the US, the time should be specified as Eastern Timezone. Other countries will use a local timezone.&lt;br /&gt;
&lt;br /&gt;
Used as default episode name if metadata not available&lt;br /&gt;
&lt;br /&gt;
This value can be updated with a replacement asset file if the original air date changes&lt;br /&gt;
|-&lt;br /&gt;
|webpageurl&lt;br /&gt;
|Website Identifier, 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;https://www.myapp.com/video.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|crossrefId1&lt;br /&gt;
|Content owner’s episode asset id. Used for secondary crediting&lt;br /&gt;
|No&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: TMS ID, EIDR ID or Episode title&lt;br /&gt;
&lt;br /&gt;
Note: this field only needs to be populated by Distributors &lt;br /&gt;
|-&lt;br /&gt;
|crossrefId2&lt;br /&gt;
|Content owner. Used for secondary crediting&lt;br /&gt;
|Yes&lt;br /&gt;
|Client&lt;br /&gt;
|Format: alphabetical - Gracenote, channel mnemonic or Nielsen channel mnemonic&lt;br /&gt;
&lt;br /&gt;
Example: AMC&lt;br /&gt;
&lt;br /&gt;
Contact Nielsen for a list of current Nielsen channel codes&lt;br /&gt;
&lt;br /&gt;
Note: this field only needs to be populated by Distributors&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
'''Body - Example:''' &lt;br /&gt;
 {&amp;quot;assetid&amp;quot;:&amp;quot;VID123456789&amp;quot;, &amp;quot;assetname&amp;quot;:&amp;quot;myassetname&amp;quot;, &amp;quot;programname&amp;quot;:&amp;quot;Nightly News&amp;quot;,&amp;quot;episodetitle&amp;quot;:&amp;quot;Prime Time News S2E23&amp;quot;, &amp;quot;episodelen&amp;quot;:&amp;quot;2000&amp;quot;, &amp;quot;isfullepisode&amp;quot;:&amp;quot;true&amp;quot;, &amp;quot;genre&amp;quot;:&amp;quot;N&amp;quot;, &amp;quot;airdate&amp;quot;:&amp;quot;19970716231256&amp;quot;, &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;, &amp;quot;crossrefId1&amp;quot;:&amp;quot;myepisodeid&amp;quot;, &amp;quot;crossrefId2&amp;quot;:&amp;quot;networkxyz&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=== Additional Guidance on Program &amp;amp; Episode Metadata ===&lt;br /&gt;
If the intention is that the DCR metadata also be used for TCR (Total Content Ratings). Then the DCR Program &amp;amp; Episode name should be identical to the Program &amp;amp; Episode name that is used in Traditional TV Ratings. It is recommended to use the metadata registered in Nielsen TV Names systems (myEVNTS/myVOD). If a Nielsen TV Names systems is not used, then you may use the Program &amp;amp; Episode name registered with a 3rd party television listing service such as GraceNote.&lt;br /&gt;
&lt;br /&gt;
Nielsen recommends the following format for Episode name: &lt;br /&gt;
&lt;br /&gt;
Format: Episode Title + Season # + Episode # (e.g.  Title S3E1).&lt;br /&gt;
&lt;br /&gt;
Values:  A minimum of one of the values below should be provided:&lt;br /&gt;
&lt;br /&gt;
* Episode Title: must be first value if provided&lt;br /&gt;
* Season #: must follow Episode Title if provided&lt;br /&gt;
* Episode #: must follow Season # if provided&lt;br /&gt;
&lt;br /&gt;
NOTE: It is recommended to pass all three values if available.&lt;br /&gt;
&lt;br /&gt;
Identifiers:&lt;br /&gt;
&lt;br /&gt;
* Season: 'Season', 'S'&lt;br /&gt;
* Episode: 'Episode', 'E', 'Ep'&lt;br /&gt;
* Not case sensitive&lt;br /&gt;
&lt;br /&gt;
Delimiters:&lt;br /&gt;
&lt;br /&gt;
* Supported delimiters: ' ' (space), ':', '.'&lt;br /&gt;
* Delimiters are optional&lt;br /&gt;
&lt;br /&gt;
Characters:&lt;br /&gt;
&lt;br /&gt;
* 40 character limit&lt;br /&gt;
* No special characters&lt;br /&gt;
&lt;br /&gt;
You may reference the examples below to determine if you are passing a valid episode name:&lt;br /&gt;
&lt;br /&gt;
* Valid: 'Title S2E9', 'Title S.2 EP.9', 'Title Episode:9'&lt;br /&gt;
* Invalid (with reason): &lt;br /&gt;
** 'Title S-2 E-9'			'-' is not a supported delimiter&lt;br /&gt;
** 'Title Episode9 Season2'	Season # must precede Episode #&lt;br /&gt;
** 'Title  SE2  EP9'			'SE' is not a  valid  identifier&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Asset_Metadata&amp;diff=6674</id>
		<title>Digital Measurement SEI Content Asset Metadata</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Content_Asset_Metadata&amp;diff=6674"/>
		<updated>2024-06-05T17:15:26Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}} Category:Digital&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=6673</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=6673"/>
		<updated>2024-06-05T17:14:42Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Update to V 1.0.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{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''' 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 Ping''' (not required for ad effectiveness) 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;
 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;&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 '''[dar|dcr|dtvr|ctvc|audio]'''&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;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]&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 '''_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 '''_manifest''' suffix.&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&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;
 }&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
 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&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&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;
|501&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Ad_Exposure&amp;diff=6672</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=6672"/>
		<updated>2024-06-05T17:04:41Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}} Category:Digital&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6670</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6670"/>
		<updated>2024-06-03T17:32:32Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Breadcrumb|}} {{Breadcrumb|Digital}} {{CurrentBreadcrumb}}&lt;br /&gt;
[[Category:Digital]]&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;&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;
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;'''&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 [dar|dcr|dtvr|ctvc|audio]&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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&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;
 }&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6669</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6669"/>
		<updated>2024-06-03T17:30:58Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Upload of v. 1.7.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;&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;
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;'''&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 [dar|dcr|dtvr|ctvc|audio]&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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&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;
 }&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;
|S2SV1.7.0&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;
|MRC = 1&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: 31337&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;
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&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;
[[File:Phone Playback.png|thumb]]&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;quot;secondscr&amp;quot;:&amp;quot;MIR&amp;quot; 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;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx123&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;60&amp;quot;},{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx303&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;180&amp;quot;}]}&lt;br /&gt;
&lt;br /&gt;
 { ... &amp;quot;sessionid&amp;quot;:&amp;quot;ABC&amp;quot;,&amp;quot;streamid&amp;quot;:&amp;quot;DEF&amp;quot;,&amp;quot;position&amp;quot;:[{&amp;quot;referencestart&amp;quot;:&amp;quot;xxxxxxx183&amp;quot;,&amp;quot;referenceend&amp;quot;:&amp;quot;xxxxxxx243&amp;quot;,&amp;quot;playheadstart&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;playheadend&amp;quot;:&amp;quot;120&amp;quot;}],&amp;quot;secondscr&amp;quot;:&amp;quot;OTT&amp;quot;}&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: BestAppIOS&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: 21.5&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Random GUID: d7a909f1-5e77-4af7-8a9b-f2…&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;
|Format: integer,&lt;br /&gt;
&lt;br /&gt;
Example: 1 (stream continues in subsequent file), 2 (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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
8f434346648f6b96d9dda901c5…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: Salted, hashed user ID: &lt;br /&gt;
&lt;br /&gt;
2cf24dba5fb0a30e26e83b2ab9…&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;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: VID123456789&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |nielsen_id3_tag&lt;br /&gt;
|Encrypted Nielsen ID3 Tag. Contains SID (Source Identifier) codes (PC - Program Content  &amp;amp;  FD - Final Distributor).&lt;br /&gt;
|Optional&lt;br /&gt;
|Format: alphanumeric; &lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/0UQ1mB-DRZMCTQ3Fr9zLjw==/EnVp4bRmgPx7KDNctoTVpQ==/AAcCEP7hk_DDqQuocAM3JRHB7raS8j8yKAM2b3Na2F9Po4yWm87KA6Ubefb3Hb6Fj_GOijXnlXw1yzgKzpc0J-cCEFEQqjGD2HHpSj5upGJyz6V0lx5j64rfFd4jyv3cxHGz_UKb-yJdHKTHKB11Iv_LJls1P1xbNT9iOo8=/29100/36900/00&lt;br /&gt;
&lt;br /&gt;
Note: Only Data Tags should be included, INFO Tags should not. &lt;br /&gt;
&lt;br /&gt;
INFO Tag is characterized by the following CID prefix: X100zdCIGeIlgZnkYj6UvQ==&lt;br /&gt;
&lt;br /&gt;
Example INFO Tag (not desired):&lt;br /&gt;
&lt;br /&gt;
www.nielsen.com/X100zdCIGeIlgZnkYj6UvQ==/X100zdCIGeIlgZnkYj6UvQ==/AAICoyitYqlxT7n6aZ0oMCGheFi4CXFp46AMUPZz1lMr_M9tr3_cjee1SHqxrOiVerMDLeyn9xzocZSKwi746Re8vNOtpNCAZjYABs_J0R25IHpvOc1HS8QHGgD5TgOJeS6gX100zdCIGeIlgZnkYj6UvVJWFNhSVhTiPE0=/00000/46016/00&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |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;
|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: SH009311820022&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |station_id&lt;br /&gt;
|GraceNote station ID that identifies the station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |program_name&lt;br /&gt;
|Name of program&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric, Max 25 characters; no special characters.&lt;br /&gt;
&lt;br /&gt;
Example: Nightly News &lt;br /&gt;
&lt;br /&gt;
See below for more specific guidance on Program Name.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |network_affiliate&lt;br /&gt;
|Network affiliation of a station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
&lt;br /&gt;
Example: xyz&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_id&lt;br /&gt;
|ID of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: integer&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |channel_name&lt;br /&gt;
|Name of channel&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |callsign&lt;br /&gt;
|FCC assigned unique identifier for a transmitter station&lt;br /&gt;
|Required if id3 not provided&lt;br /&gt;
|Format: alphanumeric&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;
|501&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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = Default / Unknown &lt;br /&gt;
&lt;br /&gt;
1 = linear ad load&lt;br /&gt;
&lt;br /&gt;
2 = 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;
|Format: integer;&lt;br /&gt;
&lt;br /&gt;
0 = (no ad's),&lt;br /&gt;
&lt;br /&gt;
1 = (content is supported by ad’s),&lt;br /&gt;
&lt;br /&gt;
2 = (not known)&lt;br /&gt;
&lt;br /&gt;
Note: set to &amp;quot;1&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;position&amp;quot;: [{&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referencestart&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;referenceend&amp;quot;:&amp;quot;[timestamp]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadstart&amp;quot;:&amp;quot;[playhead position]&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;playheadend&amp;quot;:&amp;quot;[playhead position]&amp;quot;&lt;br /&gt;
&lt;br /&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858505&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;
|Format: Unix timestamp in 32-bit unsigned int in seconds&lt;br /&gt;
&lt;br /&gt;
Example: 1577858775&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|playheadstart&lt;br /&gt;
|Content position start time&lt;br /&gt;
|Yes&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: 1577858515&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;
|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: 1577858785&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;
|Format: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;viewedads&amp;quot;: [{&amp;quot;adpod&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adposition&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;isdarid&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adstart&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;adend&amp;quot;:&amp;quot;utc&amp;quot;,&amp;quot;advisible&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adfocus&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;adaudio&amp;quot;:&amp;quot;0&amp;quot;}]&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 2&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;
|Format: Integer&lt;br /&gt;
&lt;br /&gt;
Example: 1&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;
|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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = is NOT DAR ID; 1 = 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;
|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;
|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;
|A487421B-XXXX-YYYY-8343-E3BBB66E44F2&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;
|55C06A30DAA5D5F382FDEB8C702EC57875CC9D91A7C78BB620053FD81DC…&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;
|B0EOFEDgD&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;
|Format: integer&lt;br /&gt;
&lt;br /&gt;
0 = not opt-out, 1 = 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;
|Format: alphanumeric, &lt;br /&gt;
&lt;br /&gt;
Example: Apple-iPhone1C2/801.293&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;
|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;
|421c76d77563afa1914846b010bd164f395bd34c2102e5e99e0cb9cf173…&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;
|DSK, MBL, OTT&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;
|AMN, APL, DVD, GGL, PSX, RKU, STB, STV, XBX&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;
|IOS, DROID, NA&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;
|DSK, PHN, TAB, STV, DVD, PMP, OTHER, STB, XBX, PSX, AMN, APL, GGL, RKU, UNWN&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;
&lt;br /&gt;
0 = not bot, 1 = 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;
|10001&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;
|US, CA, etc.&lt;br /&gt;
|}&lt;br /&gt;
Note: All parameters are case sensitive.&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=File:Phone_Playback.png&amp;diff=6668</id>
		<title>File:Phone Playback.png</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=File:Phone_Playback.png&amp;diff=6668"/>
		<updated>2024-06-03T17:27:15Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Phone Playback&lt;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6666</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6666"/>
		<updated>2024-06-03T17:23:12Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;&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;
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;'''&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 [dar|dcr|dtvr|ctvc|audio]&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;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]&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 '''_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 AWS unload manifest file format. It has the same name as the data file, but has the '''_manifest''' suffix.&lt;br /&gt;
&lt;br /&gt;
Example:&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;
 }&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;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6665</id>
		<title>Digital Measurement SEI Streaming Content Viewing</title>
		<link rel="alternate" type="text/html" href="https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_SEI_Streaming_Content_Viewing&amp;diff=6665"/>
		<updated>2024-06-03T17:16:34Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Created page with &amp;quot;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.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;/div&gt;</summary>
		<author><name>AbbyArgue</name></author>
	</entry>
	<entry>
		<id>https://engineeringportal.nielsen.com/w/index.php?title=Digital_Measurement_Ads_Audit_Beacon&amp;diff=6662</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=6662"/>
		<updated>2024-06-03T15:15:29Z</updated>

		<summary type="html">&lt;p&gt;AbbyArgue: Update to newer version of spec&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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 DAR 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 DAR measurement. If DAR 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 DAR 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: https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&amp;amp;&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 DAR 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;
! PARAM&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;
&lt;br /&gt;
== DAR Ping Implementation Details ==&lt;br /&gt;
&lt;br /&gt;
For S2S DAR 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 DAR 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>AbbyArgue</name></author>
	</entry>
</feed>