Tech Stack · Ad Serving

What is VAST? How the video ad serving standard works in CTV

VAST — Video Ad Serving Template — is the IAB Tech Lab standard that defines how a video player requests an ad from an ad server and how the ad server responds. Every video ad you see on CTV, mobile video, or digital video pre-roll is delivered via a VAST tag. VAST is not a technology in itself; it is a specification — an XML document format that tells the video player what creative to fetch, where to track events, and how long the ad runs. Without VAST, every ad server and video player would need a bespoke integration. With VAST, any VAST-compliant player can work with any VAST-compliant ad server.

How a VAST request works

The sequence from ad break trigger to video playback:

  1. Ad break triggered: The CTV app's video player reaches an ad break point (pre-roll, mid-roll, or post-roll) and sends an HTTP GET request to the ad server's VAST endpoint URL.
  2. Ad server responds with VAST XML: The ad server returns an XML document containing: the ad creative URL (the actual video file, hosted on a CDN), event tracking URLs (for start, quartile fires, complete), click-through URL, and ad metadata (duration, title, ad system).
  3. Video player fetches the creative: The player reads the media file URL from the VAST XML and fetches the video file from the CDN. On CTV with SSAI, the ad insertion server does this step server-side — the device receives a stitched stream.
  4. Player fires tracking beacons: As playback progresses, the player (or SSAI server) sends HTTP GET requests to the impression, quartile, and complete tracking URLs declared in the VAST XML.

The entire exchange — VAST request, XML response, creative fetch, initial beacon fire — must complete within approximately 3 seconds on CTV. Delays at any step produce a VAST timeout error and the ad break may go unfilled.

VAST versions and what changed

The IAB has released multiple VAST versions, each adding capabilities:

  • VAST 2.0: The baseline — linear video ads, companion banners, click-through tracking. Widely supported but lacks pod sequencing and verification features.
  • VAST 3.0: Added ad pods (multiple ads in a sequence, as in a TV commercial break), industry icons, and improved error reporting. VAST 3.0 is the minimum standard for CTV ad pods.
  • VAST 4.0 / 4.1 / 4.2: Added server-side ad insertion support, ad verification (third-party script execution for measurement), universal ad ID for creative tracking across platforms, and improved mezzanine file handling. VAST 4.x is the standard for programmatic CTV on major India publishers.

In practice, India CTV publisher support varies. JioHotstar and SonyLIV support VAST 4.x for programmatic buys via Magnite and PubMatic. Some smaller India CTV apps support only VAST 3.0 or even VAST 2.0. Buyers running third-party verification (IAS, DoubleVerify) need VAST 4.x with the AdVerifications node — verify with the publisher's ad ops team before assuming compatibility.

VAST errors and what causes them

VAST defines a standard set of error codes returned when the ad request or delivery fails. The most common in CTV:

  • Error 303 (VAST redirect limit reached): VAST wrappers allow ad servers to chain — DSP returns a VAST wrapper pointing to a second ad server, which may point to a third. India programmatic CTV often has 3–4 wrapper hops (DSP → trading desk → ad server → CDN). Each hop adds latency; three or more hops in a slow network produces a 303 error. Fix: reduce wrapper depth; negotiate with DSP to provide inline VAST.
  • Error 401 (file not found): The creative URL in the VAST XML is broken or the CDN returns a 404. Most common when creative assets are not properly trafficked or when CDN URLs expire. Fix: validate creative URLs before campaign launch; use permanent CDN paths not signed URLs.
  • Error 402 (media file timeout): The creative file takes too long to download. On slower India broadband (particularly tier-2 city CTV viewers), large creative files (10MB+ for a 30-second ad) time out. Fix: target creative files under 5MB for 30-second ads; ensure CDN point-of-presence in India.
  • Error 900 (undefined): Catch-all for player-side errors. Requires publisher-side debugging. High 900 rates usually indicate a player integration issue rather than a creative problem.

DSP campaign reports show VAST error rates. A healthy CTV campaign should see VAST errors below 3% of impressions. Rates above 5% require investigation — they directly reduce effective reach and inflate apparent CPMs.

VAST in India CTV buying

India CTV buyers encounter VAST most directly in two contexts:

  • Creative trafficking: When uploading a creative to DV360 or The Trade Desk for a CTV campaign, the DSP generates a VAST tag wrapping the creative. The buyer specifies the video file; the DSP handles VAST generation. However, buyers using third-party ad servers (Campaign Manager, Sizmek) generate VAST tags themselves and traffic them to the DSP — requiring correct VAST version selection and event tracking setup.
  • VAST error diagnosis: When a CTV campaign underdelivers or shows unexpectedly low VCR, VAST error codes in the DSP report are the first diagnostic. A high 303 rate points to wrapper chain issues; a high 402 rate points to creative file size or CDN geography.

For India specifically: India CTV viewing on mobile broadband (JioFiber, Airtel) has lower tolerance for large creative files than US/UK CTV on cable. The 5MB creative file target is more important in India than in markets with uniformly fast broadband.

Related concepts