VMAP, or Video Multiple Ad Playlist, is an industry-standard created by IAB. It allows for flexible and powerful scheduling of multiple VAST video ads.

The VMAP tag is formatted in XML and contains multiple ad breaks, each with a corresponding VAST ad source.

Video players that support VMAP can read the template and play VAST video ads at the correct timeline of the main content video.

With VMAP, you don't need control over the video player's settings or the publisher. VMAP allows you to control video ad serving from multiple VAST zones at different ad breaks throughout the video content.

VMAP can be used for server-side ad insertion (SSAI) on OTT devices with services like AWS MediaTailor.

How to create a VMAP tag

First, you need to create and configure the usual VAST tags, one at least. Let's use our demo VAST tag as an example: https://srv.aso1.net/vast?z=34668

Then, you need to compose a base VMAP URL.

To do that, you need to delete everything after the question mark in the VAST tag URL. Note If you are going to use multiple VAST zones, you can pick any of them for a base URL creation.

You should get the following URL: https://srv.aso1.net/vast

Finally, add /vmap to the URL to get the base URL: https://srv.aso1.net/vast/vmap

The base URL is ready. Now we need to add parameters that define ad breaks.

Ad brakes configuration is passed via an array of GET-parameters break[]

The structure of the break parameter is the following: XXXXX,timeOffset , where XXXXX is the VAST zone ID, timeOffset represents the timing of the ad break.

If you need to show multiple ads at the same position, you can add xN modifier to zone ID, where N is the number of ads in a pod—for example, 34668×2. If you want to exclude duplicated ads from the pod, you need to add an exclamation mark at the end. For example, 34668×2!

Time Offsets

This setting determines the timing for each ad break and can be defined in several ways:

  • start: a pre-roll ad
  • end: a post-roll ad
  • offset in seconds from the beginning of the video to the placement of the ad break. Format: HH:MM:SS. Example: 00:00:30
  • percentage of the content video duration with the suffix "%"; for example: 15%
  • position number with prefix "#"; example: #3,#7; the prefix must be encoded — e.g. #2  →  %232

You must check the video player documentation to see if it supports certain time offset configurations.

VMAP tag examples

Pre-roll only: https://srv.aso1.net/vast/vmap?break[]=34668,start

Two pre-rolls in a row: https://srv.aso1.net/vast/vmap?break[]=34668×2,start

Pre-roll and post-roll: https://srv.aso1.net/vast/vmap?break[]=34668,start&break[]=34668,end

Pre-roll, mid-roll at 20sec., and post-roll: https://srv.aso1.net/vast/vmap?break[]=34668,start&break[]=34668,00:00:20&break[]=34668,end

Pre-roll, two mid-rolls at 20sec., and post-roll: https://srv.aso1.net/vast/vmap?break[]=34668,start&break[]=34668×2,00:00:20&break[]=34668,end

Pre-roll and two mid-rolls at 20 and 40sec.: https://srv.aso1.net/vast/vmap?break[]=34668,start&break[]=34668,00:00:20&break[]=34668,00:00:40

VMAP players

Many modern video players support VMAP, including JWPlayer, Roku, Samsung, and other internet-ready or smart TVs. Video players based on Google's IMA SDK support VMAP as well.