VAST and End Cards

What is VAST?

  • Video Ad Serving Template (VAST) is an IAB standard for structuring ad tags that serve ads to video players. Using an XML schema, VAST transfers important metadata about an ad from the ad server to the video player.
  • VAST was created to standardize in-stream video ad serving. In-app, fullscreen (i.e., interstitial) video is also considered in-stream, linear video (from the IAB).

How Does VAST Work?

    1. The video player pre-fetches the ad request
    2. The ad server passes an XML ad response, which contains:
        • VAST version
        • Impression tracking pixel
        • Video duration
        • Click tracking pixel
        • Click through URL
        • Quartile event tracking pixels - fired at video start, 1st quartile, 2nd quartile, 3rd quartile, and video complete
        • URL to video mediafiles
        • CompanionAd height, width, and assets

      The VAST response does not include any information on the placement or timing of video elements. See below for DT's video player elements.

    3. A VAST ad markup can either be Inline, meaning it contains all the elements necessary to display the video, or a VAST wrapper, which points to a downstream VAST document that must be requested from another ad server
    4. A single click through on the ad is expected, but multiple named click tracking URIs (CustomClick) can be provided to allow per-publisher customization. In addition, separate URIs can be provided for tracking the click (ClickTracking) and for the destination page to open upon a click-through (ClickThrough)
    5. The quartile tracking URLs are reported by the video player
    6. The ad server(s) record the impression

VAST Versions Supported by DT

  • DT accepts VAST 2.0, 3.0, and 4.x
  • DT supports some VAST 3.0 and VAST 4.x elements, including:
    • closeLinear, starting from version 7.0.6 (iOS) and 7.1.3 (Android)
    • CompanionClickTracking node, starting from specific SDK versions for VAST wrappers vs. inline (more details below)
  • DT's SDK is responsible for firing the VAST tracking pixels and rendering video playback 

Note: VAST 2.0 is not entirely backwards compatible with VAST 1.0.

How to identify which VAST version is supported based on the bid request?

  • “video.protocol” : 5 when VAST 2.0 is supported 
  • “video.protocol” : 6 when VAST 3.0 wrapper is supported
  • “video.protocol” : 8 when VAST 3.0 wrapper is supported

VAST Wrappers

  • DT supports up to 5 VAST wrappers
  • If a partner uses more than 5 VAST wrappers, DT stops loading the ad and it is discarded.
  • DT recommends using as few wrappers as possible 

Supported Video MIME Types

  • Android: mp4, webm, 3gpp
  • iOS: mp4, m4v, quicktime, 3gp2, 3gpp2, 3gp4, 3gpp4, application/javascript
  • Flash and .mov are not supported

Supported VAST file types

  • Android: mp4, webm, 3gpp
  • iOS: quicktime, mp4, m4v, 3gpp, 3gpp2, x-m4v, 3gp2, 3gp4, 3gpp4

VAST Video Ad Sizes

  • Fullscreen only
  • 320×480
  • 480×320
  • 1024×768
  • 768×1024 

Video Media File Size Limits

  • For optimal performance, DT recommends running videos under 3MB
  • DT accepts videos with a maximum bitrate of 5000kbps. Preferred max bit rate is up to 2000kbps. Videos above 5000kbps are discarded
  • DT accepts videos with a maximum duration of 30s
  • If DT cannot retrieve the video file within approximately 10 seconds, the video is timed out
  • DT recommends the following video aspect ratios: 16:9 (for interstitial phone and tablet), 4:3 (for iPads), 3:2 and 16:10. DT's SDK runs videos with any aspect ratio, no constraints are put on aspect ratio

Video Asset Algorithm

  • DT has an algorithm for prioritizing the media files passed within the VAST tag, prioritization is based on:
    • Media files that do not exceed max bitrate
    • File type:
      • a) MP4
      • b) 3gpp
      • c) webm
    • File type order applies to Android and similarly to iOS per their supported mime types. Respect mime types passed under video object
    • Aspect ratio alignment - preference is given to the video file with the aspect ration matching that of the best screen size

Tracking Click Events on VAST

DT enriches the TrackingEvents object with DT's click tracking URL and fires the click when the user taps on the CTA (call to actions) button.

  • If the user taps on video (anywhere outside of the CTA button), no action takes place
  • The video only pauses if the user leaves the app and then returns to the app

DT SDK Video Player


  • The sound icon is always available to be toggled On/Off by the user. A sound icon immediately appears in the upper left of the user’s screen with the option to mute/unmute the video
  • DT always supports the device's sound setting. If the device is set to mute, the ad plays with sound off. If the device is not set to mute, the ad plays with sound on, by default
  • DT has added a capability for publishers to override sound settings per user session according to user's device settings within the app, starting from DT Exchange Android SDK version 7.4.0 and iOS version 7.5.2

Skip & Close

  • Non-rewarded video 15s or shorter, are non-skippable and no skip button is shown. If the user completes the video, DT attempts to show the end card immediately following the video 
  • Non-rewarded video, 16s or longer is skippable after 5s and a skip button is presented in the upper right hand corner after 5s. If the user completes the video, DT attempts to show the end card immediately following the video 

Countdown Timer

  • A countdown timer immediately appears at the bottom left of the video based on video duration passed in VAST XML

Call to Action

  • DT's CTA (call to action) button has the default text of "Install Now" starting from Android and iOS 7.7.1 (DT Exchange) & 3.7.0 (DT Fairbid)
  • The text on the Call to Action button reads “Download” when an app store is detected as the landing page, starting from DT Exchange Android SDK version 7.3.2 and iOS 7.3.3 

Video Close Behavior

  • When the user taps the X button on the video end card, they return to the app (i.e., resume gameplay)
  • When the user clicks the CTA button during video playback, they are taken to the DSPs landing page (app store, in-app browser, deep link). Once the landing page is closed, the video resumes playing according to the Skip & Close logic which is described here

End Card Behavior

  • When the DSP has an end card, it is shown after the video has completed or when the user skips the video. The video end card 'X-button' appears on the top right corner after 5 seconds
  • If no end card is provided by the DSP or the DSP's end card fails, DT will display a default end card

End Cards (CompanionAds)

  • In-app, a CompanionAd is commonly a display or rich media ad that follows the video experience. End cards are shown when the video is completed or closed by the user and may be interactive. End cards often have a call-to-action for the user
  • DT recommends running end cards with all video types to improve performance
  • For Playable End Cards, we recommend a maximum size of 2MB

How to identify if an End Card is supported based on the Bid Request?

  • “video.companiontype” : ["1", "2", "3"] when static [1], HTML [2], and iframe [3] end cards are supported
  • “video.ext.mraidendcard” : 1 when MRAID 2.0 end cards are supported

End Card Mime Types

As of DT FairBid SDK version 2.1 and DT Exchange 7.3, DT supports the following End Cards:

  • JPEG
  • GIF
  • Static
  • HTML
  • iFrame
  • PNG
  • MRAID 2.0 and MRAID Playables

End Card Ad Sizes

  • 320×480
  • 480×320
  • 1024×768
  • 768×1024
    • Minimum ad size is 300x250
    • There is no maximum size, but static end cards that are sized larger than the screen are scaled down and centered
    • HTML and iFrame end cards should not exceed the height and width passed in the bid request

CompanionAd Asset Algorithm

  • DT has an algorithm for sorting and selecting from the media files passed within the VAST CompanionAd (end card).
  • DT's selection and prioritization is based on:
    • Orientation: Closest match to the video media file's orientation
    • Ad Size: Closest match to the device's height and width
    • Resource Type: HTML, iFrame, Static

Other criteria for selecting the CompanionAd:

  • If one media file fails to load, then we fall back to the next one. If none load, we track an error internally
  • If no valid end card is provided, then DT adds a default end card with the last video frame blurred and displays a CTA button above it
  • DT fetches the end card immediately after receiving the ad markup in the bid response, so it is ready once the video is finished playing

Digital Turbine Default End Cards

  • DT added support for default end cards starting in SDK versions 7.3.0 (DT Exchange) and 2.1.0 (DT Fairbid). 
  • DT pauses on the last frame of the video and adds a green call-to-action button with "Install Now" text

Video End Card Close Behavior and Custom Close

  • The "x-button" on all video end cards appears on the upper right-hand side after 5 seconds
  • There is no countdown timer on the end-card x-button
  • If a DSP provides their own MRAID end card and uses MRAID ()useCustomClose, DT adds a fail-safe X button on the video end card, which appears after 15 seconds

Companion Click Events & CompanionClickTracking

  • DT's SDK handles the CompanionClickThrough once the end card is shown and clicked on by the user
  • DT supports CompanionClickTracking, a VAST 3.0 component, starting in DT Exchange Android SDK version 7.7.1 and iOS 7.5.2 for VAST wrappers
  • CompanionClickTracking for VAST inline is added starting in DT Exchange iOS and Android SDK versions 7.7.1 and DT Fairbid 3.7.0

Enhancements for Video Click Tracking

Understanding user engagement in real-time is critical for creative optimization. New attribution methods will delay postback data and we’re here to help address new ways to measure user intent. DT is adding support for 2 new substitution macros available for DSPs to add to their click tracking URLs. Support is available for substitution in both <ClickTracking> and <CompanionClickTracking>

  • [ADPLAYHEAD]​: macro passes a value in HH:MM:SS.mmm format expressing the amount of time the video ad was played before the user clicked on the VAST CTA button or the SKIP button
  • [CLICKAREA]​: macro passes a string value describing where the user clicked on the VAST ad
    • "cta" when the user clicks on the CTA button on the video player
    • "companion" when the user clicks on the companion / end card


VPAID support has been deprecated across all DT supply, as of April 1st 2021. Serving VPAID ads is no longer allowed on DT Exchange and will result in a creative violation.

Back to Top ⇧