Sweden SDK Metadata: Difference between revisions

From Engineering Client Portal

No edit summary
Line 3: Line 3:


= Digital Metadata =
= Digital Metadata =
Digital Metadata can passed through key-values using the Nielsen reserved keys. The keys and values are listed by product below.  
Digital Metadata can pass through key values using the Nielsen reserved keys. The keys and values are listed by the product below.  


== Digital Content Ratings (DCR) Metadata ==
== Content Metadata==
=== Video Metadata ===
<!--


==== Example Video Metadata Object ====
<syntaxhighlight lang="javascript">
var contentMetadataObject =
  type:          'content',
  assetid:        'VID-123456',
  program:        'The Big Bang Theory',
  title:          'The Pants Alternative S03E18',  //no abbreviations or shorthand
  length:        '1320',  //lengths in seconds
  airdate:        '2021-03-21T12:00:00Z',
  isfullepisode:  'y',
  adloadtype:    '2',
  segB:          'custom segment B', // optional
  segC:          'custom segment C', // optional
  crossId1:      'Standard Episode ID', // optional
  crossId2:      'Content Originator' //optional
};
</syntaxhighlight>
=== Ad Metadata ===
The Ad Metadata (if applicable) should be passed for each individual ad.
{| class="wikitable"
{| class="wikitable"
|-
|-
! Keys !! Description !! Values !! Required
! Nielsen Key !! MMS Attribute Name/Field Name !! Description !! Values !! Required
|-
|-
| type || type of Ad || <code>'preroll'</code>,  <code>'midroll'</code>,  <code>'postroll'</code> <br> <code>'ad'</code>  - If specific type can not be identified.||
| type ||  || type of asset || "content" || yes
|-
|-
| assetid || unique ID assigned to Ad || custom <br>(no [[Special Characters]]) || ✓
| assetid || Content ID, mms_tid || unique ID assigned to an asset within the same media house. || "For content on simulcast channels, this has a standard format: simulcast_channelnumber (e.g. for Channel TV4, the expected value is: simulcast_29).
|}
A complete list of channel reference libraries with channel numbers is on the  [https://mms.se/?page_id=108 MMS homepage]


==== Example Ad Object ====
For VoDs, it does not need to follow the simulcast_channelnumber format.
<syntaxhighlight lang="javascript">
var adMetadataObject =
  type:    'preroll',
  assetid: 'AD-1'
};
</syntaxhighlight>


=== Static Metadata ===
Length limit: 20 characters
{| class="wikitable"
[https://engineeringportal.nielsen.com/docs/Special_Characters no special characters] || yes ||
|-
| length || Clip Length, ns_st_cl || length of content in seconds || Length of content in seconds.
- for 24/7 live stream, 86400
- for event-Live streams, the planned length
- for VoD, video length || yes
|-
| client_passthrough_parameters || MMS Values, mms_values || pass-through parameters || Example || mandatory for clients that have DAI service (Telia, Telenor, Canal-digital, Comhem, Boxer, Sappa, Discovery, Cmore)
|-
| Example || Example || Example || Example || Example
|-
|-
! Key !! Description !! Data Type !! Value !! Required?
| Example || Example || Example || Example || Example
|-
|-
| type || asset type || fixed || <code>'static'</code> || Yes
| Example || Example || Example || Example || Example
|-
|-
| assetid || Unique ID for each article || dynamic || custom <br>(no [[Special Characters]]) || Yes
| Example || Example || Example || Example || Example
|-
|-
| section || section of each site (e.g. section value should be first level in page URL: website.com/section). Limit to 25 unique values || dynamic || custom <br>(no [[Special Characters]]) || Yes
| Example || Example || Example || Example || Example
|-
|-
| segA || custom segment for reporting: Limit to 25 unique values across custom segments (segA + segB + segC) || dynamic || custom || No
| Example || Example || Example || Example || Example
|-
|-
| segB || custom segment for reporting: Limit to 25 unique values across custom segments (segA + segB + segC) || dynamic || custom || No
| Example || Example || Example || Example || Example
|-
|-
| segC || custom segment for reporting: Limit to 25 unique values across custom segments (segA + segB + segC) || dynamic || custom || No
| Example || Example || Example || Example || Example
|}
|}


The values passed through the Nielsen keys will determine the breakouts that are seen in reporting. The custom segments (A, B & C) will roll into the sub-brand. To not use custom segments A, B and C, do not pass any value in these keys.


==== Example Static Metadata Object ====
 
 
 
 
example of metadata object for content
 
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var contentMetadataObject =
var contentMetadataObject = {
{
   "assetid": "cz-500358-98731568435405",
   type: 'static',  
   "type": "content",
   assetid: 'HHF887465-9486', // *DYNAMIC METADATA*: unique ID for each article **REQUIRED**
   "program": "Vítejte na svobodě",
   section: 'SPORTS', // *DYNAMIC METADATA*: section of site **REQUIRED**
   "title": "2. díl - 20.6.2018 20:00",
   segA: 'HD Videos', // *DYNAMIC METADATA*: custom segment
   "length": "3359",
   segB: '', // *DYNAMIC METADATA*: custom segment
   "airdate": "20180620 20:00:00",
   segC: ''  // *DYNAMIC METADATA*: custom segment
  "isfullepisode": "y",
};
  "crossId1": "915 954 39504",
</syntaxhighlight>
  "nol_c1": "p1,",
 
  "nol_c2": "p2, 651678089925925",
== Digital TV Ratings (DTVR) Metadata ==
  "segB": "011",
=== Content Metadata ===
  "segC": "",
{| class="wikitable"
   "adloadtype": "2",
|-
   "hasAds": "1"
! Key !! Description !! Values !! Required
|-
| type || type of asset || "content" || ✓
|-
| adModel || linear vs dynamic ad model || * 1) - Linear – matches TV ad load * 2) Dynamic – Dynamic Ad Insertion (DAI)    || ✓
|-
|}
====Example Content Object====
<syntaxhighlight lang="javascript"> var contentMetadataObject =
   type: 'content',
   adModel: '1'
};
};
</syntaxhighlight>
</syntaxhighlight>
==== Custom Variables Extension ====
If you are looking for additional reporting options, reach out to us. We have a [[Custom Variables Extension]] and can work with you to obtain your desired reporting.


