VAST tag guides
Three types of guides: platform guides cover what each player or ad server requires, blocks, and how to validate before delivery; standards guides explain the core IAB rules behind validation; creative type guides cover how to build each ad format correctly in a VAST tag. Where raw XML details matter, each guide calls them out. After reading, paste your tag into the VAST validator to check it against the published VAST specs.
Web players
Google IMA SDK VAST validator guide. VAST 2.0–4.3 supported, VPAID 2.0 JS on web only, 4-hop wrapper limit, HTTPS required.
JW Player supports VAST 2.0–4.x and VPAID 2.0 JS on desktop web. Wrapper chains up to 5 hops. HTTPS required.
Video.js with videojs-contrib-ads supports VAST 2.0–4.x. VPAID 2.0 JS supported via plugin. Follows browser HTTPS mixed-content rules.
CTV platforms
Roku VAST validator guide. RAF supports VAST 2.0–4.1, blocks VPAID entirely, times out deep wrappers, and requires MP4 H.264.
Fire TV supports VAST 2.0–4.0. VPAID is blocked. All media and tracking URLs must use HTTPS. Companion ads are ignored.
tvOS supports VAST 2.0–4.1 via IMA SDK. VPAID is blocked. H.264/AAC MP4 required. Wrapper chains must resolve within 4 hops.
Samsung Smart TV (Tizen) supports VAST 2.0–4.1 via IMA SDK. VPAID blocked. HTTPS required for all assets.
LG webOS supports VAST 2.0–4.1 via IMA SDK. VPAID blocked. MP4 H.264 required. All URLs must be HTTPS.
Ad servers & DSPs
Google Ad Manager VAST validator guide. GAM serves VAST 2.0–4.3, adds one wrapper hop, deprecates VPAID, and requires HTTPS creative assets.
Publica VAST validator guide. Validate tags before unified auction, SSAI, and ad-pod workflows. Focus on creative compatibility, deduplication, and pod quality.
The Trade Desk VAST validator guide. Use vastlint to check TTD tags for CTV-safe media, HTTPS, shallow wrappers, and UniversalAdId.
Standards & specs
Developer integrations
Creative types
The standard 15s/30s in-stream format with no skip button. Required elements, duration constraints, and MediaFile requirements for every platform.
Linear ad with a skipoffset attribute. Skip button shown after N seconds. Requires SkippedTracking event. Supported on all web and CTV platforms.
Non-skippable linear ≤6 seconds. No skip or close button. High completion rates. Sequence attribute used in ad pods.
User-initiated linear ad played to completion for a reward. No skip. Complete tracking event required. Common in mobile and gaming.
Linear ad that plays outside a video stream, typically in-article. Muted autoplay, viewability-gated impression firing, no companion ads.
Overlay displayed over video during playback. NonLinear element with minSuggestedDuration. Image or HTML resource. Often misunderstood.
Display ads served alongside a video ad. CompanionAds element. Three resource types: StaticResource, IFrameResource, HTMLResource.
Sequence of linear ads in a single break. Multiple Ad elements with sequence attribute. AdPod type in VAST 4.x with maxAds and maxDuration.
Redirecting VAST tags for third-party ad serving and measurement. Chain depth limits, latency impact, and follow* attribute behaviour.
Interactive creative replacing VPAID. InteractiveCreativeFile with apiFramework="SIMID". Sandboxed iframe communication via postMessage.
Troubleshoot SIMID VAST tags fast. Fix empty or HTTP iframe URLs, wrong type attributes, missing IFrameResource markup, and missing MediaFile fallback.
Migrating from deprecated VPAID to SIMID or native VAST. VPAID is blocked on all CTV environments. Step-by-step migration checklist.
After reading a guide
Every guide ends with a checklist of the most common mistakes for that platform or creative type. Once you've made your fixes, validate your tag to confirm: