AI-generated Key Takeaways
-
The Dynamic Ad Insertion (DAI) API allows requesting and tracking DAI livestreams and is accessed via
https://dai.google.com. -
The
streammethod is used to register a DAI pod serving livestream session and returns aStreamobject with stream details and verification information. -
Various methods exist to retrieve stream segments, HLS/DASH manifests, and metadata, including
pod segment,HLS pod manifest,DASH pod manifest,DASH pod period template, andAd pod timing metadata. -
The API includes methods for media verification using a URL from the
streamendpoint and for retrieving ad metadata to build a UI. -
Several API objects like
Stream,PodMetadata,Ad, andAdBreakare used to represent stream sessions, metadata, ads, and ad breaks, along with objects for verification, rendering, and companion ads.
The Dynamic Ad Insertion API lets you request and track DAI livestreams.
Service: dai.google.com
All URIs are relative to https://dai.google.com.
Method: stream
| Methods | |
|---|---|
stream |
POST /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream
Registers a DAI pod serving livestream session. |
HTTP request
POST https://dai.google.com/ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream
Path parameters
| Parameters | |
|---|---|
network_code |
string
The publisher's Google Ad Manager network code. |
custom_asset_key |
string
The custom identifier associated this event in Google Ad Manager. |
Request body
The request body is of type application/x-www-form-urlencoded and contains the
following parameters:
| Parameters | ||
|---|---|---|
| DFP Targeting Parameters | Optional | Additional targeting parameters. |
| Override Stream Parameters | Optional | Override default values of a stream creation parameter. |
| HMAC Authentication | Optional | Authenticate using an HMAC-based token. |
Response body
If successful, the response body contains a new Stream object.
Open Measurement
The DAI API contains information for Open Measurement verification in the
Verifications field. This field contains one or more
Verification elements that list the resources and metadata required to execute
third-party measurement code in order to verify creative playback. Only
JavaScriptResource is supported. For more information, see the
IAB Tech Lab and the
VAST 4.1 spec.
Method: pod segment
| Methods | |
|---|---|
pod segment |
GET /linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format}
Creates a DAI stream for the given event ID. |
HTTP request
GET https://dai.google.com/linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format}
Path parameters
| Parameters | |
|---|---|
network_code |
string
The publisher's Google Ad Manager network code. |
custom_asset_key |
string
The custom identifier associated this event in Google Ad Manager. |
pod_identifier |
The following formats are supported: pod/{integer}
The numeric identifier for the current ad break. Ad pod IDs are
assigned incrementally for each ad break event, starting at
ad_break_id/{string}
The string identifier for the current ad break. A publisher provided Ad break ID does not have the same constraints as Ad pod ID. Any unknown Ad Break ID provided to that endpoint creates a new Ad Break for the livestream event. |
profile_name |
string
The name of the requested Google Ad Manager DAI encoding profile. The encoding profile must be one of the configured encoding profiles for the selected event. |
segment_number |
integer
The index of the requested segment within the current ad pod, starting at zero. |
segment_format |
string
The file extension associated with the requested segment format.
Accepted extensions are: |
Query parameters
| Parameters | ||||||
|---|---|---|---|---|---|---|
stream_id |
required |
string
The stream ID for the current user's session. This value is returned by
a successful request to the |
||||
sd |
required1
|
integer
The duration of the requested segment, in milliseconds. |
||||
so |
optional |
The offset of the requested segment within the ad pod, in milliseconds.
If you omit the |
||||
pd |
required2 |
integer
The duration of the ad pod, in milliseconds. |
||||
auth-token |
required |
string
A signed, url-encoded HMAC token for the current ad pod. |
||||
last |
optional |
boolean
Indicates the last segment in the ad break. Omit this parameter for all other segments. |
||||
scte35 |
optional |
string
Base64-encoded SCTE-35signal for this ad break. |
||||
cust_params |
optional |
string
A set of key-value pairs, used for Ad Manager campaign targeting. These pairs must be represented as a url-encoded query string. Example:
|
||||
Footnotes
-
sdis not required for initialization segments. ↩ -
pdis not required for events with durationless ad breaks enabled. ↩
Example
GET https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/ad_break_id/adbreak-2/profile/8b8888cf79ad43f0800482ffc035a1ac_ts_a/1.ts?so=0&sd=10000&pd=30000&stream_id=8e19cbc6-850b-404c-99d7-860aa4a674cb:TEST
GET https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profile/8b8888cf79ad43f0800482ffc035a1ac_ts_a/1.ts?so=0&sd=10000&pd=30000&stream_id=8e19cbc6-850b-404c-99d7-860aa4a674cb:TEST
Response body
If successful, the response body will be a playable stream segment matching the format and parameters specified in the request.
Method: HLS pod manifest
Retrieves an HLS ad pod manifest of a livestream that is ready for a client video player to load and play.
| Methods | |
|---|---|
GET |
GET /linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset}/{pod_identifier}.m3u8;
API to retrieve an HLS multivariant playlist for an ad pod. |
HTTP request
GET https://dai.google.com/linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}.m3u8?stream_id={stream_id}&pd={pod_duration}
Path parameters
| Parameters | |
|---|---|
network_code |
string
The publisher's Google Ad Manager network code. |
custom_asset_key |
string
The custom identifier associated this event in Google Ad Manager |
pod_identifier |
The following formats are supported: pod/{integer}
The numeric identifier for the current ad break. Ad pod IDs are
assigned incrementally for each ad break event, starting at
ad_break_id/{string}
The string identifier for the current ad break. A publisher provided Ad break ID does not have the same constraints as Ad pod ID. Any unknown Ad Break ID provided to that endpoint creates a new Ad Break for the livestream event. |
Query parameters
| Parameters | ||||||
|---|---|---|---|---|---|---|
stream_id |
Required |
string
The stream ID for the current user's session. This value is returned
by a successful request to the |
||||
pd |
Required |
integer
The duration of the ad pod, in milliseconds. |
||||
scte35 |
optional |
string
Base64-encoded SCTE-35signal for this ad break. |
||||
cust_params |
optional |
string
A set of key-value pairs, used for Ad Manager campaign targeting. These pairs must be represented as a url-encoded query string. Example:
|
||||
Response body
If successful, the response body is an HLS multivariant playlist.
Method: DASH pod manifest
Retrieves an MPEG-DASH ad pod manifest of a livestream that is ready for a client video player to load and play.
| Methods | |
|---|---|
GET |
GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/pod/{pod_id}/manifest.mpd
API to retrieve an MPEG-DASH mpd playlist for an ad pod. |
HTTP request
GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/stream/{stream_id}/pod/{pod_id}/manifest.mpd?pd={pod_duration}
Path parameters
| Parameters | |
|---|---|
network_code |
string
The publisher's Google Ad Manager network code. |
custom_asset_key |
string
The custom identifier associated this event in Google Ad Manager |
stream_id |
string
The stream ID for the current user's session. This value is returned
by a successful request to the |
pod_id |
integer
The numeric identifier for the current ad break. Ad pod IDs are
assigned incrementally for each ad break event, starting at
|
Query parameters
| Parameters | ||||||
|---|---|---|---|---|---|---|
pd |
Required |
integer
The duration of the ad pod, in milliseconds. |
||||
scte35 |
optional |
string
Base64-encoded SCTE-35signal for this ad break. |
||||
cust_params |
optional |
string
A set of key-value pairs, used for Ad Manager campaign targeting. These pairs must be represented as a url-encoded query string. Example:
|
||||
Response body
If successful, the response body is an MPEG-DASH mpd playlist.
Method: DASH pod period template
| Methods | |
|---|---|
pods |
GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json
Requests a DASH period template from Google Ad Manager. This template contains macros that you must populate with your stream parameters. Once these macros are populated, the template becomes your ad break period, and can be stitched into your DASH manifest. |
HTTP request
GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json
Path parameters
| Parameters | |
|---|---|
network_code |
string
The publisher's Google Ad Manager network code. |
custom_asset_key |
string
The custom identifier associated this event in Google Ad Manager. |
Query parameters
| Parameters | ||
|---|---|---|
stream_id |
required |
string
The stream ID for the current user's session. This value is returned by
a successful request to the |
tv |
optional |
integer
The template version. Defaults to
|
Response body
If successful, the response body contains a new
PodTemplateResponse object.
Method: Ad pod timing metadata
| Methods | |
|---|---|
ad pod timing metadata |
GET /linear/pods/v1/adv/network/{network_code}/custom_asset/{custom_asset_key}/pod.json
Retrieves ad pod timing metadata. |
HTTP request
GET https://dai.google.com/linear/pods/v1/adv/network/{network_code}/custom_asset/{custom_asset_key}/pod.json
Path parameters
| Parameters | |
|---|---|
network_code |
string
The publisher's Google Ad Manager network code. |
custom_asset_key |
string
The custom identifier associated with this livestream in Google Ad Manager. |
Query parameters
| Parameters | ||
|---|---|---|
stream_id |
Required |
string
The Ad Manager stream ID from the client video player app. |
ad_break_id |
required |
string
The next upcoming ad break ID. Ad break IDs are provided by the Stitching server or VTP, and must match across early ad break notifications, ad pod timing metadata requests, and segment redirect requests for the same ad break. The following restrictions apply to custom adbreak IDs:
|
auth-token |
required |
string
The
|
timeout |
optional |
integer
The number of milliseconds that DAI can block this request to wait for ad decisioning. Use this parameter on requests that must return populated ads on the first request, such as pre-roll ad breaks. If timeout is exceeded, the request returns a status of pending. If included, the timeout value must be between 1000 and 15000 milliseconds. If omitted, responses are not delayed to wait for ad decisioning. |
final |
optional |
boolean
Set to Defaults to |
Ad decisioning parameters |
||
pd |
optional |
integer
The duration of the ad break (in milliseconds). Also referred to as ad pod duration. If EABN is used, the pd value must match the duration provided in your ad break notification. If the durations don't match, the EABN value will be given priority. |
cust_params |
optional |
string
Custom parameters for ad break targeting, as described in the Ad Manager Help Center. |
scte35 |
optional |
string
A base64-encoded SCTE-35 signal.
If the signal is invalid, a message will be sent in the
|
Response body
If successful, the response body contains a new
AdPodTimingMetadataResponse object.
Method: media verification
After encountering an ad media identifier during playback, immediately make a request using the media_verification_url obtained from the stream endpoint, above. These requests aren't necessary for server-side-beaconing streams, where the server initiates media verification.
Requests to the media verification endpoint are idempotent.
| Methods | |
|---|---|
media verification |
GET /{media_verification_url}/{ad_media_id}
Notifies the API of a media verification event. |
HTTP request
GET https://{media-verification-url}/{ad-media-id}
Response body
media verification
returns the following responses:
HTTP/1.1 204 No Contentif media verification succeeds and all pings are sent.HTTP/1.1 404 Not Foundif the request can't verify the media due to incorrect URL formatting or expiration.HTTP/1.1 404 Not Foundif a previous verification request for this ID succeeded.HTTP/1.1 409 Conflictif another request is already sending pings at this time.
Ad media IDs
Ad media identifiers will be encoded in a separate metadata track — timed
metadata for HLS transport stream, or emsg for mp4 files. Ad media identifiers
will always begin with the string google_.
The entire text contents of the metadata entry should be appended to the ad verification URL prior to making each ad verification request.
Method: metadata
The metadata endpoint at metadata_url returns information used to build an ad
UI. The metadata endpoint isn’t available for server-side-beaconing streams,
where the server is responsible for initiating ad media verification.
| Methods | |
|---|---|
metadata |
GET /{metadata_url}/{ad-media-id}GET /{metadata_url}
Retrieves ad metadata information. |
HTTP request
GET https://{metadata_url}/{ad-media-id}
GET https://{metadata_url}
Response body
If successful, the response returns an instance of
PodMetadata.
Parsing Metadata
Metadata has three discrete sections: tags, ads, and ad breaks. The entry
point into the data is the tags section. From there, iterate through the tags
and find the first entry whose name is a prefix for the
ad media ID found in the video stream. For example, you
might have an ad media ID that looks like:
google_1234567890
Then you find a tag object named google_12345. In this case, it matches your
ad media id. Once you find the correct ad media prefix object, you can look up
ad ids, ad break ids, and the event type. Ad ids are then used to index the
ads objects and ad break ids are used to index the breaks objects.
API Objects
Stream
Stream is used to render a list of resources for a newly created stream in JSON format.| JSON representation |
|---|
{
"stream_id": string,
"media_verification_url": string,
"metadata_url": string,
"session_update_url": string,
"heartbeat_url": string,
"polling_frequency": number,
"pod_manifest_url": string,
"manifest_format": string,
} |
| Fields | |
|---|---|
stream_id |
stringThe GAM stream identifier. |
media_verification_url |
stringThe media verification URL used as base endpoint for tracking playback events. |
metadata_url |
stringMetadata URL used to poll for periodic information about upcoming stream ad events. |
session_update_url |
stringThe session's update URL used to update the targeting parameters for this stream. The original values for the targeting parameters are captured during the initial stream create request. |
heartbeat_url |
stringThe heartbeat URL, used to keep the server side beaconing stream alive, it must be pinged every {PollingFrequency} seconds. Populated for server side beaconing streams. |
polling_frequency |
numberThe polling frequency, in seconds, when requesting metadata_url or heartbeat_url. |
pod_manifest_url |
stringThe pod manifest URL template is used to generate the URL to retrieve a stream's pod manifest, corresponding to the URL of the multivariant playlist in HLS or the MPD in DASH. Populated for Livestream events of Dynamic Ad Insertion type POD_SERVING_MANIFEST. https://developers.google.com/ad-manager/api/reference/v202305/LiveStreamEventService.DynamicAdInsertionType |
manifest_format |
stringManifest format is the format of the manifest retrieved from pod_manifest_url, either dash or hls. |
PodMetadata
PodMetadata contains metadata information on ads, ad breaks, and media ID tags.| JSON representation |
|---|
{
"tags": map[string, object(TagSegment)],
"ads": map[string, object(Ad)],
"ad_breaks": map[string, object(AdBreak)],
} |
| Fields | |
|---|---|
tags |
map[string, object(TagSegment)]Map of tag segments indexed by tag prefix. |
ads |
map[string, object(Ad)]Map of ads indexed by ad ID. |
ad_breaks |
map[string, object(AdBreak)]Map of ad breaks indexed by ad break ID. |
TagSegment
TagSegment contains a reference to an ad, its ad break, and event type. TagSegment with type="progress" should not be pinged to the ad media verification endpoint.| JSON representation |
|---|
{ "ad": string, "ad_break_id": string, "type": string, } |
| Fields | |
|---|---|
ad |
stringThe ID of this tag's ad. |
ad_break_id |
stringThe ID of this tag's ad break. |
type |
stringThis tag's event type. |
AdBreak
AdBreak describes a single ad break in the stream. It contains a duration, a type (mid/pre/post) and the number of ads.| JSON representation |
|---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
| Fields | |
|---|---|
type |
stringValid break types are: pre, mid, and post. |
duration |
numberTotal ad duration for this ad break, in seconds. |
expected_duration |
numberExpected duration of the ad break (in seconds), including all ads and any slate. |
ads |
numberNumber of ads in the ad break. |
Ad
Ad describes an ad in the stream.| JSON representation |
|---|
{
"ad_break_id": string,
"position": number,
"duration": number,
"title": string,
"description": string,
"advertiser": string,
"ad_system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
"clickthrough_url": string,
"click_tracking_urls": [],
"verifications": [object(Verification)],
"slate": boolean,
"icons": [object(Icon)],
"wrappers": [object(Wrapper)],
"universal_ad_id": object(UniversalAdID),
"extensions": [],
"companions": [object(Companion)],
"interactive_file": object(InteractiveFile),
} |
| Fields | |
|---|---|
ad_break_id |
stringThe ID of this ad's ad break. |
position |
numberPosition of this ad in the ad break, starting at 1. |
duration |
numberDuration of the ad, in seconds. |
title |
stringOptional title of the ad. |
description |
stringOptional description of the ad. |
advertiser |
stringOptional advertiser identifier. |
ad_system |
stringOptional ad system. |
ad_id |
stringOptional ad ID. |
creative_id |
stringOptional creative ID. |
creative_ad_id |
stringOptional creative ad ID. |
deal_id |
stringOptional deal ID. |
clickthrough_url |
stringOptional clickthrough URL. |
click_tracking_urls |
stringOptional click tracking URLs. |
verifications |
[object(Verification)]Optional Open Measurement verification entries which list the resources and metadata required to execute third-party measurement code to verify creative playback. |
slate |
booleanOptional bool indicating the current entry is slate. |
icons |
[object(Icon)]A list of icons, omitted if empty. |
wrappers |
[object(Wrapper)]A list of Wrappers, omitted if empty. |
universal_ad_id |
object(UniversalAdID)Optional universal ad ID. |
extensions |
stringOptional list of all <Extension> nodes in the VAST. |
companions |
[object(Companion)]Optional companions that may be displayed along with this ad. |
interactive_file |
object(InteractiveFile)Optional interactive creative (SIMID) that should be displayed during ad playback. |
PodTemplateResponse
PodTemplateResponse represents the JSON payload returned to a VTP for pod stitching.| JSON representation |
|---|
{
"dash_period_template": string,
"segment_duration_ms": int64,
} |
| Fields | |
|---|---|
dash_period_template |
stringDashPeriodTemplate is the xml template for the period to be filled with appropriate data before stitching. |
segment_duration_ms |
int64SegmentDurationMS is the duration of the period segments in milliseconds. |
AdpodTimingMetadataResponse
AdpodTimingMetadataResponse contains information about the Ad Pod and how to build segment URLs for it.| JSON representation |
|---|
{
"status": string,
"ads": [object(AdRendering)],
"slate": object(SlateRendering),
"dash_representations": map[string, object(DASHRepresentation)],
"dash_adaptation_sets": map[string, object(DASHAdaptationSet)],
} |
| Fields | |
|---|---|
status |
stringDecision status for the ad pod. |
ads |
[object(AdRendering)]Array of Ad objects describing how to render the ad segment urls, indexed starting at 0. |
slate |
object(SlateRendering)Slate describing how to render the slate segment urls. |
dash_representations |
map[string, object(DASHRepresentation)]List of DASH Representations for that ad pod to be rendered in DASH manifests. |
dash_adaptation_sets |
map[string, object(DASHAdaptationSet)]List of DASH Adaptation Sets for that ad pod to be rendered in DASH manifests. |
AdRendering
AdRendering describes how to render a decisioned ad.| JSON representation |
|---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
| Fields | |
|---|---|
duration_ms |
numberDuration of the ad, in milliseconds (int). |
variants |
map[string, object(VariantRendering)]Dictionary of Variant objects (see below), indexed by the variant/profile ID, as configured from the UI. |
SlateRendering
SlateRendering describes how to render slate content.| JSON representation |
|---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
| Fields | |
|---|---|
duration_ms |
numberDuration of the slate, in milliseconds (int). |
variants |
map[string, object(VariantRendering)]Dictionary of Variant objects, indexed by variant/profile ID. Slate durations must be looped until the required slate length is reached, inserting HLS discontinuities between iterations, or looping new periods for MPEG-DASH. |
VariantRendering
VariantRendering describes one variant/profile within the ad/slate.| JSON representation |
|---|
{
"segment_extension": string,
"segment_durations": object(SegmentDurations),
} |
| Fields | |
|---|---|
segment_extension |
stringString, one of: ts, mp4, aac, ac3, ec3, m4a, m4v. Filename extension part of the segment URLs. |
segment_durations |
object(SegmentDurations)SegmentDurations objects. Each segment duration can be translated into a segment URL. |
SegmentDurations
SegmentDurations describes the duration of a sequence of segments, in a specified time unit.| JSON representation |
|---|
{
"timescale": number,
"values": [],
} |
| Fields | |
|---|---|
timescale |
numberTimescale is the number of units per second (int) Expected to be: 1000 for HLS (milliseconds) 90000 for DASH video (PTS) Audio sample rate for DASH audio. |
values |
numberArray of int segment durations, in timescale units. |
DASHRepresentation
DASHRepresentation describes Representation nodes to be rendered in DASH manifests.| JSON representation |
|---|
{
"codecs": string,
"bandwidth": number,
"width": number,
"height": number,
"frame_rate": string,
"audio_sampling_rate": number,
"audio_channel_config": object(SchemeIDURIAndValue),
} |
| Fields | |
|---|---|
codecs |
stringCodecs of the representation. |
bandwidth |
numberBandwidth of the representation. |
width |
numberWidth of the representation. |
height |
numberHeight of the representation. |
frame_rate |
stringFrame rate of the representation. |
audio_sampling_rate |
numberAudio sampling rate of the representation. |
audio_channel_config |
object(SchemeIDURIAndValue)Audio channel configuration of the representation. |
DASHAdaptationSet
DASHAdaptationSet describes AdaptationSet nodes to be rendered in DASH manifests.| JSON representation |
|---|
{ "content_type": string, "mime_type": string, "role": object(SchemeIDURIAndValue), "inband_event_stream": object(SchemeIDURIAndValue), "min_frame_rate": string, "max_frame_rate": string, "scan_type": string, "start_with_sap": string, "segment_alignment": boolean, "representations": [], } |
| Fields | |
|---|---|
content_type |
stringContent type of the adaptation set. |
mime_type |
stringMIME type of the adaptation set. |
role |
object(SchemeIDURIAndValue)Role of the adaptation set. |
inband_event_stream |
object(SchemeIDURIAndValue)Inband event stream of the adaptation set. |
min_frame_rate |
stringMinimum frame rate of the adaptation set. |
max_frame_rate |
stringMaximum frame rate of the adaptation set. |
scan_type |
stringScan type of the adaptation set. |
start_with_sap |
stringStart with SAP of the adaptation set. |
segment_alignment |
booleanSegment alignment of the adaptation set. |
representations |
stringRepresentations of the adaptation set. |
SchemeIDURIAndValue
SchemeIDURIAndValue is a pair of a scheme ID and its value.| JSON representation |
|---|
{
"scheme_id_uri": string,
"value": string,
} |
| Fields | |
|---|---|
scheme_id_uri |
stringScheme ID URI of the value. |
value |
stringValue of the scheme ID URI. |
Icon
Icon contains information about a VAST Icon.| JSON representation |
|---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
| Fields | |
|---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData contains information about an icon clickthrough.| JSON representation |
|---|
{
"url": string,
} |
| Fields | |
|---|---|
url |
string |
FallbackImage
FallbackImage contains information about a VAST fallback image.| JSON representation |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| Fields | |
|---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
Wrapper contains information about a wrapper ad. It does not include a Deal ID if it does not exist.| JSON representation |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| Fields | |
|---|---|
system |
stringAd system identifier. |
ad_id |
stringAd ID used for the wrapper ad. |
creative_id |
stringCreative ID used for the wrapper ad. |
creative_ad_id |
stringCreative Ad ID used for the wrapper ad. |
deal_id |
stringOptional deal ID for the wrapper ad. |
Verification
Verification contains information for Open Measurement, which facilitates third-party viewability and verification measurement. Currently, only JavaScript resources are supported. See https://iabtechlab.com/standards/open-measurement-sdk/| JSON representation |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| Fields | |
|---|---|
vendor |
stringThe verification vendor. |
java_script_resources |
[object(JavaScriptResource)]List of JavaScript resources for the verification. |
tracking_events |
[object(TrackingEvent)]List of tracking events for the verification. |
parameters |
stringAn opaque string passed to bootstrap verification code. |
JavaScriptResource
JavaScriptResource contains information for verification via JavaScript.| JSON representation |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| Fields | |
|---|---|
script_url |
stringURI to javascript payload. |
api_framework |
stringAPIFramework is the name of the video framework exercising the verification code. |
browser_optional |
booleanWhether this script can be run outside of a browser. |
TrackingEvent
TrackingEvent contains URLs that should be pinged by the client in certain situations.| JSON representation |
|---|
{
"event": string,
"uri": string,
} |
| Fields | |
|---|---|
event |
stringThe type of the tracking event. |
uri |
stringThe tracking event to be pinged. |
UniversalAdID
UniversalAdID is used to provide a unique creative identifier that is maintained across ad systems.| JSON representation |
|---|
{ "id_value": string, "id_registry": string, } |
| Fields | |
|---|---|
id_value |
stringThe Universal Ad ID of the selected creative for the ad. |
id_registry |
stringA string used to identify the URL for the registry website where the selected creative's Universal Ad ID is cataloged. |
Companion
Companion contains information for companion ads that may be displayed along with ad.| JSON representation |
|---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
| Fields | |
|---|---|
click_data |
object(ClickData)The click data for this companion. |
creative_type |
stringThe CreativeType attribute on the <StaticResource> node in the VAST if this is a companion of type static. |
height |
int32The height in pixels of this companion. |
width |
int32The width in pixels of this companion. |
resource |
stringFor static and iframe companions this will be the URL to be loaded and displayed. For HTML companions, this will be the HTML snippet that should be shown as the companion. |
type |
stringType of this companion. It can be either static, iframe or HTML. |
ad_slot_id |
stringThe slot ID for this companion. |
api_framework |
stringThe API framework for this companion. |
tracking_events |
[object(TrackingEvent)]List of tracking events for this companion. |
InteractiveFile
InteractiveFile contains information for interactive creative (i.e. SIMID) that should be displayed during ad playback.| JSON representation |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| Fields | |
|---|---|
resource |
stringThe URL to the interactive creative. |
type |
stringThe MIME type of the file provided as the resource. |
variable_duration |
booleanWhether this creative may ask for the duration to be extended. |
ad_parameters |
stringThe value of the <AdParameters> node in the VAST. |