Set up a live stream for DAI

Ad Manager DAI can stitch ads into either 24/7 linear streams or live streams.

Three requirements must be completed before you create a live linear stream:

  1. Ensure your content stream meets Ad Manager DAI specifications
  2. Create a slate to fill content gaps
  3. Create an ad tag for DAI

Set up a new live stream

  1. Sign in to Google Ad Manager.

  2. Click Video and then Live streams and then New live stream.

  3. Enter a Name. This name is only displayed in Ad Manager, not externally. It can be a name for your 24/7 linear stream or for a live stream that you're streaming.

  4. Define your live stream settings. Depending on the streaming format you choose (DASH or HLS), some of these options may not be available.

  5. Save your live stream:

    • Save and activate: Saves your live stream to go live on the start date you've specified. You cannot edit a live stream saved in this state until it's paused, which stops the stream for viewers.
    • Save and activate later: Saves your live stream in a pending state and allows you to activate later. Your live stream does not go live until you activate.

The live stream should now appear on the "Live streams" page.

General settings

Setting Description

Streaming format

Ad Manager currently supports DASH and HLS media file streaming formats.

Dynamic Ad Insertion type

How live stream ads will be inserted.

  • Linear: Used when video content and ads are stitched together into a unique video manifest per user.
  • Segment redirect: Used when the same manifest is used for all users but the ad break segment URLs are redirected to unique ad segments per user.

Start time

The time when Ad Manager can begin to ingest the stream. Click Immediately if your stream is available now.

If your stream is intended for a live event, it's best to start several days before the actual event for testing. At minimum, you should choose a time 15 minutes before the stream becomes available.

End time

If your stream will run 24/7, click Unlimited. Otherwise, if you are streaming an event, choose an end time when there should be zero viewers of the stream. You may want to add a buffer of at least 15 minutes relative to the scheduled end time of the event.

DAI authentication keys

Used to authenticate stream requests  to the DAI SDK API.

Slate

Slates are served when there are gaps in a live stream commercial break that cannot be filled with a dynamically-served ad.

If you don't want to show the network default slate, click Override and choose a slate to run for this live stream only. You are not billed for slates.

Content stream settings

Setting Description

Content stream

The URL of the content stream source. This URL points to the master m3u8 of your live HLS stream. This can be the URL of an ongoing content stream (for example, a television channel) or a single stream (for example, a sports match).

See details about the HLS specification for DAI.

(Optional) If you have backup encoders, click Add backup stream.

Master playlist refresh     

How often the master playlist should be refreshed.

  • Automatic: Automatically refresh the master playlist every few minutes.
  • Manual: Ad Manager should display a refresh button that lets you to control when and how often the playlist is refreshed.

Playlist type

The type of the playlist associated with this live stream.

  • Event: When media segments can only be added to the end of the playlist. This allows viewers to scrub back to the beginning of the playlist. This type should be used for streams with the "#EXT-X-PLAYLIST-TYPE:EVENT" tag.

    Event playlists are not supported with SSB.

  • Live: (Default for all live streams) When there are no restrictions on whether media segments can be removed from the beginning of the playlist. This should be used for streams without the "#EXT-X-PLAYLIST-TYPE" tag.

Live stream content configurations
(Optional)

If your external CDN requires authentication, select an existing CDN configuration, or click to create a new configuration.

DVR window
(Optional)

The duration (in seconds) of content a viewer is able to scrub back to when watching a live stream. This is only available with the "Live" playlist type.

The DVR window only applies to streams created with client-side beaconing. By default, those streams have the same playlist length as the input stream.

Relative playlist URLs

Enable relative, rather than fixed, playlist URLs (relative to the delivery prefix in your CDN configuration).

Use whitelisted IPs

Enable to allow specific whitelisted IP addresses to access this content source, regardless of blocked geographic regions.

Ad break settings

Setting Description

Master ad tag

Create a default ad tag for DAI and enter it here. You can alternately click Create tag and follow the DAI-specific instruction to create an ad tag.

Empty ad break fill type

The type of video content displayed in an ad break when the VAST response is empty. Partially filled ad breaks always fill the remaining time with slate. However, when an empty VAST response is received, you can choose whether you want to display slate or underlying content.

  • Slate: displays video content that you've created as slate to fill the break.
  • Underlying content: displays live stream content to fill the break.

Durationless ad breaks

Enable if the live stream contains cue-out markers without duration, when the ad break duration is unknown in advance.

Default ad break duration

The default ad break duration (in seconds) that should be requested when an ad break cue-out does not specify a duration. This is only available when "Durationless ad breaks" is enabled.

If the default duration is shorter than the actual break, Ad Manager fills the remaining time with a slate. If the duration is longer, the ad is cut off.

Prefetch ad breaks

Request an initial and subsequent portion of the ad break.

This is recommended for all live events to more evenly distribute ad requests and prevent throttling errors in both Ad Manager and third-party ad servers. When enabled, you'll need to specify an initial ad request duration.

Initial ad request duration

The number of seconds allotted for the initial ad request for prefetched ad breaks. This is only available when "Prefetch ad breaks" is enabled.

You should set this duration to as long as possible to increase the benefits of prefetching, but not longer than the shortest ad break expected. For example, for a live event with 30s and 60s ad breaks, the initial duration should be set to 30s.

Ad holiday duration
(Optional)

The duration in seconds from the time the user enters the video stream, for which mid-roll decisions are skipped. This field is only applicable when an ad holiday (dai-ah) is in the stream request.

The ad holiday feature is especially helpful when client-side pre-rolls are used before a live stream. It is enabled to avoid showing viewers an ad immediately after they've just watched a pre-roll ad.

Maximum filler duration

Enable to set the maximum number of seconds that can be used to fill this ad pod, either with a slate or underlying content, depending on your settings. If more time needs to be filled, the ad pod will instead be dropped and the underlying content will be served.

Edit a live stream mid-stream

If you need to edit a live stream once the stream has begun, change the live stream status to Paused on the "Live streams" page. When you’re done making edits, change the status back to Active. It can take up 15 minutes for ads to begin again.

Locate live linear stream URL and asset key

After you save the live stream in Ad Manager, the "desktop stream URL" and "app stream URL" are displayed on the live stream details page. You can copy the "AssetKey" and use it to generate an SSB URL or to request a stream for an application that uses the SDK.

To find the asset key in Ad Manager:

  1. Sign in to Google Ad Manager.
  2. Click Video and then Live streams.
  3. Click the name of the live stream.
  4. Locate either the "Desktop stream URL" or "App stream URL" in the Settings tab.
  5. The asset ID exists after /event/ in either of these URLs.

Was this helpful?
How can we improve it?