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.
| Attribute | Type | Description |
|---|---|---|
| mimes required | string[] | Content MIME types supported (e.g., "video/mp4"). |
| minduration default 0 | integer | Minimum 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 | integer | Maximum 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 | integer | Indicates 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 | 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). See Section 7.6 for more details. |
| poddur | integer | Indicates 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 values1VAST 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 | integer | Width of the video player in device-independent pixels (DIPS). |
| h | integer | Height of the video player in device-independent pixels (DIPS). |
| podid | string | 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 default 0 | integer | The 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 | integer | Deprecated as of OpenRTB 2.6-202303. Use plcmt instead. |
| plcmt | integer | Video placement type for the impression. Refer to List: Plcmt Subtypes - Video in AdCOM 1.0.Enum Plcmt Subtypes - Video · 9 values1Instream: 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 | integer | Indicates 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 values1Linear 2Non-Linear (i.e., Overlay) |
| skip | integer | Indicates 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 values1Audio 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 | integer | Videos of total duration greater than this number of seconds can be skippable; only applicable if the ad is skippable. |
| skipafter default 0 | integer | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. |
| sequence default 0deprecated · 2.6 | integer | Deprecated as of OpenRTB 2.6. Use slotinpod |
| slotinpod default 0 | integer | For 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 | 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 | integer[] | Blocked creative attributes. Refer to List: Creative Attributes in AdCOM 1.0.Enum Creative Attributes · 24 values1Audio 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 | integer | Maximum 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 | integer | Minimum bit rate in Kbps (kilobits per second). |
| maxbitrate | integer | Maximum bit rate in Kbps (kilobits per second). |
| boxingallowed default 1 | integer | Indicates 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 values1Initiates 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 | integer | The event that causes playback to end. Refer to List: Playback Cessation Modes in AdCOM 1.0. |
| 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 values1Streaming 2Progressive 3Download |
| pos | integer | Ad position on screen. Refer to List: Placement Positions in AdCOM 1.0.Enum Placement Positions · 18 values0Unknown 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 values1VPAID 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 values1Static Resource 2HTML Resource 3iframe Resource |
| poddedupe | enum array provisional | Indicates pod deduplication settings that will be applied to bid responses. Refer to List: Pod Deduplication in AdCOM 1.0.Enum Pod Deduplication Settings · 5 values1Deduplicated 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 | object | Placeholder 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