VASTlint

VAST tracking events / NonLinear

close VAST tracking event

Short answer: Fires when a NonLinear creative is closed by the user.

When it fires

The overlay or companion was dismissed. This is a NonLinear event. Linear close moved to closeLinear in later versions. Putting close on a Linear creative is the wrong container.

close belongs on the overlay

close fires when the user dismisses a NonLinear creative. It is the end of an overlay, not the end of a linear spot. Linear close is closeLinear, which VAST 3.0 added and VAST 4.1 keeps. A linear template that still emits close is pointing at the NonLinear name.

On VAST 4.0 and later, minimize is a different gesture: the overlay is tucked away and may come back. close is dismissal. adCollapse is the creative leaving an expanded state. A report that files all three under one label cannot tell a dismissed pause ad from a minimized one.

What you still have on an older document

close has been valid since VAST 2.0. A 2.0 overlay has creativeView, acceptInvitation, and close, and it does not have overlayViewDuration, adExpand, or minimize. Those arrived in 4.0. Do not add them to a document whose version attribute is 2.0 and expect a 2.0 player to call them.

Close on a companion versus close on an overlay

A companion that the viewer dismisses can emit close when the companion container allows it. Many companions only ever emit creativeView, because the player never wires a close control to the companion document. An empty close column on a companion-only tag is often that missing control, not a misspelled event.

An overlay that auto-hides at the end of Duration may emit close, overlayViewDuration, or both. If you need the duration, do not infer it from close. close has no duration parameter. The time is on overlayViewDuration, and only from VAST 4.0.

When the column stays empty

close 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 close 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: NonLinear. 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 NonLinear TrackingEvents block. It is not valid on the other creative types, and a player does not fire a tracker in the wrong container.

<NonLinear>
  <TrackingEvents>
    <Tracking event="close">
      <![CDATA[https://track.example.com/close]]>
    </Tracking>
  </TrackingEvents>
</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.

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