Video Object

Note

Fields marked with an asterisk (*) are optional.

Video Object Properties

Value

Type

Description

mimes

array of strings

Content MIME types supported.

Note: For Google bids all the specified MIME type media files are required in the VAST response, for example, ["video/mpeg", "video/mp4"]

minduration

integer

Minimum video ad duration in seconds, for example, 2

maxduration

integer

Maximum video ad duration in seconds, for example, 15

linearity*

integer

Indicates if the impression must be linear or nonlinear, for example, 1. If none is specified, it is assumed all are allowed

  • 1: Linear/In-stream

  • 2: Non-Linear/Overlay

placement*

integer

Placement type for the impression, for example 2. This can take the following values:

  • 1: In-stream. Played before, during or after the streaming video content that the consumer has requested (e.g., Pre-roll, Mid-roll, Post-roll).

  • 2: In-banner. Exists within a web banner that leverages the banner space to deliver a video experience as opposed to another static or rich media format. The format relies on the existence of display ad inventory on the page for its delivery.

  • 3: In-article. Loads and plays dynamically between paragraphs of editorial content; existing as a standalone branded message.

  • 4: In-feed. Found in content, social, or product feeds.

  • 5: Interstitial/Slider/Floating. Covers the entire or a portion of screen area, but is always on screen while displayed (i.e. cannot be scrolled out of view). Note that a full-screen interstitial (e.g., in mobile) can be distinguished from a floating/slider unit by the imp.instl field.

playbackend*

integer

The event that causes playback to end, for example 2. This field can take the following values:

  • 1: On Video Completion or when Terminated by User.

  • 2: On Leaving Viewport or when Terminated by User.

  • 3: On Leaving Viewport Continues as a Floating/Slider Unit until Video Completion or when Terminated by User.

protocols

array of integers

Accepted video bid response protocols as defined in OpenRTB, for example [2,5]

pos*

integer

Ad Position as defined in OpenRTB, for example 1

w*

integer

Width of the player in pixels, for example, 600

h*

integer

Height of the player in pixels, for example 400

startdelay*

integer

Indicates the start delay in seconds. If the start delay value is greater than 0, then the position is mid-roll and the value indicates the start delay.

  • > 0: Mid-Roll (value indicates start delay in second)

  • 0: Pre-roll

  • -1: Generic mid-roll

  • -2: Generic post-roll

battr*

array of integers

Blocked creative attributes as defined in OpenRTB, for example, [6]

minbitrate*

integer

Minimum bit rate in Kbps, for example 680

maxbitrate*

integer

Maximum bit rate in Kbps, for example 990

api*

array of integers

List of supported API frameworks for this impression as defined in OpenRTB, for example, [1,2]. If an API is not explicitly listed, it is assumed not to be supported.

maxextended*

integer

Maximum extended video ad duration if extension is allowed.

  • Blank or 0, extension is not allowed.

  • -1, extension is allowed, and there is no time limit imposed.

  • Greater than 0, then the value represents the number of seconds of extended play supported beyond the maxduration value.

boxingallowed*

integer

Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed:

  • 0 = no

  • 1 = yes.

playbackmethod*

array of integers

Allowed playback methods as defined in the OpenRTB, for example [1, 2]. If none are specified, it is assumed all are allowed.

delivery*

array of integers

Supported delivery methods (e.g., streaming, progressive) as defined in OpenRTB. If none specified, assume all are supported, for example, [1, 2]

sequence*

integer

If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives, for example, 2.

companionad*

object array

Array of Banner objects if companion ads are available. See the Banner Object section for more information.

companiontype*

array of integers

List of allowed companion ad types, for example [1, 2] Possible values:

  • 1: Static Resource

  • 2: HTML Resource

  • 3: iframe Resource

ext*

object

See the Video Ext Object section

skip*

integer

Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes.

skipmin*

integer

Videos of a total duration greater than this value (seconds) can be skippable; only applicable if the ad is skippable.

skipafter*

integer

Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable.

Video Ext Object

Video Ext Object Properties

Value

Type

Description

skippable*

integer

Indicates whether the video ad may be skippable (i.e. contain a skip button). The values are:

  • 0: allow skippable

  • 1: require skippable

  • 2: deny skippable

player_type*

integer

Video player type based on detected player size:

  • 1: Small player ( Less than 300px)

  • 2: Medium player ( between 300px and 600px)

  • 3: Large player ( greater than 600px)

outstream*

integer

Indicates that the video is outstream, for example 1

rewarded*

integer

Indicates whether the ad is being rendered as part of a rewarded / incentivised user experience, where:

  • 0 = non-rewarded

  • 1 = rewarded

  • If omitted, non-rewarded can be assumed

vast_url_rq*

integer

Used to specify if the bid.ext.vast_url field is required in the bid response. It is recommended that you use this field to pass the VAST URL in all video responses.

  • 1: Indicates the bid.ext.vast_url field is required in the bid response.

  • 0: If this field is missing, or set as not required using 0, Buyers should still pass the VAST URL in this field as it works for all video requests.

    Only if it is deemed extremely necessary should you pass the VAST URL in the bid.nurl field. The price macro will be replaced in that field as usual. In this scenario BidSwitch will not send an impression notification as the VAST impression event should be used for that.

Video Object Example

{
   "id":"1",
   "bidfloor":0.03,
   "video":{
      "w":640,
      "h":480,
      "pos":1,
      "startdelay":0,
      "minduration":5,
      "maxduration":30,
      "maxextended":30,
      "minbitrate":300,
      "maxbitrate":1500,
      "skip":1,
      "api":[
         1,
         2
      ],
      "protocols":[
         2,
         3
      ],
      "mimes":[
         "video/x-flv",
         "video/mp4",
         "application/x-shockwave-flash",
         "application/javascript"
      ],
      "linearity":1,
      "boxingallowed":1,
      "playbackmethod":[
         1,
         3
      ],
      "delivery":[
         2
      ],
      "battr":[
         13,
         14
      ],
      "companionad":[
         {
            "id":"1234567893-1",
            "w":300,
            "h":250,
            "pos":1,
            "battr":[
               13,
               14
            ],
            "expdir":[
               2,
               4
            ]
         },
         {
            "id":"1234567893-2",
            "w":728,
            "h":90,
            "pos":1,
            "battr":[
               13,
               14
            ]
         }
      ],
      "companiontype":[
         1,
         2
      ]
   }
}