ORTB
中 / EN

Video§3.2.7 · Bid Request

This object represents a video impression. Many of the fields are non-essential for minimally viable transactions, but are included to offer fine control when needed. Video in OpenRTB generally assumes compliance with the VAST standard. As such, the notion of companion ads is supported by optionally including an array of Banner objects (refer to the Banner object in Section 3.2.6) that define these companion ads. The presence of a Video as a subordinate of the Imp object indicates that this impression is offered as a video type impression. At the publisher’s discretion, that same impression may also be offered as Banner, Audio, and/or Native by also including as Imp subordinates objects of those types. However, any given bid for the impression must conform to one of the offered types.

AttributeTypeDescription
mimes
required
string[]Content MIME types supported (e.g., "video/mp4").
minduration
default 0
integerMinimum video ad duration in seconds. This field is mutually exclusive with rqddurs; only one of minduration and rqddurs may be in a bid request.
maxduration
integerMaximum video ad duration in seconds. This field is mutually exclusive with rqddurs; only one of maxduration and rqddurs may be in a bid request.
startdelay
integerIndicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. Refer to List: Start Delay Modes in AdCOM 1.0.
Enum Start Delay Modes · 4 values
>0Mid-Roll (value indicates start delay in second)
0Pre-Roll
-1Generic Mid-Roll
-2Generic Post-Roll
maxseq
integerIndicates 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). See Section 7.6 for more details.
poddur
integerIndicates the total amount of time in seconds that advertisers may fill for a “dynamic” video ad pod (See Section 7.6 for more details), 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/rqddursare constraints relating to the slots that make up the pod.
protocols
integer[]Array of supported video protocols. Refer to List: Creative Subtypes - Audio/Video in AdCOM 1.0.
Enum Creative Subtypes - Audio/Video · 16 values
1VAST 1.0
2VAST 2.0
3VAST 3.0
4VAST 1.0 Wrapper
5VAST 2.0 Wrapper
6VAST 3.0 Wrapper
7VAST 4.0
8VAST 4.0 Wrapper
9DAAST 1.0
10DAAST 1.0 Wrapper
11VAST 4.1
12VAST 4.1 Wrapper
4 more values in the enumerations overview →
w
integerWidth of the video player in device-independent pixels (DIPS).
h
integerHeight of the video player in device-independent pixels (DIPS).
podid
stringUnique 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
default 0
integerThe sequence (position) of the video ad pod within a content stream. Refer to AdCOM 1.0 for guidance on the use of this field.
rqddurs
integer[]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 minduration and maxduration; if rqddurs is specified, minduration and maxduration must not be specified and vice versa.
placement
deprecated · 2.6-202303
integerDeprecated as of OpenRTB 2.6-202303. Use plcmt instead.
plcmt
integerVideo placement type for the impression. Refer to List: Plcmt Subtypes - Video in AdCOM 1.0.
Enum Plcmt Subtypes - Video · 9 values
1Instream: Pre-roll, mid-roll, and post-roll ads that are played before, during or after the streaming video content that the consumer has requested. Instream video must be set to “sound on” by default at player start, or have explicitly clear user intent to watch the video content. While there may be other content surrounding the player, the video content must be the focus of the user’s visit. It should remain the primary content on the page and the only video player in-view capable of audio when playing. If the player converts to floating/sticky subsequent ad calls should accurately convey the updated player size.
2Accompanying Content: Pre-roll, mid-roll, and post-roll ads that are played before, during, or after streaming video content. The video player loads and plays before, between, or after paragraphs of text or graphical content, and starts playing only when it enters the viewport. Accompanying content should only start playback upon entering the viewport. It may convert to a floating/sticky player as it scrolls off the page.
3Interstitial:Video ads that are played without video content. During playback, it must be the primary focus of the page and take up the majority of the viewport and cannot be scrolled out of view. This can be in placements like in-app video or slideshows.
4No Content/Standalone: Video ads that are played without streaming video content. This can be in placements like slideshows, native feeds, in-content or sticky/floating.
5Pause: An ad present in streaming video content that the consumer has requested. While there may be other content surrounding the player, the video content must be the focus of the user’s visit. It should remain the primary content on the page and the only video player in-view.
6Screensaver: An ad present, when OS/App Screen Saver are initiated.
7Overlay: Ads occurring during program content and outside of the traditional ad break. The ad format places ad creatives over top of the program content, often as a banner or picture in picture execution. While there may be other content surrounding the player with the overlay, the player with the overlay must be the focus of the user’s visit. It should remain the primary content on the page and the primary video player in-view.
8Squeezeback: Ads Alongside or Adjacent to Content, also known as L-Shape Ads & Double Box, are ads that occur during program content and outside of the traditional ad break. The program content is resized to allow for placement of an ad on the screen. In a squeezeback, none of the content is covered by the ad, instead it shares screen space with the ad. This is the major distinction between squeezeback and overlay. While there may be other content surrounding the player with the squeezeback, the player with the squeezeback must be the focus of the user’s visit. It should remain the primary content on the page and the primary video player in-view.
9In-scene: A form of advertising that integrates branded elements directly within the content itself, rather than appearing as separate pre-roll, mid-roll, overlay, or display formats. In Scene Advertising is composited into the video content and blends the brand naturally into the scene, environment, or storyline, ensuring contextual relevance and viewer immersion without interrupting the user experience. In-scene ads typically consist of product placements or virtual out of A insertions. At this time, the standardization focuses on the out of home insertions in non-live content. While there may be other content surrounding the player with the in-scene ad, the player with the in-scene ad must be the focus of the user’s visit. It should remain the primary content on the page and the primary video player in-view.
linearity
integerIndicates if the impression must be linear, nonlinear, etc. If none specified, assume all are allowed. Refer to List: Linearity Modes in AdCOM 1.0. Note that this field describes the expected VAST response and not the type of video player inventory. For that, see plcmt.
Enum Linearity Modes · 2 values
1Linear
2Non-Linear (i.e., Overlay)
skip
integerIndicates if the player will allow the video to be skipped, where 0 = no, 1 = yes.
If a bidder sends markup/creative that is itself skippable, the Bid object should include the attr array with an element of 16 indicating skippable video. Refer to List: Creative Attributes in AdCOM 1.0.
Enum Creative Attributes · 24 values
1Audio Ad (Autoplay)
2Audio Ad (User Initiated)
3Expandable (Automatic)
4Expandable (User Initiated - Click)
5Expandable (User Initiated - Rollover)
6In-Banner Video Ad (Autoplay)
7In-Banner Video Ad (User Initiated)
8Pop (e.g., Over, Under, or Upon Exit)
9Provocative or Suggestive Imagery
10Shaky, Flashing, Flickering, Extreme Animation, Smileys
11Surveys
12Text Only
12 more values in the enumerations overview →
skipmin
default 0
integerVideos of total duration greater than this number of seconds can be skippable; only applicable if the ad is skippable.
skipafter
default 0
integerNumber of seconds a video must play before skipping is enabled; only applicable if the ad is skippable.
sequence
default 0deprecated · 2.6
integerDeprecated as of OpenRTB 2.6. Use slotinpod
slotinpod
default 0
integerFor video ad pods, this value indicates that the seller can guarantee delivery against the indicated slot position in the pod. Refer to List: Slot Position in Pod in AdCOM 1.0 guidance on the use of this field.
Enum Slot Position in Pod · 4 values
-1Last ad in the pod
0Any ad in the pod
1First ad in the pod
2First or Last ad in the pod
mincpmpersec
floatMinimum 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
integer[]Blocked creative attributes. Refer to List: Creative Attributes in AdCOM 1.0.
Enum Creative Attributes · 24 values
1Audio Ad (Autoplay)
2Audio Ad (User Initiated)
3Expandable (Automatic)
4Expandable (User Initiated - Click)
5Expandable (User Initiated - Rollover)
6In-Banner Video Ad (Autoplay)
7In-Banner Video Ad (User Initiated)
8Pop (e.g., Over, Under, or Upon Exit)
9Provocative or Suggestive Imagery
10Shaky, Flashing, Flickering, Extreme Animation, Smileys
11Surveys
12Text Only
12 more values in the enumerations overview →
maxextended
integerMaximum extended ad duration if extension is allowed. If blank or 0, extension is not allowed. If -1, extension is allowed, and there is no time limit imposed. If greater than 0, then the value represents the number of seconds of extended play supported beyond the maxduration value.
minbitrate
integerMinimum bit rate in Kbps (kilobits per second).
maxbitrate
integerMaximum bit rate in Kbps (kilobits per second).
boxingallowed
default 1
integerIndicates if letter-boxing of 4:3 content into a 16:9 window is allowed, where 0=no, 1=yes.
playbackmethod
integer[]Playback methods that may be in use. If none are specified, any method may be used. Refer to List: Playback Methods in AdCOM 1.0. Only one method is typically used in practice. As a result, this array may be converted to an integer in a future version of the specification. It is strongly advised to use only the first element of this array in preparation for this change.
Enum Playback Methods · 11 values
1Initiates without any specific user interaction with Sound On
2Initiates without any specific user interaction Sound Off by Default
3Initiates on Click with Sound On
4Initiates on Mouse-Over or cursor over with Sound On
5Initiates on Entering Viewport or scrolling into view with Sound On
6Initiates on Entering Viewport or scrolling into view with Sound Off by Default
7Continuous Playback - Media playback is set to play additional media automatically without user interaction. The media player will keep playing additional media (playlist or generated) for the user until the user actively stops this from happening.
8Initiated by user pausing content, Sound on
9Initiated by user pausing content, Sound off
10Initiated by idling (e.g. screensaver), Sound on
11Initiated by idling (e.g. screensaver), Sound off
playbackend
integerThe event that causes playback to end. Refer to List: Playback Cessation Modes in AdCOM 1.0.
Enum Playback Cessation Modes · 3 values
1On Video Completion or when Terminated by User
2On Leaving Viewport or when Terminated by User
3On Leaving Viewport Continues as a Floating/Slider Unit until Video Completion or when Terminated by User
delivery
integer[]Supported delivery methods (e.g., streaming, progressive). If none specified, assume all are supported. Refer to List: Delivery Methods in AdCOM 1.0.
Enum Delivery Methods · 3 values
1Streaming
2Progressive
3Download
pos
integerAd position on screen. Refer to List: Placement Positions in AdCOM 1.0.
Enum Placement Positions · 18 values
0Unknown
1Above The Fold
2Locked (i.e., fixed position)
3Below The Fold
4Header
5Footer
6Sidebar
7Fullscreen
8Partial Screen
9Top Left
10Top Right
11Frame the content
6 more values in the enumerations overview →
companionad
object[]Array of Banner objects (Section 3.2.6) if companion ads are available.
api
integer[]List of supported API frameworks for this impression. Refer to List: API Frameworks in AdCOM 1.0. If an API is not explicitly listed, it is assumed not to be supported.
Enum API Frameworks · 10 values
1VPAID 1.0
2VPAID 2.0
3MRAID 1.0
4ORMMA
5MRAID 2.0
6MRAID 3.0
7OMID 1.0
8SIMID 1.0
9SIMID 1.1
500+Vendor-specific codes.
companiontype
integer[]Supported VAST companion ad types. Refer to List: Companion Types in AdCOM 1.0. Recommended if companion Banner objects are included via the companionad array. If one of these banners will be rendered as an end-card, this can be specified using the vcm attribute with the particular banner (Section 3.2.6).
Enum Companion Types · 3 values
1Static Resource
2HTML Resource
3iframe Resource
poddedupe
enum array provisionalIndicates pod deduplication settings that will be applied to bid responses. Refer to List: Pod Deduplication in AdCOM 1.0.
Enum Pod Deduplication Settings · 5 values
1Deduplicated on adomain
2Deduplicated on IAB Tech Lab Content Taxonomy
3Deduplicated on creative ID
4Deduplicated on mediafile URL
5No deduplication
durfloors
object[]An array of DurFloors objects (Section 3.2.35) indicating the floor prices for video creatives of various durations that the buyer may bid with.
ext
objectPlaceholder for exchange-specific extensions to OpenRTB.

Field descriptions are published in the official IAB Tech Lab OpenRTB 2.6 spec (CC-BY 3.0) · enumeration values sourced from AdCOM 1.0 · first-draft proofreading