== Ad Metadata==


{| class="wikitable"
{| class="wikitable"
|-
|-
! Key
! Nielsen Key !! MMS Attribute Name/Field Name !! Description !! Values !! Required  
! Description
! style="width: 14%;" | Values
! style="width: 12%;" | Required for Audio/Video?
! style="width: 12%;" | Required for Static (page)?
! Reported for
|-
| clientid || Brand value is automatically populated through the App ID provided. The value passed here will override the default value. (e.g. Multiple brands in App) || custom || Optional || Optional || Audio / Video and Static Measurement
|-
| subbrand || VCID value is automatically populated through the App ID provided. This value passed here will override the default value. (e.g. Multiple Sub-brands in App) || custom || Optional || Optional || Audio / Video and Static Measurement
|-
| type ||
Type of measurement:
*audio / video – "content"
*page – "static"
*ad – "preroll", "midroll" or "postroll"
|| "content", "static" || Mandatory || Mandatory ||
|-
| assetid || ID assigned to content. '''Must be unique and consistent''' across all content at the episode level, as well as across platforms (e.g. iOS and Android use the same ID). || custom<br>(no [[Special Characters]]) || Mandatory || Not Required ||
|-
| section || Section of site || custom || Not Required || Mandatory ||
|-
| isfullepisode || Full episode flag ||
*"y" or "lf" - full episode
*"n" or "sf" - short form
|| Mandatory || Not Required ||
|-
| program || Program name || custom || Mandatory || Not Required || Audio / Video Measurement
|-
| title || Episode title || custom || Mandatory || Not Required || Audio / Video Measurement
|-
| length || Length of content in seconds for VOD. 0 may be used for Live content if the exact content length is not known.  || custom || Mandatory || Not Required ||
|-
|-
| segA || Segment A (this is not available for audio / video Measurement reporting as the episode title is reported) || custom || Not Required || Not Required || Static Measurement
| assetid || Co || || d || yes ||  
|-
|-
| segB || Segment B || custom || Not Required || Not Required || Audio / Video and Static Measurement
| type || 0 || “1”  || “1”  || = 2 ||
|-
|-
| segC || Segment C || custom || Not Required || Not Required || Audio / Video and Static Measurement
| program || 0 || “1”  || “1”  || = 2 ||  
|-
|-
| crossId1 || Standard episode ID. Gracenote/TMS ID should be used when available. Must be unique per episode. || custom || Optional || Not Required ||
| title || 0 || “1”  || “1”  || = 2 ||
|-
|-
| crossId2 || Content originator (required only for distributors) || custom || Optional || Not Required ||
| length || 0 || “1”  || “1”  || = 2 ||  
|-
|-
| airdate || Original (local) air date and time (Eastern Time for US) || YYYYMMDD HH24:MI:SS || Mandatory || Not Required ||
| airdate || 0 || “1”  || “1”  || = 2 ||
|-
|-
| pipmode ||
| isfullepisode || 0 || “1”  || “1”  || = 2 ||  
Current state of picture-in-picture (PIP) mode on device.
*"true" if audio / video measurement is displayed in PIP mode
*"false" if audio / video measurement is displayed in regular mode
|| "true", "false" || Optional || Not Required || Audio / Video Measurement
|-
|-
| adloadtype ||
| crossId1 || 0 || “1”  || “1”  || = 2 ||  
Type of ad load:
#Linear - matches TV ad load
#Dynamic - Dynamic Ad Insertion (DAI)
|| "1" - Linear
"2" - Dynamic
|| Mandatory for DCR || Not Required || DCR
|-
|-
| adModel ||
| c1 || 0 || “1”  || “1”  || = 2 ||  
Type of ad model:
#Linear - matches TV ad load
#Dynamic - Dynamic Ad Insertion (DAI)
|| "1" - Linear
"2" - Dynamic
|| Mandatory for DTVR || Not Required || DTVR
|-
|-
| progen || Genre (required only for non-TV originated content). See [[DCR OTT Genre List]] for acceptable values. || e.g. DD for Daytime Drama || Required for non-TV content || Not Required
| c2 || 0 || “1”  || “1”  || = 2 ||  
|}
 
'''clientid & subbrand (vcid)'''
By default, clientid and subbrand are setup in Nielsen backend configuration to capture brand and sub-brand information. The fields get populated from backend for a registered client appid. But if an app contains multiple brands and sub-brands and client is willing to give credit to another brand or sub-brand then :
*Client app developer can override the clientid and subbrand (brand and sub-brand info.) in [[loadMetadata]] call to get a proper measurement for a desired brand and sub-brand.
**If no clientid and subbrand are specified in CMS of a content and an ad, default values reported in the Configuration will be reported.
**If clientid and subbrand are specified in CMS of the content or ad, the most recent clientid and subbrand will be reported in subsequent pings. To report with a different clientid and subbrand, include the new values for the keys in their subsequent [[loadMetadata]] call.
'''Picture-in-picture (PIP) mode'''
Once the app detects PIP mode, call [[loadMetadata]] with the same set of assetids, values and with one additional parameter "pipmode": "true". Once PIP mode is disabled in the device, call [[loadMetadata]] again with "pipmode":"false".
 
==== Custom Variables Extension ====
Contact Nielsen Technical Account Manager (TAM) to configure any custom variables, as needed for implementing the application.
 
See [[Custom Variables Extension]] for more information.
 
==== Advertisement Metadata ====
{| class="wikitable"
|-
|-
! Key !! Description !! Values !! Required for Audio / Video? !! Required for Static (page)
| segB || 0 || “1”  || “1”  ||  = 2 ||
|-
|-
| type || Type of ad || "preroll"
| segC || 0 || “1”  || “1”  ||  = 2 ||  
"midroll"
"postroll"
|| Mandatory || Not Required
|-
|-
| assetid || An ID assigned to the advertisement. Can be an internal ID, an ID provided by the ad server, or a randomly generated ID. Must be unique across all ads || custom || Mandatory || Not Required
| adloadtype || 0 || “1”  || “1”  ||  = 2 ||  
|-
|-
| title || Title of the advertisement || "MyAdName" || Mandatory || Not Required
| hasAds || P|| zí) || “0”  || =1
|}
|}
=== Passing Metadata ===
The required metadata can be passed as key values through the loadMetadata method. The sample code below shows a metadata objects for various assets.
'''Audio / Video Measurement Asset'''
Type should be "content"
<syntaxhighlight lang="json">    {
      "type": "content",
      "assetName": "myassetName",
      "length": "300.0",
      "title": "myTitle",
      "program": "myProgram",
      "censuscategory": "myCensusCategory",
      "assetid": "myAssetId",
      "channelName": "myChannel",
      "adloadtype": "2",
      "segB": "segmentB",
      "segC": "segmentC",
      "isfullepisode":"y",
      "crossId1": "Reference11",
      "crossId2": "Reference22",
      "airdate": "20161013 20:00:00"
    }</syntaxhighlight>
