The following article provides an insight into the key technologies associated with video advertising and more specifically, key considerations when incorporating advertising into your video service. We will: address the relationship between VAST, VPAID and VMAP; analyse the key differences between inserting ads on the client versus server side and explain the role that out-stream ads can play as part of an advertising monetisation model.

Revolution of online marketing

At its core, online advertising is all about increasing the market for your product and/or service and encouraging a purchase decision. This has been somewhat haphazard with traditional marketing methods such as print or street ads, due to challenges in:

  • Reaching and interacting with the intended target audience for the product or services.
  • Incorporating a direct call-to-action, allowing end users to further explore or instantly buy a product or service.
  • Ultimately, measuring the true effectiveness of a campaign.

The emergence of online technologies has had a profound impact on the way advertising is used and viewed and has resulted in a new level of interactivity between brands and customers. Stakeholders across the advertising chain derive significant benefits from the increased visibility, reach and positioning possibilities online advertising allows. Content creators gain an additional revenue source beyond the physical content itself while product and service providers benefit from the increased audience reach and the more granular positioning to their target audience.

Revolution of online marketing

However, achieving the benefits of online advertising offers can also introduce a high degree of complexity. Delivering an online advertisement involves numerous stakeholders. To display an advertisement in a video player typically requires the following chain of events:

  • The core advertising message.
  • A dashboard where advertisements can be uploaded.
  • A server / CDN that serves the advertisement data.
  • A (third-party) website where the advertisement is played.
  • A video player which is able to decipher the advertisements and display it as intended.
  • An analytics platform to measure the effectiveness of the campaign.

The chain is centred on displaying the advertisement and showcasing the products or services to attract more customers. To help structure this process, advertisement specifications have been created to help guide the various steps. These specifications are intended to provide a guiding framework for all stakeholders involved in the creation and positioning of an advertisement to its intended audience.

IAB specifications: VAST, VPAID, VMAP

The IAB, Interactive Advertising Bureau, was founded in 1996 and is the leading body for standardising online/digital advertisements. The Bureau form a panel consisting of more than 650 leading media companies in the United States, who, together, make up 86% of the American online advertisement market.

In the following section we will discuss three standards created by IAB : VAST, VPAID and VMAP. Together, they allow ads to be described, tracked, made interactive and scheduled at the intended time.

VAST: describing ads, behaviour and tracking

Video Ad Serving Template (VAST) is the fundament of all three specifications. It describes advertisements and how they should be handled by a player. Amongst other things VAST specifies the advertisement type, the specific formats incorporated, the location of the files, the different qualities of the advertisement, if/when ads can be skipped and how the advertisement should be tracked.

A simplified VAST specification is included below:

<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Description><![CDATA[THEOplayer ad]]></Description>
<Linear skipoffset="00:00:15">
<MediaFile delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="236" scalable="true" maintainAspectRatio="true"><![CDATA[]]></MediaFile>
<Tracking event="start"></Tracking>
<Tracking event="midpoint"></Tracking>
<Tracking event="thirdQuartile"></Tracking>
<Tracking event="pause"></Tracking>
<Tracking event="resume"></Tracking>
<Tracking event="fullscreen"></Tracking>
<Tracking event="skip"></Tracking>

VAST facilitates three types of advertisements:

Please disable your AdBlocker to see the ads

Linear: a video ad played inside a video player. The player will pause the content for this type of advertisement.

Non-linear: a banner that pops up inside a video player. The ad doesn’t interrupt the content making it suitable for specific type of events such as live streams.

Companion: advertisements shown outside the player. They usually complement a linear / non-linear ad.

VAST also specifies ad pods. Ad pods are groups of advertisements which should be played back-to-back.

VPAID allows interactivity

Video Player Ad Interface Definition (VPAID) allows advertisers to implement custom advertising behaviour whilst ensuring the player controls the interaction. This allows the advertisement to react and show additional information based on individual client behaviour, such as navigating through content and showing more information. To ensure this is controlled seamlessly, the video player must communicate and control the advertisement. This is where VPAID comes in. It defines what should be implemented, so the video player and advertisement can work together in harmony.

The VPAID specification defines three ways of communication:

  • Issuing a command to the advertising unit (method), e.g. start, pause, resize...
  • Requesting / updating information in the advertising unit (property), e.g. volume, duration...
  • Notification from the advertising to the player that an event has occurred, e.g. loaded, skipped...

It is important to note:

  • VPAID 1.x makes use of Flash, browsers are phasing out Flash support, blocking these ads to work.
  • VPAID 2.x utilises JavaScript, CSS and HTML5, which is a more future proof approach to provide interactivity.
  • VPAID can be used for both linear and non-linear advertisements.

VMAP allows time scheduling for one or multiple ads

(Digital) Video Multiple Ad Playlist (VMAP) makes it possible to specify when VAST should be played. In terms of timing a distinction is made between:

  • Pre-roll: advertisements played before the content starts.
  • Mid-rolls: advertisements played during the content.
  • Post-roll: advertisements played after the content ends.

