VASTlint

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.03.04.04.1+
YesYesRemovedRemoved

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

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