VASTlint

VPAID vs VAST: what's the difference?

Short answer: VAST is the XML delivery standard — it describes the ad, where to fetch media, and which tracking pixels to fire. VPAID was a JavaScript API that ran inside the player and was referenced from a VAST tag. They are different standards that work together. VPAID is now deprecated; SIMID and OMID are its replacements.

Working with a VAST tag that uses VPAID?

Validate it to surface the deprecation warning and see what needs to change before it fails on CTV or in an SSAI environment.

What VAST does

VAST (Video Ad Serving Template) is an XML document returned by an ad server. It tells the video player:

  • Where to fetch the video creative (the <MediaFile> URLs)
  • Which tracking pixels to fire (impressions, quartile events, clicks)
  • How to handle wrapper chains and ad pods
  • What companion ads to display alongside the video

VAST does not execute code. It is a declarative description of an ad. The current version is VAST 4.3, with a 2024 CTV Addendum for streaming environments.

What VPAID does

VPAID (Video Player-Ad Interface Definition) is a separate JavaScript API standard. A VPAID ad unit is a .js file that the player downloads and executes. The player calls into a standardised VPAID API (initAd(), startAd(), etc.) and the ad unit responds with events.

VPAID enabled capabilities VAST alone could not provide:

  • Interactive overlays, expandable panels, surveys, and mini-games
  • Precise viewability measurement (because the script ran in the player context)
  • Rich engagement metrics beyond standard tracking pixels

How they work together in a VAST tag

A VPAID creative is delivered via VAST. The VAST tag contains a <MediaFile> with apiFramework="VPAID" instead of a normal video URL:

<!-- VPAID delivered via VAST -->
<MediaFile delivery="progressive"
           type="application/javascript"
           apiFramework="VPAID"
           width="640"
           height="360">
  <![CDATA[https://adserver.example.com/creative.js]]>
</MediaFile>

The player fetches the VAST XML, sees apiFramework="VPAID", loads the JavaScript file, and hands control to the VPAID unit for the duration of the ad.

Side-by-side comparison

PropertyVASTVPAID
FormatXML documentJavaScript file + API contract
RoleAd delivery & tracking containerInteractive executable layer
Executes code?NoYes — in the player's JS context
CTV supportYes (native player reads XML)No (no browser JS runtime)
SSAI supportYesNo (server-side stitching, no JS runtime)
Current statusActive — VAST 4.3 is currentDeprecated (VPAID 2.0 was final version)
ReplacementSIMID (interactivity), OMID (measurement)

Why VPAID is deprecated

Three fundamental problems ended VPAID:

  • Security: VPAID ran in the same JavaScript context as the publisher's page. A malicious creative had full DOM access — a vector for ad fraud, data theft, and malware distribution.
  • CTV and SSAI incompatibility: Neither native CTV players nor server-side ad insertion have a browser JavaScript runtime. VPAID simply cannot execute in these environments, which now represent the majority of premium video inventory.
  • Latency: Because the VPAID script controlled media loading, the video asset could not be pre-buffered. Every impression paid a startup-latency penalty.

What replaced VPAID

VPAID use caseReplacement standardHow it works
Interactive overlays, expandable creativesSIMID 1.2Sandboxed iframe + postMessage; player retains media control
Viewability & verification measurementOMID (Open Measurement SDK)Separate SDK integrated by the player; no creative-side JS access

SIMID is referenced in VAST 4.x via the <InteractiveCreativeFile apiFramework="SIMID"> element alongside a normal video <MediaFile>. The player pre-buffers the video and loads the SIMID iframe separately — solving both the latency and the security problem.

Migrating from VPAID

If you are maintaining VAST tags that still reference VPAID:

  1. Validate the tag — VASTlint will flag apiFramework="VPAID" on any <MediaFile> with rule VAST-2.0-vpaid.
  2. Determine which VPAID use case applies: interactivity (→ SIMID) or measurement (→ OMID).
  3. Follow the VPAID to SIMID migration guide for step-by-step XML changes and creative requirements.
Validate a VAST tag now to surface VPAID deprecation warnings and other delivery issues.Validate a tag →

Further reading