Dev.to · 5 min read

The VAST Tracking Events Cheat Sheet Every Ad Ops Engineer Needs

The VAST Tracking Events Cheat Sheet Every Ad Ops Engineer Needs

On November 10, 2026, IAB Tech Lab announced expanded OM SDK support for pause, menu, screensaver, and overlay ads in the CTV Ad Portfolio, on top of CTV ad format signaling that pairs OpenRTB placement metadata with NonLinear VAST. Buyers and verification vendors can finally agree on impression methodology for those formats. Revenue and delivery reporting still ride on VAST event names the player recognizes: pause and overlay inventory expects creativeView and overlayViewDuration, not the linear quartile set. If your trafficking template still copies :30 pre-roll pixels onto every response, the tag validates and the report comes back empty. This sheet is for ad ops and player engineers who negotiate discrepancy meetings. It is the bookmark beside the spec when you are auditing a live chain, not a substitute for the full VAST tracking events reference. Signals at the top of the funnel Impression is not a tracking event. It is its own element on or . Wrappers are allowed to carry one or more impression pixels from each hop in the chain; the player is supposed to fire all of them when the ad is shown. Tracking events live under inside , , or . Which names are legal depends on both the declared VAST version and which container you used. Signal Element Typical creative First spec version What it measures Billable display under InLine or Wrapper Any VAST 2.0 Ad was rendered (contract-dependent) Asset ready loaded Linear VAST 4.1+ Media fetched; playback not started First paint creativeView Linear, NonLinear, Companion VAST 2.0 Creative first displayed Playback start start Linear VAST 2.0 First frame of linear video Quartiles firstQuartile, midpoint, thirdQuartile, complete Linear VAST 2.0 Progress against Timed beacon progress (requires offset) Linear VAST 3.0+ Wall-clock or content position Dwell on overlay overlayViewDuration NonLinear (CTV pause, overlay) VAST 4.0+ How long the overlay stayed up Skip contract skip Linear with skipoffset VAST 3.0+ User skipped before complete Player chrome playerExpand / playerCollapse Linear VAST 4.0+ Player resized (replaces fullscreen) Interaction close, acceptInvitation NonLinear, Companion VAST 2.0 User dismissed or engaged One attribute example: progress without offset="HH:MM:SS" or offset="N%" is an incomplete node. Players that honor progress treat the offset as part of the contract, not decoration. Wrapper versus InLine: who owns which URL Location Required children (VAST 2.0 baseline) Tracking behavior AdSystem, VASTAdTagURI; at least one recommended on every hop Contributes impression, error, and wrapper-level trackers; no or quartiles here AdSystem, AdTitle, Impression, Creatives with media Owns , MediaFiles, and creative-level If you only validate the first URL in a ticket, you are inspecting wrapper metadata. Quartiles and duration live on the inline at the bottom of the chain. The wrapper chains guide walks the hop order; the rule ad-has-inline-or-wrapper is the structural gate every hop must pass. Rows that validate and still fail in production start under a NonLinear pause creative. XML parsers accept it. There is no linear playhead, so nothing calls the URL. IAB portfolio pause inventory expects creativeView plus overlayViewDuration. A DSP that clones pre-roll quartiles onto a static pause JPG looks fine in a text editor and dies in measurement. For programmatic pause buys, see also Netflix pause ads and NonLinear VAST. fullscreen on a document declaring VAST 4.1. VAST 4.0 removed fullscreen and exitFullscreen in favor of playerExpand and playerCollapse. A 4.x player reading the old names has no handler. The mismatch is versioning, not a bad URL string. loaded on a VAST 3.0 response. loaded arrives in VAST 4.1. Trafficking tools that always emit it peg the version incorrectly or ship an event the player ignores. Compare delivery (loaded) versus exposure (start) when SSAI stitches faster than the device renders. Wrapper with no . Some exchanges treat impression as optional on wrappers; buyers still expect the SSP hop to bill. A structurally thin wrapper validates while silently dropping a party's pixel. See the wrapper missing impression example and the wrapper-impression rule note. Quartiles without . Wrappers never carry duration. If the inline forgot , the player has no timeline for midpoint and complete. The creative plays; completion rate goes to zero. How you catch it Paste or fetch the tag in the VAST tag tester to see the resolved inline, preview media, and which tracking nodes survived the fetch. When the ticket is a URL that wraps through an SSP and a DSP, open the VAST inspector and walk hop by hop: wrapper impressions, VASTAdTagURI depth, and where the inline handoff happens. For IAB sample NonLinear creatives and portfolio handshakes, the IAB-style VAST tester runs SIMID studio and sample tags (an independent fork, not an IAB Tech Lab product). vastlint (cargo install vastlint, npm install vastlint) is the deterministic check on the XML contract, including unknown event names for the version you declared. An LLM or codegen tool can emit tracking XML that still returns OK from a shallow schema check; the wire format does not move. vastlint is independent of IAB Tech Lab and of AAO; the spec does not require it. CLI on a file or URL: $ vastlint check path/to/vast.xml $ vastlint check "https://example.com/vast?pid=1" Where to go next Full event list by version and creative type: VAST tracking events. Wrapper hop billing and clickthrough: validate clickthrough in wrappers. Wrapper AdSystem attribution when the chain breaks: VAST-2.0-wrapper-adsystem. Portfolio format expectations beside OM SDK: CTV Ad Portfolio. Per-event pages when one beacon disagrees with the rest of the flight: loaded versus start on 4.1+ linear. Discrepancies between impression, start, and complete are usually event vocabulary problems, not audience problems. Fix the names and the container before you blame the player SDK.

This is a summary aggregated from Dev.to. Read the complete article on the original site:

Read full article at Dev.to

More AI & Machine Learning News