In today’s online world, where advertising-based video-on-demand services are top-rated, knowing how to make these streaming experiences user-friendly and profitable is essential. One critical tool to achieve that in video advertising is VMAP (Video Multiple Ad Playlist). This article will explore VMAP’s history, showing why it’s important and how it has changed how we advertise in videos. It will also describe how it works and give concrete implementation examples.

VMAP – A bit of history

The Pre-VMAP Era: The Far West of Ad Placement

Before VMAP’s inception, it was still the early digital video advertising era. The late 2000s and early 2010s witnessed a surge in digital video content. Yet, the ad experience was often jarring for viewers. The experience would have been composed of the following:

  • Ads would randomly pop up, sometimes cutting crucial content scenes.
  • The same ads would have been played repetitively.
  • Many websites used custom Flash-based video players that lacked sophisticated ad integration. This often resulted in ads overlaying video content, popping up without warning, or failing to load correctly.
  • While pre-roll ads (ads that play before a video starts) were typical, they often lacked relevance to the viewer.
It may not have been as bad as that, but you get the idea.

Content creators and distributors generally needed a unified method to specify ad placements across various platforms and devices. There was no control over where and how video ads could be placed.

Consequently, this fragmentation impeded effective monetization and compromised viewer experience.

Birth of VMAP in 2012: A Game-Changing Solution

Recognizing the need for standardization and flexibility in ad placements, the Interactive Advertising Bureau (IAB) took charge. Around 2012, they introduced VMAP (Video Multiple Ad Playlist) as part of their digital video technical standards suite with version 1.0.

As the IAB presented, VMAP “enables a structure for a playlist of video ads from an ad server to a video player”. Concretely, VMAP is an XML template that allows content owners to define precisely where ads should be placed within their videos, especially when they don’t control the distribution platform.

2014 VMAP update to enable more adoption

In 2014, a new version, version 1.0.1, was published.

VMAP 1.0.1, an update to the original VMAP 1.0, focused on refining the specification by providing more explicit guidelines and addressing ambiguities. It enhanced the clarity of ad break definitions, particularly for mid-roll ads, and offered more precise guidance on time offset calculations.

This updated version also offered better guidance on managing scenarios where the same ad might be repeated in different ad breaks within the same video content, ensuring a more varied and less repetitive viewing experience.

Additionally, it improved error reporting, ensured better compatibility with VAST, and included more comprehensive documentation with practical examples.

These changes, while not fundamentally altering the core functionality of VMAP, made the implementation more straightforward and consistent, leading to a smoother and more reliable ad placement process in video content.

A few years after publication, why was VMAP a milestone?

There are multiple reasons, looking back to the creation of VMAP, why VMAP has been beneficial in the video advertising industry:

  • It empowered content creators: before VMAP, content creators were often at the mercy of third-party distributors regarding ad placements. With VMAP, creators regained some control, ensuring they could communicate in the best way that ads do not disrupt the narrative flow of their content.
  • It has enhanced the viewer experience. With the ability to define ad breaks clearly, VMAP led to fewer unexpected interruptions. Whether it was a pre-roll ad before the video started, a mid-roll ad during content playback between scenes, or a post-roll ad at the end, placements became more structured, resonating better with viewers.
  • It boosted monetization by providing clarity. Distributors now had a more explicit blueprint on where ads should appear, leading to more efficient ad serving and better revenue opportunities.
Video creators have benefitted from VMAP

How does VMAP work?

Basic Concept

VMAP is essentially a set of instructions in XML format. It allows us to define where and when different ads should appear within video content. Here you have the critical elements of what needs to be included in VMAP:

  1. Ad Breaks: VMAP enables the specification of various types of ad breaks, such as pre-roll (before the video starts), mid-roll (at specified points during the video), and post-roll (after the video ends).
  2. Time Offsets: For mid-roll ads, VMAP allows specifying the exact time or event when an ad should be played within the video content.
  3. Break Type: This defines whether the ad break allows linear (like a regular TV commercial break) or non-linear ads (like overlay ads).
  4. Ad Source: VMAP defines the source of the ad, often including a VAST (Video Ad Serving Template) document, which provides the details of the ad itself (such as the media file, click-through URL, etc.).

