What Is Video Ad Serving Template (VAST)?
Video Ad Serving Template (VAST) is an XML-based specification developed by the Interactive Advertising Bureau (IAB) that standardizes how video ad servers communicate with video players. It defines the structure of ad responses so that any VAST-compliant player can request, receive, and render video ads from any VAST-compliant ad server, without custom integrations for each pairing.
VAST acts as a universal instruction set. When a video player needs to display an ad, it sends a request to an ad server, which responds with a VAST XML document containing the ad’s media file URL, duration, tracking pixels, click-through destination, and companion banners. The player reads the XML and executes accordingly.
Why VAST Exists
Before VAST, publishers and ad servers operated on proprietary protocols. A video player built for one ad network could not serve ads from a competing network without significant engineering overhead. The IAB introduced VAST in 2008 to eliminate that fragmentation, and the standard has since become the baseline for digital video advertising across programmatic advertising ecosystems, streaming platforms, and connected TV.
The practical result: a publisher running a site on Brightcove can serve ads from Google Campaign Manager, The Trade Desk, or any other VAST-compliant demand source without rebuilding their player.
How VAST Works: The Request-Response Flow
- Player triggers ad request. At a defined break point (pre-roll, mid-roll, post-roll), the video player sends an HTTP GET request to the ad server’s VAST endpoint.
- Ad server returns XML. The server responds with a VAST XML document containing ad metadata, media file locations, and event tracking URLs.
- Player parses and renders. The player reads the XML, fetches the media file, and plays the ad.
- Tracking pixels fire. As the ad plays, the player pings impression, quartile, and completion URLs specified in the XML so the ad server can record delivery data.
For pre-roll ads, this entire handshake typically completes in under 500 milliseconds on a stable connection. Latency above that threshold measurably increases ad abandonment rates.
VAST XML Structure
A VAST document has a predictable hierarchy:
| Element | Purpose |
|---|---|
| <VAST> | Root element; carries version attribute (e.g., VAST 4.2) |
| <Ad> | Wrapper for a single ad unit; carries ID attribute |
| <InLine> | Contains all data needed to display the ad directly |
| <Wrapper> | Points to another VAST URL (used in ad chains) |
| <MediaFiles> | Lists video file URLs with codec, bitrate, and dimension specs |
| <TrackingEvents> | URLs to ping on start, firstQuartile, midpoint, thirdQuartile, complete |
| <VideoClicks> | Click-through URL and click-tracking pixels |
| <CompanionAds> | Banner or HTML companion units to display alongside the video |
VAST Versions and What Changed
VAST 2.0
Introduced standardized tracking events and companion ads. Widely deployed from 2009 onward and still encountered in legacy inventory.
VAST 3.0
Added support for skippable ads, ad pods (sequential ads within a single break), and error reporting codes. This version introduced the <Skip> element that enabled the five-second skip model popularized by YouTube’s TrueView format.
VAST 4.x
Current standard as of 2026. Key additions include support for server-side ad insertion (SSAI), mezzanine file delivery for dynamic transcoding, universal ad ID (UniversalAdId), closed captioning for ad creative, and improved viewability signal integration. VAST 4.2 also added native support for OTT and connected TV environments, where mid-roll pods can contain four or more sequential spots.
VAST Wrappers and Ad Chains
In programmatic supply chains, VAST responses are frequently chained through multiple wrapper elements. A publisher’s ad server returns a Wrapper pointing to a DSP’s VAST URL, which itself may point to a third-party ad verification vendor’s URL before finally resolving to an InLine response with the actual media file.
Chains of three to five wrappers are common. Each hop adds latency, and IAB guidelines recommend limiting wrapper depth to three hops. Chains exceeding that threshold correlate with higher ad timeout rates. The IAB’s 2023 Video Ad Serving Quality Study found those timeouts accounted for up to 14% of failed impressions in open programmatic environments.
VAST 4.x introduced the <AdServingId> field to help publishers trace delivery failures across long wrapper chains without manually parsing each hop.
VAST vs. VPAID vs. VMAP
VAST vs. VPAID
VPAID (Video Player-Ad Interface Definition) is a separate IAB standard that adds interactive JavaScript or Flash execution inside the player. VAST delivers the ad; VPAID enables the ad to communicate back with the player in real time. Many ad buyers historically bundled VPAID for viewability measurement, but security and performance concerns led major publishers including YouTube and Hulu to deprecate VPAID support in favor of VAST 4.x with OM SDK integration.
VAST vs. VMAP
VMAP (Video Multiple Ad Playlist) is a companion standard that defines ad break schedules for longer content. While VAST describes a single ad unit, VMAP tells the player where and when multiple VAST-served breaks should occur across a 30-minute episode, for example.
VAST and CPM Measurement
VAST tracking events feed directly into CPM billing and delivery reporting. The standard impression event fires when the ad starts playing (not on request), which is why VAST impression counts and ad server request counts routinely diverge. A typical completion rate formula derived from VAST tracking data:
Video Completion Rate (VCR) = (Complete Events / Impression Events) × 100
For reference, Innovid’s 2024 CTV Benchmarks report pegged average VCR at 95% for CTV pre-roll ads served via VAST, compared to 72% for desktop in-stream inventory, reflecting the difference in skip availability and viewing context.
Common VAST Error Codes
VAST specifies a set of numeric error codes returned when delivery fails, reported via the <Error> tracking URL in the XML. Publishers use these to diagnose integration issues:
- 100: XML parsing error (malformed VAST document)
- 200: Trafficking error (linear element not found)
- 300: Wrapper limit reached (chain too long)
- 400: Media file not found or unsupported codec
- 900: Undefined error
Error code 400 is the most frequent cause of failed impressions in mobile environments, typically triggered when ad servers return only desktop-spec H.264 files at bitrates above what mobile bandwidth supports.
Implementation Checklist for Publishers
- Confirm your video player supports the VAST version your demand partners are supplying (4.x preferred)
- Limit wrapper chain depth to three hops
- Set a VAST load timeout between 3 and 5 seconds; fire the error URL on timeout rather than blocking playback
- Validate VAST responses with the IAB’s free VAST Inspector tool before launching new integrations
- Request mezzanine files from creative partners when running server-side ad insertion to avoid transcoding mismatches
VAST does not guarantee ad quality, fill rate, or viewability on its own. It provides the standardized delivery channel through which those outcomes are achieved, making it the foundational layer of every programmatic video campaign running at scale today.
Frequently Asked Questions
What is VAST in video advertising?
VAST (Video Ad Serving Template) is an XML-based IAB standard that defines how video players request and receive ads from ad servers. It standardizes the data format so any compliant player can serve ads from any compliant ad server without custom technical integrations between each pairing.
What is the difference between VAST and VPAID?
VAST delivers video ads to players. VPAID adds an interactive JavaScript layer that lets the ad communicate back with the player in real time. Most major publishers including YouTube and Hulu have moved away from VPAID due to security and performance issues, replacing it with VAST 4.x combined with the OM SDK for viewability measurement.
Which VAST version should publishers use?
VAST 4.x is the current recommended standard as of 2026. It includes native support for server-side ad insertion, connected TV, closed captions for ad creative, and improved viewability signals. Publishers may still encounter VAST 2.0 or 3.0 responses from older demand partners serving legacy inventory.
What is a VAST wrapper?
A VAST wrapper is an XML element that points to another VAST URL instead of containing the ad directly. Wrappers allow multiple intermediaries, such as DSPs and ad verification vendors, to participate in a single ad delivery chain. IAB guidelines recommend limiting wrapper chains to three hops to avoid timeout failures that inflate failed impression rates.
What causes VAST error code 400?
VAST error 400 means the player could not find or play the media file. In mobile environments, this most often happens when ad servers return only desktop-spec H.264 files at bitrates the device’s connection cannot support. Requesting mobile-appropriate file variants from creative partners resolves most 400 errors.
