VAST tracking events / Linear
fullscreen VAST tracking event
Short answer: Removed in VAST 4.0. Use playerExpand on 4.x tags. Removed in VAST 4.0.
Replacement: use playerExpand on VAST 4.0 and later. A 4.x player that sees fullscreen has no handler for it.
When it fires
Old name for the player entering a larger playback surface. VAST 4.0 replaced it with playerExpand because fullscreen described a browser state that does not exist on a television. Ad servers still emit fullscreen on 4.1 documents when the template was never updated.
The name described a browser, and VAST 4.0 retired it
fullscreen fired when linear playback entered a fullscreen surface. That is a browser state. A television does not have it. VAST 4.0 removed fullscreen and exitFullscreen and replaced them with playerExpand and playerCollapse, which describe the player surface instead.
A document that declares version 4.0 or later and still carries event="fullscreen" is a template that was not updated when the version attribute was. The XML is well formed. A 4.x player has no handler, so the URL is never requested. The replacement is playerExpand. Keeping both names does not hurt a 4.x player, and the old name still does not fire.
When the old name is still correct
VAST 2.0 and 3.0 include fullscreen. A player that only implements those versions will not call playerExpand, because that name does not exist yet. Match the event name to the version attribute on the document, not to the newest spec on the shelf.
version 4.1 has no fullscreen handler. Use playerExpand.
<VAST version="4.1">
<Ad>
<InLine>
<Creatives>
<Creative>
<Linear>
<TrackingEvents>
<Tracking event="fullscreen"><![CDATA[https://track.example.com/fs]]></Tracking>
</TrackingEvents>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>Both names in one template
A template that emits fullscreen and playerExpand on every version wastes one URL on every impression. Pick from the version attribute. 2.0 and 3.0 get fullscreen. 4.0 and later get playerExpand. Emitting the retired name on a 4.1 document does not cause a player error. The failure is silent, which is worse: the report looks like viewers never expanded, including the viewers who did.
exitFullscreen has to move at the same time, to playerCollapse. Updating one side of the pair leaves the return trip uncounted, and a report of expands with no collapses.
When the column stays empty
fullscreen was removed in VAST 4.0. A document at that version can still contain the element, and the player has no handler, so the URL is never requested. The name that replaced it is playerExpand.
Each wrapper hop may include its own fullscreen 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.0 | 3.0 | 4.0 | 4.1+ |
|---|---|---|---|
| Yes | Yes | Removed | Removed |
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="fullscreen">
<![CDATA[https://track.example.com/fullscreen]]>
</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
- VAST-4.0-tracking-event-removed: fullscreen/exitFullscreen tracking events were removed in VAST 4.0
- VAST-4.1-tracking-event-value: Tracking event attribute not in the valid set for this VAST version
Related events
- playerExpand: Fires when the player grows (4.0+ replacement for fullscreen).
- exitFullscreen: Removed in VAST 4.0. Use playerCollapse on 4.x tags.
- playerCollapse: Fires when the player leaves the expanded surface (4.0+).
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.