vastlint

VAST versions explained — 2.0 through 4.3

The IAB Tech Lab has published six versions of the VAST specification, and all of them are still in active use in production. This guide covers what each version introduced, what was deprecated, and how they compare — so you can choose the right version for your ad pipeline and validate correctly.

Version timeline

VersionReleasedKey addition
VAST 2.02008Foundation — inline, wrapper, tracking, companions
VAST 3.02012Skippable ads, industry icons, Ad Pods
VAST 4.02016Server-side ad insertion (SSAI), mezzanine files, UniversalAdId
VAST 4.12018OMID verification, interactive files, closed captions
VAST 4.22019Macro enhancements, conditional ad improvements
VAST 4.32022SIMID support, improved CTV measurement

VAST 2.0 — the foundation

VAST 2.0 is the baseline. It introduced the core structure that every later version builds on: inline ads, wrapper chains, impression tracking, companion ads, and media files with delivery and codec attributes. Most legacy ad servers and many DSPs still emit 2.0 tags.

Key elements:

  • <InLine> and <Wrapper>
  • <Impression>, <Tracking>, <ClickThrough>
  • <MediaFile> with delivery, type, width, height
  • <CompanionAds>

VAST 3.0 — skippable ads and Ad Pods

VAST 3.0 added support for skippable linear ads (via skipoffset), the Ad Pod sequence for mid-roll ad breaks, industry icon overlays, and VPAID integration for interactive creatives.

New in 3.0:

  • skipoffset attribute on <Linear>
  • <AdPod> sequencing for ad break scheduling
  • <Icons> for AdChoices and similar overlays
  • apiFramework="VPAID" on <MediaFile>
  • <AdParameters> for passing data to interactive creatives

VAST 4.0 — SSAI and mezzanine files

VAST 4.0 was a major revision targeting server-side ad insertion (SSAI) and CTV. It introduced mezzanine files (high-quality source for server-side transcoding), <UniversalAdId> for cross-platform ad deduplication, and deprecated VPAID in favor of more structured approaches.

New in 4.0:

  • <Mezzanine> / <MediaFile> with fileSize
  • <UniversalAdId> — unique ad identification across systems
  • <Category> for content categorization
  • <ViewableImpression> for viewability tracking
  • VPAID officially discouraged — beginning of deprecation

VAST 4.1 — OMID and interactive files

VAST 4.1 introduced the <Verification> element (part of the OMID framework) for third-party measurement, <InteractiveCreativeFile> for SIMID-based interactivity, and <ClosedCaptionFiles> for accessibility.

New in 4.1:

  • <AdVerifications><Verification> (OMID)
  • <InteractiveCreativeFile>
  • <ClosedCaptionFiles>
  • Refined error codes and reporting

VAST 4.2 — macros and conditional ads

VAST 4.2 was a maintenance release with improvements to macro handling, conditional ad support, and measurement standards. It clarified the behavior of several elements and added explicit macro-replacement rules.

VAST 4.3 — CTV and SIMID

The latest version, VAST 4.3, extends CTV measurement capabilities and formalizes SIMID (Secure Interactive Media Interface Definition) as the interactive ad standard, replacing VPAID entirely. It also adds improved support for podded ad experiences on streaming platforms.

Which VAST version should I use?

  • VAST 4.2 or 4.3 — recommended for new implementations. Full feature set, OMID verification, UniversalAdId, no VPAID dependency.
  • VAST 3.0 — still common in the long tail. If you're accepting third-party tags, expect to encounter 3.0 frequently.
  • VAST 2.0 — legacy. Still emitted by older ad servers. Accept it as input but don't generate it for new campaigns.

vastlint detects the version automatically from the version attribute and validates against the correct spec. Elements that are invalid for the declared version are flagged — for example, using <UniversalAdId> in a VAST 3.0 document.

Version compatibility matrix

Feature2.03.04.04.14.24.3
Inline / Wrapper
Skippable ads
VPAID⚠ Deprecated✗ Removed
UniversalAdId
OMID Verification
Mezzanine files
SIMID
Closed captions

Validate across all versions

vastlint validates VAST 2.0 through 4.3 with version-aware rules. Paste a tag into the web validator to see exactly which rules fire for your declared version.

Further reading