VMAP allows you to specify exact timing for one or multiple advertisements. It is important to note however that VMAP was mainly designed with Video on demand (VOD) in mind, leaving some questions open for the live video case.

VAST and VMAP extensions and Google IMA

It is possible to add extensions for both VAST and VMAP to increase functionality. This option should be carefully considered given commercial players are not typically expected to support extensions.

Google’s DoubleClick for Publishers (DFP) is an example of such an extension. DFP adds, amongst others things, URLs for tracking zoom taps on mobile devices and conversions of users. The expected behaviour for these extensions are implemented in Google IMA (Interactive Media Ads), which is integrated by most (commercial) video players. On top of that, Google IMA implements VAST, VMAP and VPAID, especially optimized for DFP content.

How VAST, VPAID and VMAP cooperate

VAST, VPAID and VMAP are designed to work together and fulfil different requirements. VAST describes advertisements and how the video player should handle playback. The advertisement can be interactive. If interactivity is required then the advertisement should implement VPAID. Timing can be added via VMAP, but this is optional. VMAP will refer to a VAST, but never to another VMAP. VAST can refer to another VAST, but never to a VMAP file.


Client side versus server side ad insertion

There are two major ways that advertisements can be inserted in video content:

  • On the client side, the video player is responsible for loading all necessary files (e.g. VAST, videos, banners), managing the timing of when the advertisements should be played, interrupting playback when needed and ensuring that switching content and error handling works smoothly.
Client-side ad insertion
  • On the server side, the advertisement is directly inserted in the stream: the broadcaster indicates when advertisements may be inserted by providing cues (hints) in the stream. The content is then forwarded to an ad insertion server, which replaces the dummy content with actual advertisements. That way, the advertisements are part of the stream.
Server-side ad insertion

Both approaches have their strengths and their challenges:

Client side advertisements are especially useful for video-on-demand, since advertisements in the stream (inserted on the server-side) can be easily skipped. VAST, VMAP and VPAID are standards based on consistent, expected behaviour, making it easy to predict.

A drawback with this approach is that users can install ad blockers thereby preventing the advertisement from playing. As a result, playing advertisements on the client side cannot always be guaranteed. One way to solve this is to block playback when an ad blocker is detected.

Advertising within live-streams can also be challenging: inserting linear advertisements might result in viewers missing crucial sections of a real-time event. As a result, it is advised to use non-linear advertisements to avoid customer impact. Given VMAP doesn’t specify when advertisements should be played it is extremely challenging to determine when an advertisement should be shown. VMAP defines the positon of an advertisement, so it is crucial that this information is included in the stream itself which can then be extracted by the player.

Server side advertising works best for live, where the users cannot skip content, unlike with Video-on-Demand. In addition video advertisements cannot be prevented by the ad blocker software given the advertisement is part of the stream. Even if the ad blocker could detect and block the advertisement, the viewer would be presented with a black screen. Commercial video players have the ability to handle server side advertisements out of the box due to the fact that they are part of the stream.

More challenging is how a video player should detect that an advertisement is playing, adjust the user interface and add a link to the advertised company. At this point, there is no specification on how this should be done, so every server side ad insertion might have a different way of providing this information. For instance, YoSpace does this by using ID3 data within the track. You need a video player that is able to detect this information and react accordingly.

In-stream versus out-stream

Advertisements can be further categorised by their relationship with the content. Video advertisements can be categorised as:

  • In-stream advertisements, where the publisher uses its own video content and allows a third party advertiser to play an advertisement before, during or after the content.
  • Out-stream advertisements, where the publisher is serving textual / graphical content and where the video advertisement is played alongside the content. Example.

The approach to handling out-stream advertisements varies. The best known use case is where the player plays the advertisement in a muted state as soon as the player is visible. Once the user interacts with the player the volume is automatically enabled. The player is paused or resumed based on the player’s visibility.

The coalition for better ads discourages serving auto-play out-stream ads with volume enabled.

How THEOplayer can help your business

Implementing video advertisements can be challenging:

  • Specifications can be long and describe numerous scenarios, which should all be handled according to the specific sequence of events stated.
  • Parsing, interpreting and playing ads can be complex.
  • VAST and VMAP tags are not always correct, which can result in problems when not handled correctly.
  • When playing midrolls, you don’t want to lose buffer (content that has already been loaded) if you switch back to the content, but you want to provide a continuous experience.
  • When seeking over an advertisement, you don’t want users to be able to skip ads.
  • When people are scrubbing content (= seek-dragging), you only want to show an advertisement when the user releases the seekbar.
  • You will want to download advertisement data in advance for a smooth switch between content and advertisements.

THEOplayer can remove the complexity and handle the heavy-lifting on your behalf:

  • Supporting VAST, VMAP, VPAID and extensions such as Google IMA.
  • Partnering with companies who deliver server-side ad insertion services or extensions on the VAST specification.
  • Supporting dynamic ad scheduling, where you can insert an ad at any given time, which can be useful for live streams.
  • Allowing VAST advertisements to be set as a time offset, so you can decide when an advertisement should be played if VMAP is not an option.

Request a demo

The ultimate guide to advertising