Video Object

Note

Fields marked with an asterisk (*) are optional.

Video Object Properties

Value

Type

Description

mimes

array of strings

Content MIME types supported.

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. Note: Though not required, this is an important field for some Buyers, not explicitly setting it will result in lower demand. This field 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 [6,8]. As BidSwitch only serves video using VAST wrappers, the valid response integers are 5, 6, or 8 for the request to be eligible for bidding.

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

maxseq*

integer

Indicates the maximum number of ads that may be served into a “dynamic” video ad pod (where the precise number of ads is not predetermined by the seller).

poddur*

integer

Indicates the total amount of time in seconds that advertisers may fill for a “dynamic” video ad pod, or the dynamic portion of a “hybrid” ad pod. This field is required only for the dynamic portion(s) of video ad pods. This field refers to the length of the entire ad break, whereas minduration/maxduration/rqddurs are constraints relating to the slots that make up the pod.

podid*

integer

Unique identifier indicating that an impression opportunity belongs to a video ad pod. If multiple impression opportunities within a bid request share the same podid, this indicates that those impression opportunities belong to the same video ad pod.

podseq*

integer

The sequence (position) of the video ad pod within a content stream. The following values are supported:

  • -1: Last pod in the content stream

  • 0: Any pod in the content stream

  • 1: First pod in the content stream

rqddurs*

array of integers

Precise acceptable durations for video creatives in seconds. This field specifically targets the Live TV use case where non-exact ad durations would result in undesirable ‘dead air’. This field is mutually exclusive with maxduration.

slotinpod*

integer

For video ad pods, this value indicates that the seller can guarantee delivery against the indicated slot position in the pod. The following values are supported:

  • -1: Last ad in the pod

  • 0: Any ad in the pod

  • 1: First ad in the pod

  • 2: First or last ad in the pod

mincpmpersec*

float

Minimum CPM per second. This is a price floor for the “dynamic” portion of a video ad pod, relative to the duration of bids an advertiser may submit.

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

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 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":[
         6,
         8
      ],
      "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
      ]
   }
}