Pause ads in VAST XML
A pause ad renders when the viewer stops playback. It is the most widely deployed of the six CTV Ad Portfolio formats, and the one with the cleanest premise: the viewer chose the moment, nothing is being interrupted, and the screen is otherwise showing a frozen frame.
Structurally a pause ad is a <NonLinear> creative. That element used to carry a static image and nothing else. Since the CTV Ad Portfolio work it carries a <MediaFiles> container, so a pause ad can be an MP4, a still, or an interactive unit with a fallback.
Quick reference
| VAST element | <NonLinear> inside <NonLinearAds> |
| Declare version | 4.2 or 4.3. Not 4.4 |
| plcmt | 5 |
| playbackmethod | 8 (sound on) or 9 (sound off) |
| pos | 7 fullscreen, 8 partial screen |
| attr | 21 static, 22 cinemagraph, 23 full motion |
A minimal pause ad
<VAST version="4.2" xmlns="http://www.iab.com/VAST">
<Ad id="pause-1">
<InLine>
<AdSystem version="1.0">My Ad Server</AdSystem>
<AdTitle>Pause takeover</AdTitle>
<AdServingId>a7f3-pause-0001</AdServingId>
<Impression><![CDATA[https://track.example.com/imp]]></Impression>
<Creatives>
<Creative id="c1">
<UniversalAdId idRegistry="Ad-ID">PAUSE1234</UniversalAdId>
<NonLinearAds>
<NonLinear width="1920" height="1080">
<Duration>00:00:15</Duration>
<MediaFiles>
<MediaFile delivery="progressive" type="video/mp4" width="1920" height="1080">
<![CDATA[https://cdn.example.com/pause.mp4]]>
</MediaFile>
</MediaFiles>
<NonLinearClickThrough><![CDATA[https://brand.example.com/offer]]></NonLinearClickThrough>
<NonLinearClickTracking><![CDATA[https://track.example.com/click]]></NonLinearClickTracking>
</NonLinear>
<TrackingEvents>
<Tracking event="creativeView"><![CDATA[https://track.example.com/view]]></Tracking>
<Tracking event="overlayViewDuration"><![CDATA[https://track.example.com/duration]]></Tracking>
</TrackingEvents>
</NonLinearAds>
</Creative>
</Creatives>
<Extensions>
<Extension type="plcmt" ext="adcom"><plcmt>5</plcmt></Extension>
<Extension type="pos" ext="adcom"><pos>7</pos></Extension>
<Extension type="playbackmethod" ext="adcom"><playbackmethod>9</playbackmethod></Extension>
<Extension type="attr" ext="adcom"><attr>23</attr></Extension>
</Extensions>
</InLine>
</Ad>
</VAST>Duration is not optional in practice
The schema keeps <Duration> optional on <NonLinear>, with a specific carve-out: a static image used for pause may genuinely have no known duration at response time, and the publisher expresses it in the bid request instead.
A video MediaFile has a known duration by definition. Ship one without a Duration and the ad renders while your measurement stack sees nothing, because quartile and overlayViewDuration tracking have no timeline to sit on. VASTlint reports VAST-4.4-nonlinear-video-no-duration for exactly this case.
Sound is a signal, not a default
Pause placements split into sound-on and sound-off environments, and the split is a publisher decision that varies by app and by device. The portfolio gives each its own playback method: 8 for pause with sound on, 9 for pause with sound off.
The creative has to work in the declared mode. A sound-off pause ad whose message depends on a voiceover is a delivered impression and a wasted one, and no validator will tell you that. A validator will tell you when the declared playback method contradicts the format, which VASTlint reports as VAST-4.4-adcom-playbackmethod-format-mismatch.
Static, cinemagraph, or full motion
The three motion attributes are the most commercially loaded part of the whole portfolio. Some pause placements render an MP4 as a frozen frame by design, because motion on a paused screen reads as a glitch. Before the portfolio there was no way to express that: a publisher either accepted video or did not.
| attr | Meaning | Typical use |
|---|---|---|
| 21 | Static visual, no perceptible motion even when delivered as a video file | Publisher wants a still, DSP delivers MP4 |
| 22 | Limited motion, subtle or localized movement in a static composition | Cinemagraph pause creative |
| 23 | Full-motion video, continuous scene-level motion | Video pause takeover |
A publisher blocks what it does not want with battr on the request. The DSP declares what it delivered with attr on the response. Two halves of one check, and a publisher running both can see when they disagree.
Interactive pause units
Pause is the natural home for interactivity, because the viewer is already stopped. The preferred pattern puts the SIMID file inside the NonLinear MediaFiles container alongside a renderable fallback:
<NonLinear width="1920" height="1080">
<Duration>00:00:15</Duration>
<MediaFiles>
<MediaFile delivery="progressive" type="video/mp4" width="1920" height="1080">
<![CDATA[https://cdn.example.com/pause-fallback.mp4]]>
</MediaFile>
<InteractiveCreativeFile type="text/html" apiFramework="SIMID">
<![CDATA[https://cdn.example.com/pause-simid.html]]>
</InteractiveCreativeFile>
</MediaFiles>
</NonLinear>VAST XML fragment only. This excerpt belongs inside a complete VAST document, so standalone validation will fail until it is wrapped in a full <VAST>response.
The older <IFrameResource apiFramework="SIMID"> form still works but is explicitly not recommended for portfolio NonLinear ads, because it conflates the interactive layer with the renderable asset. VASTlint flags it as VAST-4.4-nonlinear-simid-iframe.
Ship the fallback. SIMID support across CTV devices is nowhere near universal, and an interactive-only unit fires the error URI and loses the impression on every device that cannot execute it. That is VAST-4.4-nonlinear-no-renderable-asset, and it is the single most expensive mistake in this format.
Common mistakes checklist
- Declaring version 4.4. The new NonLinear model is accepted on 4.2 and 4.3, and IAB's own examples ship on 4.2. A strict version gate will reject 4.4.
- Video MediaFile with no Duration. The ad renders, the measurement does not.
- Interactive creative with no fallback MediaFile. Silent no-fill across a large share of devices.
- Signals that describe two formats. A
plcmtof 5 with squeezeback geometry inposis two claims about one ad. - Assuming sound. The playback method is a declaration about the environment, not a preference you can override in the creative.
- Reusing linear tracking assumptions. A NonLinear creative does not fire the linear quartile set by default. Use
creativeViewandoverlayViewDuration, and see the tracking event reference for which events apply where.