How VMAP Integrates in the Video Advertising Process

  1. Video Playback Initiation: When a viewer starts playing a video, the video player (in the case of Client-Side Ad Insertion) or the Video Stitcher (also called Manifest Manipulator, in the case of Server-Side Ad Insertion) requests the VMAP document from the ad server.
  2. VMAP Parsing: The video player (CSAI) or the Video Stitcher (SSAI) reads and parses the VMAP document to understand where and when to insert ads.
  3. Ad Retrieval: In CSAI, the player requests the ad content for each ad break specified in the VMAP. In SSAI, the ads are stitched directly in the HLS/DASH manifests delivered to the players.
  4. Ad Playback: In CSAI, the video player then plays the ads at the specified points, adhering to the instructions laid out in the VMAP document.  In SSAI, the video player plays the segments listed in the manifest, which the Manifest Manipulator has manipulated.
  5. Continuation of Main Content: After each ad or set of ads is played, the main video content resumes until the next ad breakpoint is reached or the video ends.
VMAP Serving Process from the IAB (please note that example is CSAI here)

Use-case

Imagine you have a 30-minute video and want to place ads at the beginning, middle, and end. With VMAP, you can specify that a pre-roll ad plays before the video starts, a mid-roll ad plays at the 15-minute mark, and a post-roll ad plays after the video ends. The VMAP document will detail these instructions, and in the case of SSAI, the video stitcher player will execute this plan, inserting the appropriate ads at these points in the manifest files.

A look at the XML

Below is a simplified example of a VMAP 1.0.1 XML document. Let us describe each line to have a better understanding of the components and the structure.

VAST ad responses have been removed for clarity.

<?xml version="1.0" encoding="UTF-8"?>
<VMAP xmlns="http://www.iab.net/videosuite/vmap" version="1.0.1">
    <AdBreak timeOffset="start" breakType="linear" breakId="pre-roll">
        <AdSource id="pre-roll-ad" allowMultipleAds="false" followRedirects="true">
            <VASTAdData>
                <!-- VAST XML goes here -->
            </VASTAdData>
        </AdSource>
    </AdBreak>
    <AdBreak timeOffset="00:10:00.000" breakType="linear" breakId="mid-roll">
        <AdSource id="mid-roll-ad" allowMultipleAds="true" followRedirects="true">
            <VASTAdData>
                <!-- VAST XML goes here -->
            </VASTAdData>
        </AdSource>
    </AdBreak>
    <AdBreak timeOffset="end" breakType="linear" breakId="post-roll">
        <AdSource id="post-roll-ad" allowMultipleAds="false" followRedirects="true">
            <VASTAdData>
                <!-- VAST XML goes here -->
            </VASTAdData>
        </AdSource>
    </AdBreak>

Description of Each Line

1. XML Declaration: This line declares the document as an XML file

<?xml version="1.0" encoding="UTF-8"?>

2. VMAP Root Element: This line defines the root element of the VMAP document, specifying the namespace and the VMAP version.

<VMAP xmlns="http://www.iab.net/videosuite/vmap" version="1.0.1"> 

3. Pre-roll Ad Break: This section defines a pre-roll ad break (an ad that plays before the video starts).

<AdBreak timeOffset="start" breakType="linear" breakId="pre-roll">
        <AdSource id="pre-roll-ad" allowMultipleAds="false" followRedirects="true">
            <VASTAdData>
                <!-- VAST XML goes here -->
            </VASTAdData>
        </AdSource>
    </AdBreak>
  • `timeOffset=”start”` specifies that the ad break is at the beginning of the video.
  • `breakType=”linear”` indicates if linear ad (like a TV commercial).
  • `breakId` is an identifier for this ad break.
  • The `AdSource` element specifies details about the ad, including an ID, whether multiple ads are allowed (`allowMultipleAds=”false”`), and if redirects are followed (`followRedirects=”true”`).
  • `VASTAdData` would contain the actual VAST XML data for the ad.

 4. Mid-roll Ad Break: Similar to the pre-roll, this one is for an ad in the middle of the video.