'''Static (Page) Measurement Asset'''
Type should be "static"
<syntaxhighlight lang="json">    {
      "type": "static",
      "assetid": "static123",
      "section": "siteSection",
      "segA": "segmentA",
      "segB": "segmentB",
      "segC": "segmentC"
    }</syntaxhighlight>
'''For any of the ad types'''
<syntaxhighlight lang="json">    {
        "type": "midroll",
        "length": "30.0",
        "assetid": "myMidrollAssetId",
        "adloadtype": "2",
        "tv": "true",
        "dataSrc": "cms"
    }</syntaxhighlight>
<blockquote>'''Note''': In case the individual ad details are not available, send ad pod (presence) details through the <code>loadMetadata</code> and playhead position through <code>setPlayheadPosition</code>.</blockquote>
'''loadMetadata'''
The object can then be passed when calling [[loadMetadata]].
<syntaxhighlight lang="java">    loadMetadata(jsonMetadataObject);</syntaxhighlight>
-->

Revision as of 09:36, 21 May 2021

Engineering Portal breadcrumbArrow.png Digital breadcrumbArrow.png International DCR breadcrumbArrow.png Sweden SDK Metadata

Digital Metadata

Digital Metadata can pass through key values using the Nielsen reserved keys. The keys and values are listed by the product below.

