VASTlint

VAST tracking events / Linear

pause VAST tracking event

Short answer: Fires when linear playback is paused.

When it fires

Playback stopped without completing. Resume should follow if the user continues. Pause ads in the CTV Ad Portfolio are a different format; they use NonLinear creativeView, not this linear pause event.

This pause is the linear playhead stopping

pause fires when linear playback stops without ending. resume should follow if the viewer continues. A pause with no resume is an abandoned play. The quartiles simply stop arriving. complete does not fire.

A pause ad in the CTV Ad Portfolio is a different object. It is a NonLinear creative shown when the viewer pauses the content. Measure that unit with creativeView and overlayViewDuration. Putting event="pause" on that overlay records nothing about the pause ad, and it is the wrong container for this event even if the word matches the product name.

Where the event has to sit

pause is linear, and it has been in the set since VAST 2.0. No later version renamed it. rewind and resume are the neighboring state events. A template that sends all player-state events to one URL can still list them as separate Tracking elements. One element with a comma-separated event attribute is not in the spec. Each event is its own element.

One element, one event name. A comma-separated value matches nothing.

<Linear>
  <TrackingEvents>
    <Tracking event="pause,resume"><![CDATA[https://track.example.com/state]]></Tracking>
  </TrackingEvents>
</Linear>

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.

Pause inside a pod and pause of the content

A linear pause stops the ad. The content's pause, on a living-room remote, is what brings up a pause ad, and that unit is a separate creative with its own VAST. The content pause does not fire event="pause" on the ad that was playing, unless the ad playhead itself stopped. Mixing the remote event with this beacon attributes content pauses to the commercial.

In a pod, each ad has its own Linear and its own pause URL. A viewer who pauses the second ad must hit that ad's tracker. A single pause URL on the wrapper still fires, because wrapper tracking accumulates, and it fires for every ad in the pod that pauses. The wrapper URL cannot tell you which ad.

When the column stays empty

pause is in the VAST 2.0 set, and the current version still includes it. An empty column on a current player is not a version mismatch.

Each wrapper hop may include its own pause URL. The player requests every one of them when the event happens, so a chain of four hops produces four calls for one playback. An http URL on an https page is dropped by the browser before the ad server sees a miss. The event name can be right and the scheme can still zero the column.

Where it is valid

2.03.04.04.1+
YesYesYesYes

Legal containers: Linear. An event in the wrong container is not a player error. It is a URL nobody calls.

Using it in a tag

Put it in a Linear TrackingEvents block. It is not valid on the other creative types, and a player does not fire a tracker in the wrong container.

<Linear>
  <TrackingEvents>
    <Tracking event="pause">
      <![CDATA[https://track.example.com/pause]]>
    </Tracking>
  </TrackingEvents>
</Linear>

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.

Related vastlint rules

Related events

Check the XML, then confirm the beacons fire

Validate the event names and containers on the document. Test a live URL when the XML is clean and reporting is still empty.

Further reading