Tag Archives: DAI

Unlock Premium Ad Experiences for livestreams with Server-Guided Ad Insertion (SGAI)

We're excited to introduce Google's approach to Server Guided Ad Insertion (SGAI), designed to unlock key benefits:

  • Flexibility: Support for new innovative ad formats to meet publisher’s diverse needs
  • Control: Greater control over ad break scheduling
  • Efficiency: Resource savings and operational simplification

SGAI is an ad insertion method where an ad server instructs the video player on how to manage ad transitions dynamically within the content stream. This technique blends the advantages of two common methods: it offers the seamless ad integration seen in server-side insertion (SSAI) and the implementation ease found in client-side insertion (CSAI). SGAI’s ability to support non-intrusive ad experiences, such as squeezebacks and L-banners, where advertisements appear alongside the continuously playing content, creates prominent branding opportunities and experiences alongside content.

In this post, we'll address the key questions on the core concepts and benefits of this exciting new technology.

What is the "server-guided" part in SGAI?

SGAI uses Google Dynamic Ad Insertion (DAI) to perform ad selection, transcoding, and return the ad pod manifest for the entire ad break, ready for the video player to load and play just like a content stream.

The server-guided aspect highlights the collaborative nature of ad delivery in SGAI. While Google DAI servers do the heavy lifting of building and delivering the ad break, the client app and video player takes control of the ad break timing and insertion.

Control over ad break scheduling

To control the ad break timing, you can use your own infrastructure, such as a packager, an encoder, a manifest manipulator or a direct notification to the client app. Ahead of the ad breaks, you can use the Ad Manager’s Early Ad Break Notification API to create and schedule upcoming ad breaks, optimizing ad fill rate for high concurrency livestream events.

Using these tools, you define the expected start time, duration, and metadata of the ad break and signal Google Ad Manager, your client app and the video player to prepare and play the ad break.

How flexible is SGAI?

There are two different methods of using server guided ad insertion to meet diverse publisher needs:

  • Client-side ad stitching: the client app listens to the video player's timed metadata for upcoming ad break events or follows a preset ad schedule. The client app proactively loads the ad break manifest.
    At ad break start, the client app can switch between content and ad, or arrange both content and ads simultaneous playbacks to implement innovative ad formats, such as squeezeback, L-banner, side-by-side windows.
  • Server-side ad stitching: the packager, or encoder, inserts an ad marker pointing to the ad manifest into the content manifest. The video player reactively loads the ad break manifest and switches between content and ad in due time.

We design our SGAI to work with standards, such as HLS interstitials and the upcoming DASH specification. This allows for easy interoperability across different players, client platforms and streaming tech stacks.

How does SGAI client-side ad stitching work?

This section covers an SGAI client-side example in which the video player parses SCTE-35 markers in the content manifest and schedules an ad break. This approach offers server resource savings and operational simplification.

The livestream flow has the following key steps:

  1. The client app loads the IMA SDK to create DAI pod serving stream sessions and process ad events.
  2. The client app uses a video player for playback, and constructs the HLS or DASH ad pod manifest URLs, incorporating SCTE-35 data as needed.
  3. A few seconds before the expected ad break time, the video player loads the ad pod manifest. At the beginning of the ad break, the client app switches from the content to the ad playback.

How does SGAI server-side ad stitching work?

Livestream workflows with SGAI server-side ad stitching follow similar steps above, but a packager inserts ad markers pointing to ad pod manifest URLs shortly before each ad break.

Next Steps

We encourage you to explore SGAI documentation to create premium ad experiences with efficiency and adaptability. To get started on using SGAI, contact your Google account manager.

- Thang Duong, Ads Developer Relations and Sourya Roy, Senior Product Manager, Google Ad Manager

Control ads identifier usage with IMA DAI SDK by setting your network code

The IMA DAI SDK now supports passing the network code parameter when creating a full-service stream request. This change is specifically for IMA DAI integrations using either LiveStreamRequest or VODStreamRequest classes. Adding the network code is a one-time change that enables IMA DAI to respect your Ad Manager settings.

We recommend you provide the network code for IMA to apply your Ad Manager settings to the stream request. For example, if you turn off programmatic limited ads in Ad Manager, use the Google Ad Manager network code parameter to ensure local storage is also disabled for limited ads in DAI on your app.

The following example constructs an IMA DAI HTML5 LiveStreamRequest class with the network code in the request to Ad Manager:

function requestLiveStream(assetKey, apiKey, networkCode) {
  var streamRequest = new google.ima.dai.api.LiveStreamRequest();
  streamRequest.assetKey = assetKey;
  streamRequest.apiKey = apiKey;
  streamRequest.networkCode = networkCode;
  streamManager.requestStream(streamRequest);
}

You can pass the network code using the IMA DAI SDK for full-service DAI on all of the platforms:

For more information, see the programmatic limited ads Ad Manager article. Additionally, follow Find your Ad Manager network code. If you have any questions, feel free to reach out using the IMA technical forum.

The Video.js-IMA plugin adds DAI support for HLS streams

The IMA Dynamic Ad Insertion (DAI) SDK lets apps make stream requests for ad and content video streams, either VOD or live content. The SDK then enables a video player to play the combined stream so you don't have to manage switching between ad and content video within your apps.

To improve support for HTML5 publishers, we have expanded the features provided by the Video.js-IMA plugin to include DAI for HLS streams. With the latest version of the plugin, you can enable a Video.js player to request ads and content in a single HLS stream. Check out the new DAI sample app and the DAI README file for implementation details on how the Video.js-IMA plugin can simplify your IMA DAI integration.

For more information on IMA DAI, please see the IMA HTML5 DAI getting started guide. If you have any questions or feedback about using DAI with the Video.js-IMA plugin, please raise an issue on GitHub.