Content Metadata

Nielsen Key MMS Attribute Name/Field Name Description Values Required
type type of asset "content" yes
assetid Content ID, mms_tid unique ID assigned to an asset within the same media house. "For content on simulcast channels, this has a standard format: simulcast_channelnumber (e.g. for Channel TV4, the expected value is: simulcast_29).

A complete list of channel reference libraries with channel numbers is on the MMS homepage

For VoDs, it does not need to follow the simulcast_channelnumber format.

Length limit: 20 characters no special characters || yes ||

length Clip Length, ns_st_cl length of content in seconds Length of content in seconds.

- for 24/7 live stream, 86400 - for event-Live streams, the planned length - for VoD, video length || yes

client_passthrough_parameters MMS Values, mms_values pass-through parameters Example mandatory for clients that have DAI service (Telia, Telenor, Canal-digital, Comhem, Boxer, Sappa, Discovery, Cmore)
Example Example Example Example Example
Example Example Example Example Example
Example Example Example Example Example
Example Example Example Example Example
Example Example Example Example Example
Example Example Example Example Example
Example Example Example Example Example
Example Example Example Example Example




example of metadata object for content

var contentMetadataObject = {
  "assetid": "cz-500358-98731568435405",
  "type": "content",
  "program": "Vítejte na svobodě",
  "title": "2. díl - 20.6.2018 20:00",
  "length": "3359",
  "airdate": "20180620 20:00:00",
  "isfullepisode": "y",
  "crossId1": "915 954 39504",
  "nol_c1": "p1,",
  "nol_c2": "p2, 651678089925925",
  "segB": "011",
  "segC": "",
  "adloadtype": "2",
  "hasAds": "1"
};

Ad Metadata

Nielsen Key MMS Attribute Name/Field Name Description Values Required
assetid Co d d yes
type 0 “1” “1” = 2
program 0 “1” “1” = 2
title 0 “1” “1” = 2
length 0 “1” “1” = 2
airdate 0 “1” “1” = 2
isfullepisode 0 “1” “1” = 2
crossId1 0 “1” “1” = 2
c1 0 “1” “1” = 2
c2 0 “1” “1” = 2
segB 0 “1” “1” = 2
segC 0 “1” “1” = 2
adloadtype 0 “1” “1” = 2
hasAds P zí) “0” =1