Digital Measurement Content Audit Beacon: Difference between revisions
From Engineering Client Portal
(Page added for Content Audit Ping) |
SurabhiGupta (talk | contribs) No edit summary |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 12: | Line 12: | ||
*Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like "text/plain" in simple GET requests ensure that preflight requests are not invoked | *Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like "text/plain" in simple GET requests ensure that preflight requests are not invoked | ||
*200: Ping successfully received, inspect traffic to ensure no CORS errors | *200: Ping successfully received, inspect traffic to ensure no CORS errors | ||
*302: A redirect to another Nielsen domain, used for the purpose of generating a URL compatible with Nielsen streaming meters | |||
=Session & Stream= | =Session & Stream= | ||
#Sessions | #Sessions | ||
| Line 21: | Line 22: | ||
##Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same | ##Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same | ||
##If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return | ##If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return | ||
##Audit pings should be fired at the beginning and end of a stream | #Audit Pings | ||
##Audit pings should be fired at the beginning and end of a stream. These will be referred to as the Audit Start Ping and the Audit End Ping | |||
== Relay Audit Ping (Server to Server) == | |||
The relay audit ping is an alternative to the standard audit ping, which is more privacy friendly, since it does not require direct calls from the user client device to the Nielsen backend. It also allows partners to mask XFF (X-Forwarded-For) /24 (IPv4) or /48 (IPv6) as well as control HTTP Client Hints. This can however limit Nielsen’s ability to enrich the collected data using geo resolution, device classification and GIVT, if the partner chooses to severely limit or filter completely the original client IP and User Agent. As a result the implementation of relay audit ping may require additional characteristics to be sent via the exposure logs in order to compensate for the loss of signal. For more details please refer to the Viewing Spec. | |||
The relay audit ping is implemented using a two legged approach described below. The additional pairing ping becomes necessary, since relayed audit ping cannot be used to redirect the user client for panel matching purposes. | |||
# Pairing Ping. This is an end-user-device-initiated ping with partner-owned root domain and SessionID included in subdomain. It is used for panel matching. Nielsen meters will be trained to recognize the unique domain format. Example: <nowiki>https://2576459933726989.darnuid</nowiki>.[publisher-domain].com | |||
# Relay Audit Ping. This is an end-user-device-initiated audit ping relayed by the partner's backend (via proxy server) with furnished URL parameters outlined below. Example: <nowiki>https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&intid=fgrclqou0dzb1u4jq2jecoyvza&apid=FCGG4EC1-E0f4-B465-Ef40-070AAD3173A1&sessionid=2576459933726989&product=dtvr&createtm=1643858542</nowiki> | |||
[[File:Audit Ping.png|center]] | |||
=Query Parameters= | =Query Parameters= | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 41: | Line 53: | ||
|Client | |Client | ||
|Format: alphanumeric Example: Random GUID: <code>ce6c1c95-de3e-431e-b11e-77…</code> | |Format: alphanumeric Example: Random GUID: <code>ce6c1c95-de3e-431e-b11e-77…</code> | ||
|- | |||
|streamid | |||
|ID for every new instance of exposure to a different asset | |||
|Yes | |||
|Client | |||
|Example: Random GUID: <code>ce6c1c95-de3e-431e-b11e-77…</code> | |||
|- | |- | ||
|pingtype | |pingtype | ||
| Line 56: | Line 74: | ||
|Yes | |Yes | ||
|Client | |Client | ||
|Format: alphanumeric, Example: <code>dcr</code>, <code>dtvr</code>, <code>dar | |Format: alphanumeric, Example: <code>dcr</code>, <code>dtvr</code>, <code>dar</code> | ||
|- | |- | ||
|uoo | |uoo | ||
| Line 70: | Line 88: | ||
|Optional, or in S2S file | |Optional, or in S2S file | ||
|Client | |Client | ||
|<code>A487421B-XXXX-YYYY-8343-E3BBB66E44F2</code> | |Only for Start Mobile Ping. User for demo assignment. Required, if no other interoperable id match exists for the integration | ||
Example:<code>A487421B-XXXX-YYYY-8343-E3BBB66E44F2</code> | |||
|- | |- | ||
|hhid | |<s>hhid</s> | ||
|House Hold ID. Used as a primary match key to external data sources. | |<s>House Hold ID. Used as a primary match key to external data sources.</s> | ||
|Optional, or in S2S file. | |<s>Optional, or in S2S file.</s> | ||
|Client | |<s>Client</s> | ||
|<code>B0EOFEDgD</code> | |<code><s>B0EOFEDgD</s></code> | ||
|- | |- | ||
|createtm | |createtm | ||
| Line 83: | Line 102: | ||
|Client | |Client | ||
|Format: Unix timestamp in 32-bit unsigned int in seconds Example: <code>1577858505</code> | |Format: Unix timestamp in 32-bit unsigned int in seconds Example: <code>1577858505</code> | ||
|- | |||
|intid | |||
|Single ID assigned per integration for all audit pings across platforms | |||
|Yes | |||
|Nielsen | |||
|Example: | |||
xpgclqou0dzb1ugjq2jgcoyvza | |||
|}'''Audit Ping Start Example:''' | |}'''Audit Ping Start Example:''' | ||
<code>https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=0&product=ctv&uoo=1&createtm=1577858505&devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB</code> | <code>[https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=0&product=ctv&uoo=1&createtm=1577858505&devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&intid=fgrclqou0dzb1u4jq2jecoyvza&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=0&product=ctv&uoo=1&createtm=1577858505&devid=4AB6FCE2-2848-4FA8-9BE3-46E206206AB]</code> | ||
'''Audit Ping End Example:''' | '''Audit Ping End Example:''' | ||
<code>https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=2&product=ctv&uoo=1&createtm=1577859637</code> | <code>[https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=2&product=ctv&uoo=1&createtm=1577859637 https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&intid=fgrclqou0dzb1u4jq2jecoyvza'''intid=fgrclqou0dzb1u4jq2jecoyvza'''&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=2&produ]</code> | ||
<code>[https://secure-audit.imrworldwide.com/cgi-bin/gn?prd=audit&apid=FC984EC1-E044-B465-E040-070AAD3173A1&sessionid=2576459933726989&streamid=3679422587354472&pingtype=2&product=ctv&uoo=1&createtm=1577859637 ct=ctv&uoo=1&createtm=1577859637]</code> | |||
Latest revision as of 17:35, 27 April 2026
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.
Ping Structure
Ping is executed with following convention:
https://[to_be_provided].imrworldwide.com/cgi-bin/gn?prd=audit&+[query parameters]
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.
Under normal operating circumstances, the audit ping server returns the following codes:
- Audit ping servers reject cross-origin HTTP requests with preflight. To ensure that audit ping requests are accepted, allowable Content-Types like "text/plain" in simple GET requests ensure that preflight requests are not invoked
- 200: Ping successfully received, inspect traffic to ensure no CORS errors
- 302: A redirect to another Nielsen domain, used for the purpose of generating a URL compatible with Nielsen streaming meters
Session & Stream
- Sessions
- Optionally, a new Session ID may be created when a new player is created
- If more than one video player exists within the same App (e.g. picture in picture) a different Session ID is required for each
- Streams
- New Stream ID is generated for each new video stream.
- 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)
- Stream ID remains the same independent of fast-forward, rewind, pause, events assuming the asset remains the same
- If playback is suspended for greater than 30mins (paused or otherwise suspended), a new Stream ID should be assigned upon return
- Audit Pings
- Audit pings should be fired at the beginning and end of a stream. These will be referred to as the Audit Start Ping and the Audit End Ping
Relay Audit Ping (Server to Server)
The relay audit ping is an alternative to the standard audit ping, which is more privacy friendly, since it does not require direct calls from the user client device to the Nielsen backend. It also allows partners to mask XFF (X-Forwarded-For) /24 (IPv4) or /48 (IPv6) as well as control HTTP Client Hints. This can however limit Nielsen’s ability to enrich the collected data using geo resolution, device classification and GIVT, if the partner chooses to severely limit or filter completely the original client IP and User Agent. As a result the implementation of relay audit ping may require additional characteristics to be sent via the exposure logs in order to compensate for the loss of signal. For more details please refer to the Viewing Spec. The relay audit ping is implemented using a two legged approach described below. The additional pairing ping becomes necessary, since relayed audit ping cannot be used to redirect the user client for panel matching purposes.
- Pairing Ping. This is an end-user-device-initiated ping with partner-owned root domain and SessionID included in subdomain. It is used for panel matching. Nielsen meters will be trained to recognize the unique domain format. Example: https://2576459933726989.darnuid.[publisher-domain].com
- Relay Audit Ping. This is an end-user-device-initiated audit ping relayed by the partner's backend (via proxy server) with furnished URL parameters outlined below. Example: https://audit.imrworldwide.com/cgi-bin/gn?prd=audit&intid=fgrclqou0dzb1u4jq2jecoyvza&apid=FCGG4EC1-E0f4-B465-Ef40-070AAD3173A1&sessionid=2576459933726989&product=dtvr&createtm=1643858542
Query Parameters
| Parameter | Description | Required | Specified | Format / Example |
|---|---|---|---|---|
| apid | Server App ID assigned by Nielsen | Yes | Nielsen | Example: A487421B-XXXX-YYYY-8343-E3BBB66E44F2
|
| sessionid | 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. | Yes | Client | Format: alphanumeric Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…
|
| streamid | ID for every new instance of exposure to a different asset | Yes | Client | Example: Random GUID: ce6c1c95-de3e-431e-b11e-77…
|
| pingtype | Indicator for ping type: "start" or "end" audit ping | Yes | Client | Format: integer,
|
| product | Indicates which product audit ping corresponds to | Yes | Client | Format: alphanumeric, Example: dcr, dtvr, dar
|
| uoo | User opt out flag for demographic measurement | Yes, if devid/HHID provided | Client | Format: integer
|
| devid | Mobile Ad ID (IDFA, ADID), Connected Device ID | Optional, or in S2S file | Client | Only for Start Mobile Ping. User for demo assignment. Required, if no other interoperable id match exists for the integration
Example: |
| ||||
| createtm | Time ping is initiated | Yes | Client | Format: Unix timestamp in 32-bit unsigned int in seconds Example: 1577858505
|
| intid | Single ID assigned per integration for all audit pings across platforms | Yes | Nielsen | Example:
xpgclqou0dzb1ugjq2jgcoyvza |
Audit Ping Start Example:
Audit Ping End Example:
