VAST (Video Ad Serving Template) is a specification defined and released by the Interactive Advertising Bureau (IAB) that sets a standard for communication requirements between ad servers and video players in order to present video ads.
Using VAST, a digital signage player can automatically request an ad from an ad server, display it and report back to the ad server. This is important for advertisers because it gives them control of their ads and provides them live impression and tracking data.
To link the stacks platform to an ad server, special web addresses are used. These web addresses (also known as URLs) are issued by the ad server and will typically be provided by an advertising agency.
Linking a sequence to VAST
Ensure the VAST is suitable. The XML structure can be checked by opening the VAST URL in a web browser. It will look something like this:
<AdSystem version="1.0">My Ad System</AdSystem>
<MediaFile delivery="progressive" type="video/mp4">
The stacks platform supports VAST versions 2.0 to 4.2 as defined at the top of the XML. To display ads without interruption they are pre-cached by the player. Ensure media file delivery is progressive. Also ensure the type is video/mp4.
To link the sequence into stacks, perform the following steps:
- Create a new sequence
- Provide a label for the new sequence e.g. My VAST Ads
- Change sequence type to Populated by VAST
- Provide the VAST address into the text area
- Click Save
The new sequence will be displayed in the admin interface. Please note, the ads shown may not be the same as those played by the player. This is because most ad servers dynamically change the ads based a variety of metrics and the players will be issued different VAST responses.
To display the ads within your main sequence of content. Add a new item in your main sequence that displays the VAST sequence as an inner sequence.
- Create or edit your main content sequence
- Click Add button in an available slot to create a new item
- In the display tab for the new item select Inner sequence
- From the list of sequences, select the VAST sequence
- Click Save
It may take a little time to download and cache the ad. The ad will display when it is fully downloaded and ready to display without interruption as part of regular sequence playback.
Important implementation details
Our digital signage player software is designed to play sequences of videos without interruptions caused by network faults and limitations. It is also designed to minimise the data transferred from the Internet. To achieve this, videos are downloaded once and re-used each loop rather than streamed every loop.
This differs from how regular web pages work. Web pages stream video content on demand in real-time. Delays, faults and interruptions are acceptable when viewing a video ad on a web page but are unacceptable on a digital signage screen. Since VAST is a real-time video advertising solution for the web (not digital signage) some changes have been made as outlined below.
- The VAST is fetched by the player approximately 5 minutes before it is predicted to be required.
- The most suitable media files are downloaded to local storage.
- The VAST sequence becomes ready for display.
- When the main sequence progresses to the VAST populated sequence, it will be displayed.
#Please note, the implementation details changed in Android Player version 24
Since preparing the VAST sequence occurs asynchronously to playback, ad servers must not assume that playback occurs immediately after downloading the VAST. There will typically be a 5 minute delay before the ad is displayed. The ad will not be displayed if it fails to download within 5 minutes. After displaying the ad in the VAST response, it will be invalidated to trigger the VAST to be refreshed before it is next required.
Sequences are dynamic, which means scheduling is only approximate. VAST requests will occur approximately 5 minutes before the item is displayed, but may be 0 to 10 minutes (see vastMaxAge below).
For tracking both impressions an playback impressions, the VAST must correctly define Impression and Tracking events. The player will perform these callbacks synchronously to playing the ad.
In general, digital signage players are not interactive. For this reason interactive options such as skipping ads and clickable web links are not supported.
The following features are currently supported:
- Linear MP4 video creatives
- Impression reporting
loaded, start, firstQuartile, midPoint, thirdQuartile, complete, progress
- AdPods (multiple ads)
TIMESTAMP, CACHE_BREAKER, CACHEBUSTING, ERRORCODE, VASTVERSIONS, CLICKTYPE, PLAYERSTATE, PLAYERSIZE, LATLONG, ADTYPE, ADSERVINGID, START, DURATION, DVC_SID, DEVICEID, IP_ADDRESS, USER_AGENT, CLIENTUA
- Closed caption files (VAST 4.1+)
- Error reporting
The following features are not supported:
- Ad verification code
- Non-linear ads
- Companion ads
- Video clicks
- Skippable ads
VAST was added to android-player-22.0.apk and android-exoplayer-9.0.apk. VAST sequences will be skipped by old players.
During a testing phase, extra logging has been enabled to debug the implementation.
Additional advanced options
The following advanced options are supported within the VAST sequence data:
|vastPreparePeriod||The period (in milliseconds) used to download and prepare the ad prior to displaying it.
Default 5 minutes (300000)
The maximum period (in milliseconds) a VAST response can be used.
An optional body for the VAST request to be POSTed to the VAST server. The body is assumed to of type JSON. When not specified VAST requests are HTTP GET requests.