What is VAST (Video Ad Serving Template) Tag

What are VAST (Video Ad Serving Template) tags and how do we use them?

What is a Video Ad Serving Template tag? What do we use VAST Tag for?

VAST (Video Ad Serving Template) tag is a specification defined and released by the Interactive Advertising Bureau (IAB) for structuring ad tags that serve ads to video players. VAST transfers important metadata about an ad from the ad server to a video player, using an eXtensible Markup Language (XML) schema. The result is a seamless viewing experience for the viewer along with the ability of the ad provider to dynamically select ads for insertion and tracking.

How VAST tags work?

Display advertising uses standard browser technologies to request and execute ads. However, digital in-stream video and audio advertising operates on players, sometimes built with proprietary code. As a template for ads served to a media player, VAST offers a set of instructions for developers on how to program their players to process VAST-formatted ads. Using VAST, ad servers can serve ads to any VAST-compliant player regardless of what code the player uses.

What is VAST (Video Ad Serving Template) Tag


Client-Side Ad Serving

VAST is a unidirectional protocol that sends ad details to a media player. It is built as a layer on top of browser technology and the VAST process that uses client-side execution looks as follows:

Client-Side Ad Serving

  1. VAST Request: At some point during content playback, either before (pre-roll), in the middle of (mid-roll), or after (post-roll), the player reaches a cue to insert an ad and uses HTTP to send the request for an ad. The request is sent to the primary ad server, which may be the publisher’s ad server or a supply-side platform (SSP).
  2. Wrapper Response: The primary server responds with VAST. This response is either an InLine response or a Wrapper response. If the server can fill the ad request, it sends an InLine response (step 4). In many cases, the ad server redirects the player to a secondary server using a Wrapper response.
  3. Secondary VAST Request: If a Wrapper response is received, the player makes a secondary request to another server. The secondary response may be an InLine response or another VAST Wrapper.
  4. InLine Response: Eventually, after a series of requests and responses, an ad server provides an InLine response.
  5. InLine Execution: The media player executes the VAST response.
  6. Tracking: At key points during ad playback, tracking information is sent for both the InLine and Wrapper responses that the player received. In traditional client-side ad serving, cookies are used to track ads and the computers on which they play.

Server-Side Ad Stitching

In today's wide array of streaming media players, there might be some players not capable of executing dynamic ad responses or tracking impressions and interactions. In these cases, an intermediary server is needed to insert ads dynamically into the video or audio stream. This process is called ad stitching, stream stitching or ad insertion and looks as follows:

Server-Side Ad Stitching

  1. VAST Request: The publisher sends an ad request to the ad-stitching service.
  2. Request VAST: The ad-stitching service makes a request to the ad server for a VAST tag.
  3. Send VAST: The ad server sends a VAST tag with a mezzanine file and ready-to-serve files. If the ad stitching service has already received the creative for a previous request and has transcoded the mezzanine file, or the ready-to-serve files are already in the format required to be stitched into the content stream, then it moves on to step 5. If the VAST tag response is a Wrapper tag then the ad-stitching service should extract the inner InLine response using the same precedence logic as a client-side media player.
  4. Extract Mezzanine and Transcode: The ad-stitching service pulls the unique creative identifier from the VAST tag. If the creative has never been used in the system, the mezzanine file is extracted and transcoded. In this scenario, the ad is skipped and the next available ad is played instead. VAST error code 407 is sent.
  5. Select Transcoded: If the creative in the VAST tag from step 3 matches the unique creative identifier for an ad that has already been transcoded, the ad-stitching service selects the re-transcoded file already in the system.
  6. Stitch Ad into Content Stream: The ad-stitching service stitches the ad into the content stream and serves the content and ad to the player in one continuous stream.

Example VAST tag

An example VAST 4.2 tag that defines a single ad. Main XML elements are Creative which defines the ad, Tracking which defines tracking events and MediaFile which defines the ad media file:

