Digital Measurement SEI Streaming Content Viewing: Difference between revisions

From Engineering Client Portal

(Created page with "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.")
 
No edit summary
Line 1: Line 1:
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.
This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.
== Delivery Specifications ==
Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats.
* All prefix labels and file names should be lowercase except for app ids.
* Supported format are:
** Text files with utf-8 encoding in JSON Lines format;
** Apache Parquet format with snappy compression;
* All data files have extensions to indicate the file format (.json | .parquet)
* Data file can be partitioned into multiple parts with min size of 256MB
* 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
=== S3 Bucket and Prefix Naming Convention ===
useast1-nlsn-w-dig-sei-<'''partnerid'''>-feeds-'''<env>/<filetype>/<split>/yyyy/mm/dd/hh/<object>'''
{| class="wikitable"
|'''Name'''
|'''Description'''
|-
|partnerid
|Abbreviation provided by Nielsen for each provider or publisher
|-
|env
|“test” or “prod”
|-
|filetype
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:
* exposure is reserved for multi-product files
* <product>-exposure is for single product files, where <product> is [dar|dcr|dtvr|ctvc|audio]
|-
|split
|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).
|-
|yyyy/mm/dd/hh
|
* yyyy - year
* mm - month
* dd - date padded with 0 example 01, 02,..., 31
* hh - hour padded with 0 example 00, 02,..., 23
|}
=== S3 Bucket and Prefix Naming Convention ===
<partnerid>_<filetype>_<intid>_<appid>_<starttime>_<endtime>.[json|parquet]
{| class="wikitable"
|'''Name'''
|'''Description'''
|-
|partnerid
|Abbreviation provided by Nielsen for each provider or publisher
|-
|filetype
|exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:
* '''exposure''' is reserved for multi-product files
* '''<product>-exposure''' is for single product files, where '''<product>''' is '''[dar|dcr|dtvr|ctvc|audio]'''
|-
|initid
|integration id: unique identifier provided by Nielsen
|-
|appid
|Nielsen-provided server application identifier
|-
|starttime
|start date and hour of the data in the file in UTC
* Example format: yyyymmddhh
|-
|endtime
|end date and hour (not inclusive)  of the data in the file in UTC
* Example format: yyyymmddhh
|}
=== Success File ===
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).
=== Manifest File ===
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.
Example:
{
   "entries": [
     {"url":"s3://bucket/prefix/0000_object_00.snappy.parquet", "mandatory":true},
     {"url":"s3://bucket/prefix/0001_object_00.snappy.parquet", "mandatory":true},
     {"url":"s3://bucket/prefix/0002_object_00.snappy.parquet", "mandatory":true},
     {"url":"s3://bucket/prefix/0003_object_00.snappy.parquet", "mandatory":true}
   ],
   "meta": {
     "schema_version": "S2SV1.7.0",
     "accreditation_status": "0",
     "start_time": "1710154800",
     "end_time": "1710158399",
     "record_count": 55
   }
}
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:

Revision as of 17:23, 3 June 2024

This interface specification depicts the file schema required to supply Nielsen with response-level Viewing data in a “Server-to-Server” relationship for incorporation into the Nielsen One Content and/or Nielsen One Ads products.

Delivery Specifications

Files should be delivered at a fixed cadence in a dedicated S3 bucket following the outlined in this spec prefix and object naming conventions and data formats.

  • All prefix labels and file names should be lowercase except for app ids.
  • Supported format are:
    • Text files with utf-8 encoding in JSON Lines format;
    • Apache Parquet format with snappy compression;
  • All data files have extensions to indicate the file format (.json | .parquet)
  • Data file can be partitioned into multiple parts with min size of 256MB
  • 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

S3 Bucket and Prefix Naming Convention

useast1-nlsn-w-dig-sei-<partnerid>-feeds-<env>/<filetype>/<split>/yyyy/mm/dd/hh/<object>

Name Description
partnerid Abbreviation provided by Nielsen for each provider or publisher
env “test” or “prod”
filetype exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:
  • exposure is reserved for multi-product files
  • <product>-exposure is for single product files, where <product> is [dar|dcr|dtvr|ctvc|audio]
split 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).
yyyy/mm/dd/hh
  • yyyy - year
  • mm - month
  • dd - date padded with 0 example 01, 02,..., 31
  • hh - hour padded with 0 example 00, 02,..., 23

S3 Bucket and Prefix Naming Convention

<partnerid>_<filetype>_<intid>_<appid>_<starttime>_<endtime>.[json|parquet]

Name Description
partnerid Abbreviation provided by Nielsen for each provider or publisher
filetype exposure, dcr-exposure, dar-exposure, audio-exposure, etc., where:
  • exposure is reserved for multi-product files
  • <product>-exposure is for single product files, where <product> is [dar|dcr|dtvr|ctvc|audio]
initid integration id: unique identifier provided by Nielsen
appid Nielsen-provided server application identifier
starttime start date and hour of the data in the file in UTC
  • Example format: yyyymmddhh
endtime end date and hour (not inclusive)  of the data in the file in UTC
  • Example format: yyyymmddhh

Success File

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).

Manifest File

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.

Example:

{
  "entries": [
    {"url":"s3://bucket/prefix/0000_object_00.snappy.parquet", "mandatory":true},
    {"url":"s3://bucket/prefix/0001_object_00.snappy.parquet", "mandatory":true},
    {"url":"s3://bucket/prefix/0002_object_00.snappy.parquet", "mandatory":true},
    {"url":"s3://bucket/prefix/0003_object_00.snappy.parquet", "mandatory":true}
  ],
  "meta": {
    "schema_version": "S2SV1.7.0",
    "accreditation_status": "0",
    "start_time": "1710154800",
    "end_time": "1710158399",
    "record_count": 55
  }
}

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: