Notification

Only available in Google Ad Manager 360.

Stream data logs (Alpha)

Export DAI stream data in real time

This is an alpha feature and may not be available for your network.

On this page

Real-time logs for Dynamic Ad Insertion (DAI) allow you to export stream-level data in near real time to monitor and troubleshoot serving issues. This article outlines the specifications of log file delivery, specific fields, and known issues.

Log delivery

Log files are delivered to publisher-specific storage buckets in Google Cloud, approximately every 5 minutes.

The bucket name is: gs://gdai-[NETWORK_CODE]

Tip: You can reach out to your account team for help with access to the Google Cloud storage bucket. Be prepared to either share a group in the Google Workspace that your company manages internally, or designate a user at your company who can manage a group provided for you.

File names are in the form of:

[Log Type]_[Network Code]_[Stream Type]_[Content ID]_[YYYYMMDD]_[HHMMSS]_
[Random Number].gz

Where:

  • Log Type: Either DAIAdServerInteraction or DAIManifest or DAIServedBreak
  • Network Code: Ad Manager network code
  • Stream Type: Either VOD or Linear
  • Content ID: Content source ID for VOD, Asset key for Live
  • YYMMDD, HHMMSS: Log generation time in UTC
  • Random Number: Random number

Files are gzipped and contain data as double-quoted, comma-separated values conforming to RFC4180. With regard to Section 2, point 5 of RFC4180, which states that "Each field may or may not be enclosed in double quotes", note that all data in the log files is enclosed in double quotes.

Files remain in the bucket for 7 days, after which they are removed.

Note: Fields may change with new releases. The client should always parse CSV files based on their header in case new fields are added or old fields are removed.

Manifest delivery log

This log provides information about video stream delivery. The following fields are present:

Field** Description
timestamp

INTEGER

UTC timestamp of request (in Unix time)
entry_id

STRING

Unique ID for the log entry
There is a current limitation on our system that a log entry may appear more than once. This ID can be used to de-duplicate entries.
stream_id

STRING

Unique ID assigned to every stream (also known as the SAM ID)
network_code

INTEGER

Network Code of publisher
content

INTEGER

Content source IDVOD logs only
vid

STRING

Video IDVOD logs only
asset_key

STRING

Asset key of live streamLive logs only
manifest_type

STRING

Type of video manifest:
  • MANIFEST_TYPE_HLS
  • MANIFEST_TYPE_DASH
stream_type

STRING

Type of stream:
  • STREAM_TYPE_VOD
  • STREAM_TYPE_LINEAR
request_type

STRING

Type of request:
  • REQUEST_TYPE_STREAM_CREATE
  • REQUEST_TYPE_MASTER_PLAYLIST
  • REQUEST_TYPE_MEDIA_PLAYLIST
  • REQUEST_TYPE_MPD
  • REQUEST_TYPE_SUBTITLES
  • REQUEST_TYPE_INTERSTITIALS
  • REQUEST_TYPE_IFRAME_PLAYLIST
  • REQUEST_TYPE_AD_METADATA (ID3 events)
beaconing_type

STRING

Type of ad beaconing for the stream:
  • BEACONING_TYPE_SERVER_TRIGGERED: Server side
  • BEACONING_TYPE_CLIENT_TRIGGERED: Client side (IMA SDK)
  • BEACONING_TYPE_CLIENT_INITIATED_SERVER_TRIGGERED: Client side (DAI API, and IMA SDK in near future)
http_method

STRING

Method used in the HTTP request
user_agent

STRING

User agent of device
response_code

INTEGER

HTTP response code
response_time

DOUBLE

Latency of the request (in seconds)

Served break log

This log provides information about ad breaks that were served to DAI clients. See Served Break log structure for more details and examples on how information is presented in the log. 

Field** Description
timestamp
INTEGER
UTC timestamp of request (in Unix time)
entry_id
STRING

Unique ID for the log entry

There is a current limitation on our system that a log entry may appear more than once. This ID can be used to de-duplicate entries.
stream_id
STRING
Unique ID assigned to every stream (also known as the SAM ID)
network_code
STRING
Network Code of the publisher
content
INTEGER
Content source ID VOD logs only
vid
STRING
Video ID VOD logs only
asset_key
STRING
Asset key of live stream Live logs only
break_id
STRING

ID of this served ad break


For VOD, this will be a VMAP break ID. Ex: "preroll-1", "midroll-2"
For Live, this will be a sequential break number assigned to this break by DAI. Ex: "0000000001", "0000000024"
expected_break_duration
DOUBLE
The duration that DAI requested ads for based on how long DAI expected the break to last. Live logs only
actual_break_duration
DOUBLE
The duration that DAI filled in the content. This is the summed up duration of ads, slate, and underlying content DAI filled in the ad break. Live logs only
ads_duration
DOUBLE
The duration of ad media in the ad break. For VOD this also marks the actual duration of the ad break.
slate_duration
DOUBLE
The duration of slate media in the ad break. Live logs only
ads_status
STRING
The status of ad insertion in the ad break. See Served break log structure for more details.
slate_status
STRING
The status of slate insertion in the ad break. See Served break log structure for more details.
complete
BOOLEAN
Whether the ad pod has completed. For HLS streams, this means that DAI has inserted in a cue in marker to signal the end of the ad pod. For DASH streams, this means the ad period is closed. Live logs only

Served break log structure

DAI served break logs provide information about how DAI serves ad breaks to clients. The following Ads status and Slate status tables present DAI logs information in different ads-stitching scenarios. Learn more about served break logs for live streams.

Ads status

Below is a list of ads statuses and what they indicate.

Ads status Description
ADS_STATUS_INSERTED Ad insertion was successful.
ADS_STATUS_DROPPED_UNKNOWN Ad pod was dropped for an unknown reason.
ADS_STATUS_ALL_ADS_MISSING Ad pod was dropped due to all of the ads in the pod missing.
ADS_STATUS_TOO_MANY_MIDROLLS Ad pod was dropped due to more midroll pods being returned from the ad server than ad breaks to insert them in. VOD logs only
ADS_STATUS_OUT_OF_WINDOW Ad break is partially or fully outside of the stitching window at request time, and will have underlying content stitched in instead of ads. Live logs only
ADS_STATUS_DISABLED Ads have been disabled for this stream. Live logs only
ADS_STATUS_DROPPED_FOR_PREROLL

This midroll ad pod was dropped due to an ongoing preroll ad break. Live logs only

ADS_STATUS_EXPIRED Ad pod expired because the ad request did not finish in time to be stitched into the content. Live logs only
ADS_STATUS_HOLIDAY Ad pod was dropped due to an ongoing ad holiday. Live logs only
ADS_STATUS_DROPPED_SLATE_UNAVAILABLE Ads were dropped due to an error that occurred with slate, see slate status. Live logs only

Slate status

The following are a list of slate statuses and what they indicate.

Slate status Description
SLATE_STATUS_INSERTED Slate insertion was successful.
SLATE_STATUS_SKIPPED Slate insertion was skipped due to the live stream event configuration (disabled, skip on empty).
SLATE_STATUS_DROPPED_UNKNOWN Slate was not inserted into this ad break due to unknown reasons.
SLATE_STATUS_MINIMUM_INSERTED Remainder of ad break was stitched with underlying content, with a small amount of slate to bridge between ads and content.

Ad server interaction log

This log provides information about interactions with an ad server to get ads. Reference Ad server interaction log structure for more details and examples on how information is presented in the log.

Field** Description
timestamp

INTEGER

UTC timestamp of request (in Unix time)
entry_id

STRING

Unique ID for the log entry
There is a current limitation on our system that a log entry may appear more than once. This ID can be used to de-duplicate entries.
stream_id

STRING

Unique ID assigned to every stream (also known as the SAM ID)
network_code

INTEGER

Ad Manager network code
content

INTEGER

Content source IDVOD logs only
vid

STRING

Video IDVOD logs only
asset_key

STRING

Asset key of live streamLive logs only
pod_id

INTEGER

ID of the ad break:
  • For VOD, this is the break ID from VMAP
  • For Live, this is the sequential break number
ad_server_host_name

STRING

Domain name of ad server
response_time

DOUBLE

Latency of the request (in seconds)
response_type

STRING

Type of response:
  • VAST
  • VMAP
  • UNKNOWN: set when an invalid response is received or the response timed out
response_code

INTEGER

HTTP response code

row_type

STRING

Type of log file entry:
  • PRIMARY_REQUEST
  • AD_POD
  • WRAPPER
  • INLINE

Reference the VMAP response example that includes each log file type.

vast_error_code

STRING

VAST error code
prefetch_stage

STRING

Prefetch stage (if prefetch is enabled)Live logs only
ad_position

STRING

Position of the decisioned ad in the ad pod
  • Value of selected ads start from 1
  • This field is empty for unused ad buffet ads and dropped ads
ad_id

STRING

Ad ID *
ad_system

STRING

Ad system *
ad_title

STRING

Ad title *
creative_id

STRING

Creative ID *
creative_ad_id

STRING

Creative Ad ID *
universal_ad_id_registry

STRING

Universal Ad ID registry *
universal_ad_id_value

STRING

Universal Ad ID value *
creative_duration

DOUBLE

Duration of creative

mezzanine_uri

STRING

Mezzanine uri *

Everything in the URI is escaped except the characters specified as unreserved in RFC3986.

media_uri

STRING

This is the first element found within the MediaFiles node *

Everything in the URI is escaped except the characters specified as unreserved in RFC3986.

break_start_uri

STRING

The tracking element that's used to track the start of an ad break. This data comes from VMAP response.

Everything in the URI is escaped except the characters specified as unreserved in RFC3986.

google_video_id

STRING

Unique identifier of a creative associated with this ad.

  * These values are from VAST

** Where not applicable for a particular row, some fields may be left blank

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Main menu
14032960490745048414
true
Search Help Center
true
true
true
true
true
148
false
false
false
false