<VAST version="4.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.iab.com/VAST">
<Ad id="20001" >
    <AdSystem version="1">iabtechlab</AdSystem>
    <Impression id="Impression-ID"><![CDATA[https://example.com/track/impression]]></Impression>
    <AdTitle>Inline Simple Ad</AdTitle>
    <Advertiser>IAB Sample Company</Advertiser>
    <Category authority="https://www.iabtechlab.com/categoryauthority">AD CONTENT description category</Category>
        <Creative id="5480" sequence="1" adId="2447226">
            <Tracking event="start" ><![CDATA[https://example.com/tracking/start]]></Tracking>
            <Tracking event="progress" offset="00:00:10"><![CDATA[http://example.com/tracking/progress-10]]></Tracking>
            <Tracking event="firstQuartile"><![CDATA[https://example.com/tracking/firstQuartile]]></Tracking>
            <Tracking event="midpoint"><![CDATA[https://example.com/tracking/midpoint]]></Tracking>
            <Tracking event="thirdQuartile"><![CDATA[https://example.com/tracking/thirdQuartile]]></Tracking>
            <Tracking event="complete"><![CDATA[https://example.com/tracking/complete]]></Tracking>
            <MediaFile id="5241" delivery="progressive" type="video/mp4" bitrate="2000" width="1280" height="720" minBitrate="1500" maxBitrate="2500" scalable="1" maintainAspectRatio="1" codec="H.264">
            <MediaFile id="5244" delivery="progressive" type="video/mp4" bitrate="1000" width="854" height="480" minBitrate="700" maxBitrate="1500" scalable="1" maintainAspectRatio="1" codec="H.264">
            <MediaFile id="5246" delivery="progressive" type="video/mp4" bitrate="600" width="640" height="360" minBitrate="500" maxBitrate="700" scalable="1" maintainAspectRatio="1" codec="H.264">
            <ClickThrough id="blog">
        <UniversalAdId idRegistry="Ad-ID">8465</UniversalAdId>

VAST tags history

In the early days, mostly videos and other user-generated content were transferred over the Internet. The success in monetizing this content with ads has produced a new venue of income for advertising companies. VAST was initially launched in 2008 and has since played an important role in the proliferation of ad content provided through video players.

One of the main challenges and a key reason some video publishers initially avoided using VAST, was the lack of quality control. VAST together with Video Player-Ad Interface Definition (VPAID) can deliver ads programmatically or include ads with complex interactions. I a player does not accept VPAID ads, the ad cannot be executed. Even when the player does accept VPAID ads, those can then be complex and reduce video player performance and increase latency and load times. This then results in an unsatisfactory viewing experience.

Ad companies needed a way to separate the video file from its interactive component to ensure that the video and the ads play in the systems that cannot execute interactive components. Another challenge is the lack of a consistent identifier for creative that is maintained across multiple systems.

VAST 4.0 has addressed these challenges along with a few others in order the improve the video ad delivery and user viewing experience.

VAST 4.x

The main updates made in VAST 4.0:

  • Separate video file and interactive file: a VAST tag now provides the video file separately from the ad and interactive component.
  • Server-side support: while client-side ad execution can provide a way to track ad impressions and other metrics, VAST 4.0 now supports stitching video ads into video and streaming it to players with limited capabilities.
  • Mezzanine file: to support advertising across various video platforms that include long-form content and high-resolution screens, the raw high-quality mezzanine file was added.
  • Ready-to-serve Files: are prepared at three different quality levels to ensure that a video ad can always play.
  • Universal Ad ID: includes creative identifier that is maintained across systems.
  • Ad Verification and Viewability Execution: checking was added in VAST 4 thorough two designated elements for ad verification and viewability.
  • Support for Categories: that enables separating competing ads and improves brand safety.
  • Conditional Ad Declaration: enables a VPAID unit to decide whether or not to place an ad. This functionality with VPAID was replaced with SIMID (Secure Interactive Media Interface Definition) and OMID (Open Measurement Interface Definition) since 4.1.
  • New Error Codes: provide additional troubleshooting support.
  • Standardized Timestamp: enables consistent time-sensitive tracking.

The main updates made in VAST 4.1:

  • Verification: is now supported in a non-VPAID architecture (separated from media file).
  • Digital Audio Ad Serving Template (DAAST): has been merged into VAST enabling audio ads to be treated differently if needed.
  • Ad Requests: are now included to support VAST as a response protocol.
  • Updates to Macros: to support Ad Requests.
  • Server-Side Ad Insertion (SSAI) changes: to support Ad Requests.
  • Deprecating Video Player Ad-Serving Interface Definition (VPAID).
  • Updates to Tracking Events.
  • AdServingId: is used for comparing data about a video impression across various systems.
  • VAST Interactive Templates: enables standard interactive ads without ad delivered executable code.
  • HTML5: is now the only technology supported for ads.
  • Closed Captioning: is now standardized through Closed Captioning files.
  • Survey: node is being deprecated.

The main update made in VAST 4.2:

  • Secure Interactive Media Interface Definition (SIMID): support has been added to substitute VPAID functionality to support interactive use cases.

List of technologies used by VAST tags

  • VPAID: The Video Player-Ad Interface Definition specifies the protocol between the ad and the media player required to enable ad interactivity and other advanced video advertising functionality. Deprecated - VPAID is being phased out, to be replaced by OMID (for Verification) and SIMID for interactivity.
  • SIMID: The Secure Interactive Media Interface Definition, the API made available to build an interactive experience with the video ad media. A replacement for VPAID for interactivity in the VAST 4 model of separated media and executable files.
  • OMID: The Open Measurement Interface Definition, the API made available to verification code by OMSDK or equivalent service. A replacement for VPAID for verification in the VAST 4 model of separated media & executable files.
  • VMAP: The Video Multi-Ad Playlist is an XML response framework that defines where to place ads within the video content.
  • Digital Video Ad Metric Definitions: An industry-defined list of metrics used in digital video ads.
  • Digital Video Ad Format Guidelines: An industry-defined list of streaming video creative submission specifications.
  • Digital Advertising Alliance (DAA) Interest-Based Advertising (IBA) Notice for Digital Video: Guidelines for implementing the AdChoices program within in-stream ads that are placed using interest-based criteria.
  • Open Measurement SDK (OMSDK): An IAB-led project developing a common library to collect and expose measurements of ad creatives, including video, at view time, for verification purposes.

Did you find this article helpful?

0 out of 0 Bunnies found this article helpful



Video Ad Serving Template.

Prove your Knowledge.
Earn a bunny diploma.

Test your knowledge in our Junior and Master Quizes to see where you stand. Prove your mastery by getting A+ and recieving a diploma.

Start the QuizBunny with a diploma.