All tools

VMAP Inspector

Parse VMAP 1.0 playlists and inspect ad break offsets and nested VAST ad tag URIs.

Start trading TV

Need CTV ad serving for production?

LtvAdx delivers sub-10ms VAST 4.2, SSAI, and OpenRTB for publishers and advertisers.

No minimum spend48-hour account reviewVAST 4.2 + SSAI docs includedIAB-compliant stack
IAB-compliant

<10ms

VAST decision latency

p99 under 15ms — product specification

IAB-compliant

7-tier

HouseholdID graph tiers

UID2 · PPID · ADID · DeviceID · ACR · IP/24 · fingerprint

Illustrative platform metrics · System status

VAST 4.2VMAP 1.0.1OpenRTB 2.6schainTCF 2.2CCPASCTE-35HouseholdID

VMAP — Video Multiple Ad Playlist — is the protocol publishers use to define the complete ad schedule for a piece of content before playback begins. Instead of calling an ad server at the moment each break begins (which adds latency), publishers can pre-fetch the entire VMAP at content load time, resolving all ad decisions in advance. The VMAP document specifies the breaks, their time offsets, whether they are pre-roll, mid-roll, or post-roll, and what VAST ad tag to call for each break. Players that support VMAP can buffer the first ad creative during content pre-roll, eliminating the visible load delay that frustrates viewers and hurts completion rates.

VMAP break positions use three offset formats. Time offset (HH:MM:SS.mmm) places a break at a specific timestamp in the content — common for long-form VOD. Percentage offset (e.g., '50%') places a break at the midpoint regardless of content duration. Position identifiers — 'start' and 'end' — define pre-roll and post-roll breaks. A VMAP document for a 60-minute TV episode might define 8–10 mid-roll breaks at time offsets of 8:00, 18:00, 28:00, and so on, plus a pre-roll and post-roll. The inspector renders each break in timeline order, showing the offset format, the VAST tag URI for that break, and any repeatAfter rules.

The repeatAfter attribute in VMAP defines breaks that recur at regular intervals. A repeatAfter value of '00:10:00' on a mid-roll break means the player should request an ad every 10 minutes after the defined offset. This is commonly used in live stream contexts where content length is undefined — rather than pre-defining specific time offsets for dozens of breaks, the publisher sets one recurring rule. The inspector surfaces repeatAfter values explicitly because they are frequently misconfigured: a missing repeatAfter that should be present causes the player to serve only the first defined break and skip all subsequent ones.

Ad break type (linear, nonlinear, companion) determines what creative format the player requests at that break. Most CTV VMAP documents use only linear breaks — full-screen, unskippable mid-roll video ads. Nonlinear and companion break types are more common in desktop web video. When inspecting a VMAP intended for CTV deployment, confirm that all breaks use the linear type and that the VAST AdTagURI for each break resolves to a tag configured to return linear creatives — a VAST tag returning nonlinear overlay ads will fail silently in most CTV players.

Frequently asked questions

When should I use VMAP instead of calling VAST directly at break time?

Use VMAP when you control the content player and can pre-fetch the ad schedule at content load time. VMAP reduces mid-roll ad load latency — the player resolves VAST tags in advance and can buffer creatives before the break begins, preventing the blank-screen delay that triggers viewer abandonment. VAST-only ad calls at break time work when the publisher has no control over the player's ad scheduling layer, or when each break's inventory is sold through a real-time auction that can't be pre-resolved.

What does a VMAP error 400 mean?

VMAP error 400 (Ad Break Not Found) fires when the player encounters a VMAP document that doesn't contain an ad break definition for the requested offset or position. Common causes: a time-offset break in the VMAP uses seconds format (e.g., '480') instead of HH:MM:SS.mmm (e.g., '00:08:00.000'), the 'start' or 'end' position identifiers are missing for pre/post-roll, or the VMAP document is malformed and the player can't parse the AdBreak nodes. Use the VMAP Inspector to confirm all break offsets are in the correct format before deploying.

Can I use VMAP for CTV live streams?

Yes, with repeatAfter. For live streams where content length is undefined, define one or two mid-roll breaks with a repeatAfter attribute that sets the minimum interval between ad breaks (e.g., '00:08:00' for 8-minute spacing). The player will request new ads at those intervals. Pre-roll and post-roll breaks are also supported in live streams via the 'start' and 'end' position identifiers, though post-roll is rarely used in live contexts. Most CTV live stream implementations use VMAP with 2–4 mid-roll break definitions and repeatAfter rather than pre-defining dozens of individual time offsets.