Video and End Cards

What is VAST 2.0?

  • VAST 2.0, is an IAB standard and Video Ad Serving Template (VAST) 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. (IAB)

How Does VAST 2.0 Work?

  1. The video player pre-fetches the ad request
  2. The ad server passes an XML ad response
  3. The XML ad response 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 Fyber’s Video player elements.
  4. 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
  5. 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).
  6. The quartile tracking URLs are reported by the video player
  7. The ad server(s) record the impression
  8. Note: VAST 2.0 is not entirely backwards compatible with VAST 1.0.

What VAST Versions are Supported by Fyber?

  • Fyber supports VAST 2.0 and VAST 2.0 wrappers according to the IAB VAST 2.0 specification
  • Fyber supports some VAST 3.0 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 (see CompanionClickTracking section below for more details)
  • Fyber’s SDK is responsible for firing the VAST tracking pixels and rendering video playback 

VAST 2.0 Video Ad Sizes

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

Supported Video MIME Types

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

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

  • “video.protocol” : 5 when VAST 2.0 is supported 

How should a Demand Partner Respond with a VAST 2.0 Ad in the Bid Response?

  • The bid response should include “bid.ext.crtype” : “VAST 2.0”

How are Click Events Tracked on VAST 2.0?

  • Fyber enriches the TrackingEvents object with Fyber’s click tracking URL and fires the click when the user taps on the CTA 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. 

Video Media File Size Limits

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

VAST Wrappers

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

Video Asset Algorithm

  • Fyber 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 (Android) and similar in 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.

Supported VAST file types

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

Fyber 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.
  • Fyber 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.
  • Fyber has added a capability for publishers to override sound settings per user session according to user's device settings within the app, starting from Fyber Marketplace 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, Fyber 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, Fyber 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

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

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 3 seconds
  • If no end card is provided by the DSP or the DSP's end card fails, Fyber 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.
  • Fyber recommends running end cards with all Video types to improve performance.

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 H & W passed in the bid request

End Card Mime Types

As of FairBid SDK version 2.1 and Marketplace 7.3, Fyber supports the following End Cards:

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

How to Identify 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

Fyber Default End Cards

  • Fyber added support for default end cards starting in SDK versions 7.3.0 (Marketplace) and 2.1.0 (Fairbid). 
  • Fyber 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 3 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, Fyber adds a fail-safe X button on the video end card, which appears after 15 seconds

Companion Click Events & <CompanionClickTracking>

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

CompanionAd Asset Algorithm

  • Fyber has an algorithm for sorting and selecting from the media files passed within the VAST CompanionAd (end card).
  • Fyber'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 H&W
    • 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 Fyber adds a default end card with the last video frame blurred and displays a CTA button above it.
  • Fyber fetches the end card immediately after receiving the ad markup in the bid response, so it is ready once the video is finished playing.

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. Fyber 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 Fyber supply, as of April 1st 2021. Serving VPAID ads is no longer allowed on Marketplace and will result in a creative violation.

Back to Top ⇧