VAST XML guides
Two types of guides: platform guides cover what each player or ad server requires, blocks, and how to validate before delivery; creative type guides cover how to build each ad format correctly in VAST XML. After reading, paste your tag into the VAST validator to check it against all 118 IAB rules.
Web players
VAST 2.0–4.3 supported. VPAID 2.0 JS allowed on web; blocked on IMA for CTV. Wrapper chain limit: 4 hops. All URLs must be HTTPS.
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 Advertising Framework supports VAST 2.0–4.1. VPAID is blocked entirely. Wrapper chains must resolve within 4 hops. MP4 (H.264) required.
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
GAM serves VAST 2.0–4.3. Wrapper chains limited to 4 hops. VPAID deprecated since 2022. All creative assets must use HTTPS.
TTD supports VAST 2.0–4.0. VPAID is blocked on CTV inventory. HTTPS required. UniversalAdId recommended for cross-platform frequency capping.
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.
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: