In-Stream Video Ad

Creative Type

Played before, during or after the streaming video content that the consumer has requested (Pre-roll, Mid-roll, Post-roll). These ads cannot typically be stopped from being played (particularly with pre-roll). This format is frequently used to monetize the video content that the publisher is delivering. In-Stream Video Ads can be played inside short or long-form video and rely on video content for their delivery. There are four different types of video content where in-stream may play: UGC (User Generated Content/Video), Syndicated, Sourced and Journalistic. In-Stream Video Ads are displayed within the context of streaming video content.


To get more information about the creative type please visit the website of the IAB and check the glossary.


The ad plugin is added to the publisher player as an ad server plugin, enabling the player to play pre- mid- and post-roll videos. Additionaly the plugin provides the necessary metadata to the publisher website to display companion ads.

To be most compatible with existing Ad Specifications, the plugin supports VAST 3.0 and VPAID Standart.

The communication between the plugin, the player and the website is done using events and a dedicated API.

The player informs the plugin when a new video content is ready for playing or provides information about the actual play time. These information is used to check if preroll, midroll or postroll ads are available. If this is the case, the player is paused, a snapshot is taken from the status and configuration, and a new configuration suited for ad videos is loaded. After the ad has ended or has been canceled the status and configuration of the player is restored to allow seamless video consumption to the enduser without disturbing additional configured plugins.

During Ad Playback all player events are prepended with a prefix, to allow deep integration with existing website features or App UX.

All actions, as well as all VAST tracking codes are logged to the corresponding servers for detailed measurement, providing valuable statistics for the advertiser.

Integration into Publisher site

First initialise the video.js video player. For a detailed instruction have a look at the setup guides.
Additionaly initialise the ad plugin.

  var settings = {
    "adTagUrl": "",
    'skip': 5,
    'cappingFreeLunch': 0,
    'cappingMinimumTimeInterval': 0,
    'timeout': 3000,
    'prerollTimeout': 100,
    'postrollTimeout': 100,
    'stitchedAds': false,
    'debug': false,
    "player": {
      "responsive": false,
      "width": 320
  var videoSrc = [
      "src": "//",
      "type": "video/mp4"
      "src": "//",
      "type": "video/webm"
  var player = videojs(
    'guxatv-instream-player', {
      'controls': true,
      'autoplay': false,
      'preload': 'auto',
      'poster': "",
      'loop': false,
      'fluid': true,
      'loadingSpinner': false
    }).ready(function () {
    //Initialise the plugin



Enable or disable the Skip Button. Timeout in seconds after which the user is allowed to skip. 0 disables the Skip button.
e.g.: ‘skip’: 5


How many videos are started before the next ad is displayed
e.g.: ‘cappingFreeLunch’: 0


How long (in ms) videos are played before next ad may be displayed
e.g.: ‘cappingMinimumTimeInterval’: 0,


Timeout until an Ad has to be delivered by the Ad Server
e.g.: ‘timeout’: 3000


Timeout to start preroll video
e.g.: ‘prerollTimeout’: 100


Timeout to start postroll video
e.g.: ‘postrollTimeout’: 100


Are there stiched ads in the video embedded
e.g.: ‘stitchedAds’: false


Additionaly to all the events that are emitted through video.js, the plugin will emitt the following events.


The Plugin is ready to play ads.


Triggered when a video ad is ready for playback and the player is completely initialised. This will be fired shortly before the video ad is displayed.


This event is triggered when an ad starts playing.


Triggered after the video ad playback has finished and normal video playback will restart.