<AdBreak timeOffset=”00:10:00.000″ breakType=”linear” breakId=”mid-roll”>

        <AdSource id=”mid-roll-ad” allowMultipleAds=”true” followRedirects=”true”>

            <VASTAdData>

                <!– VAST XML goes here –>

            </VASTAdData>

        </AdSource>

    </AdBreak>

  • timeOffset="00:10:00.000" places the ad 10 minutes into the video. The timeOffset can also be provided as a percentage (of the duration of the asset).
  • Other attributes are like the pre-roll, but note allowMultipleAds="true", allowing more than one ad in this break.

5. Post-roll Ad Break: Defines an ad break at the end of the video (timeOffset="end").

<AdBreak timeOffset="end" breakType="linear" breakId="post-roll">
        <AdSource id="post-roll-ad" allowMultipleAds="false" followRedirects="true">
            <VASTAdData>
                <!-- VAST XML goes here -->
            </VASTAdData>
        </AdSource>
    </AdBreak>
  • Other attributes are like the pre-roll and mid-roll sections.

Each section is critical for defining when and what type of ads will play during a video, providing a structured and controlled ad experience both for the content provider and the viewer.

VMAP’s Symbiotic Relationship with VAST

Now, you may ask how VMAP works with VAST, another critical element of video advertising we presented in another blog post.

Of course, while VMAP was groundbreaking, its true potential was unleashed when combined with another IAB standard: VAST (Video Ad Serving Template).

VMAP addresses the ‘where’ and ‘when’ of ad placements, while VAST tackles the ‘what’. VAST defined the actual ad creatives to display video, interactive media, or overlay ads. This combination streamlined the entire ad-serving process, creating a holistic advertising experience.

VMAP and broadpeak.io: a love story

On broadpeak.io, our Dynamic Ad Insertion app, based on a SSAI video stitcher, is compatible with VMAP. We also like the concept so much that we have developed a built-in VMAP generator within the platform. It is one application in our AdProxy service. AdProxy gathers all the different applications regarding all the non-straightforward interactions we have with the ad servers. VMAP generator is one of them.

Suppose your ad server does not support the generation of a VMAP schedule to tell broadpeak.io where to insert ads in the VOD content. In that case, you can use the AdProxy (VMAP generator) feature to define that schedule and indicate how to interact with the ad server.

Please note that in our Ad Proxy (VMAP generator), a link to the VAST tag is provided instead of an inline VAST payload like you see in the VMAP XML above.

To use the feature on the webapp, when creating your ad server Source, select the “AdProxy (VMAP generator)” template.

A schedule with a pre-roll and mid-rolls every 10 minutes for an asset 45 minute long, using the VAST tag https://my-ad-server.com/vast, and additional parameters to be forwarded to the ad server

This creates 5 ad opportunities:

You can find more information on this in the Knowledge Center article.

Looking Ahead: The Future with VMAP

As video content proliferates across platforms and devices, the need for standardized ad-serving solutions becomes increasingly important. The experience is compared between AVOD services, and ads cutting content in the middle of scenes is not acceptable anymore. VMAP, with its flexibility and precision, is poised to become an indispensable tool for the video advertising ecosystem.

Moreover, with the rise of programmatic advertising and real-time bidding, VMAP’s role becomes even more significant. Advertisers can target specific ad slots, ensuring their content is contextually relevant and resonates with the audience.

Finally, with the development of new AI tools (for example, VideoAI) to detect the best mid-roll points and extract contextual data, VMAP will be even more relevant and powerful.

So, the next time you binge-watch a TV show, and an ad pops up just at the right moment, without breaking the narrative, take a moment to appreciate the magic of VMAP at work. It’s like a behind-the-scenes coordinator, ensuring the content and ads work smoothly.

Mathias Guille
https://linkedin.com/in/mathiasguille
Mathias Guille is the Vice President Cloud Platform at Broadpeak. He leads the strategic development of Broadpeak’s cloud platform, including the building of the company’s infrastructure in the cloud and in public datacenters, the design of Broadpeak’s platform on top of the infrastructure and the shaping of the company’s applications to accommodate SaaS offerings.