Server-Guided Ad insertion in MPEG-DASH

Server-Guided Ad insertion in MPEG-DASH

Server-Guided Ad Insertion methodologies combine the best in both of the traditional approaches to dynamic advertisement, client-side and server-side. It is nearly as scalable as the client-side approach while being as robust and uniform and low-effort as the server-side approach. Unsurprisingly, lots of work is happening in the industry to support the approach. 

Several years ago, Apple HLS introduce the concept of interstitials and they keep evolving since then. MPEG DASH introduced a similar solution, Alternative MPD events, which evolved much during 2024. It started as a fairly simple and limited solution, evolving to a broader set of tools. It moved towards full compatibility with HLS and incorporated many practices from SCTE 35 and client-side ad insertion implementations. It also covers non-advertisement use cases encountered in the N. American practice, such as blackouts. 

This paper will go through the details and use cases using the finalized version of the spec, presenting both the theory of operation and a variety of use cases and ways of addressing them.

DASH Alternative MPD at Demuxed 2024

This presentation by Alex Giladi, a Comcast Fellow and editor of MPEG-DASH, discusses the evolution of ad insertion technologies and explores the potential of extending these techniques to client-side overlays. 

Keep in mind that the Alternative MPD spec has evolved since this presentation but the foundations are the same.

Replace and Insert Presentation Examples

Replace and Insert Presentation

InsertPresentation and ReplacePresentation are two types of events within the MPEG DASH standard that enable the dynamic insertion and replacement of content in adaptive streaming workflows. They are primarily used for Server-Guided Ad Insertion (SGAI) and managing regional blackouts.

InsertPresentation: This event introduces an alternative presentation at a specific point in playback without affecting the original content. It is ideal for video-on-demand (VOD) scenarios where additional content (such as an advertisement) needs to be inserted without disrupting the overall playback. Once the alternative presentation ends, the original content resumes from the point where it was paused.

ReplacePresentation: Unlike InsertPresentation, this event completely replaces the current presentation with an alternative one, providing a dynamic way to substitute content. It is useful in contexts such as ad insertion in live streams and regional blackouts, allowing controlled content switching. This event can include configurations such as the maximum duration of the alternative content and resumption at a specific point in the original presentation.

ListMPD

List MPD is a feature introduced in the 6th edition of MPEG DASH that allows for the efficient composition of ad breaks or alternative content blocks. Instead of merging multiple ads into a single MPD (Media Presentation Description) on the server side—which increases processing load and reduces scalability—ListMPD offers a more modular and efficient solution.

Key Features:

ListMPD example

ListMPD Example

Alternative Presentation Playground

In this demos, the user will be able to add, edit, and remove InsertPresentations or replacePresentations in VOD content. Additionally, for replacePresentations, the user will be able to modify attributes such as "max duration," "clip," and "start at play-head" to explore the various experiences that can be created by adjusting these parameters.

Alvaro Velad Galván

A special thanks to Alvaro, Advanced Research Engineer at Ateme, for implementing Overlays and Alternative MPD in Shaka Player, contributing to the advancement of these standards, and for his collaboration with us during the implementation of both features.

To try out Shaka Player with the latest features you can use the Nightly builds by adding the following scripts in your site:

<link rel="stylesheet" href="https://nightly-dot-shaka-player-demo.appspot.com/dist/controls.css">

<script src="https://nightly-dot-shaka-player-demo.appspot.com/dist/shaka-player.ui.js"></script>


VAST-2-SGAI with dash.js 

In this example, a proof of concept will be presented, showcasing live content alongside a ListMPD that replaces the main content through a replacePresentation event. It is important to note that the ListMPD is generated from a sample VAST response from the Google Ads server. This proof-of-concept implementation aims to demonstrate how dash.js can be used to create Server-Guided Ad Insertion experiences.

Source: https://github.com/montevideo-tech/vast-2-sgai/