OpenRTB protocol

OpenRTB enumerated lists reference

The integer codes an OpenRTB 2.6 bid request uses for auction type, device type, connection type, video placement, playback, API frameworks, creative attributes, protocols, position, and linearity, with the exact values from the AdCOM 1.0 lists the 2.6 spec references.

Where the lists live now

As of OpenRTB 2.6, the request-side enumerated lists are kept in the AdCOM 1.0 specification (no-bid and loss reason codes live in the OpenRTB 3.0 document) so they can change without a new OpenRTB release. Field tables in 2.6 say things like "Refer to List: Device Types in AdCOM 1.0". In OpenRTB 2.5 and earlier the same lists sat in section 5 of the spec itself, so older integration docs cite section numbers (5.21 Device Types, 5.9 Video Placement Types) for values that are now AdCOM lists. The values below reflect OpenRTB 2.6 with the current AdCOM lists, including the 2.6-202303 plcmt update. Where a list reserves 500 and above for exchange-specific or vendor-specific values, the table says so. See OpenRTB versions for what changed when.

Auction type (at)

BidRequest.at, integer, default 2. This one is defined in the OpenRTB spec itself, not AdCOM.

ValueNameMeaning
1First PriceWinner pays what they bid.
2Second Price PlusWinner pays just above the second-highest bid; the spec default.
500+Exchange-specificCustom auction types agreed with buyers.

Device type (device.devicetype)

AdCOM List: Device Types, derived from the TAG Inventory Quality Guidelines. Getting this right matters most for CTV requests, where buyers filter on devicetype: 3.

ValueNameMeaning
1Mobile/Tablet - GeneralInterchangeable mobile class when 4 or 5 is unknown.
2Personal ComputerDesktop and laptop browsers.
3Connected TVSmart TVs; the CTV signal exchanges key on.
4PhoneSpecifically a phone, more precise than 1.
5TabletSpecifically a tablet, more precise than 1.
6Connected DeviceConsoles, streaming boxes and similar non-TV devices.
7Set Top BoxOperator set top boxes.
8OOH DeviceDigital out-of-home screens.

Connection type (device.connectiontype)

AdCOM List: Connection Types.

ValueName
1Ethernet; Wired Connection
2WIFI
3Cellular Network - Unknown Generation
4Cellular Network - 2G
5Cellular Network - 3G
6Cellular Network - 4G
7Cellular Network - 5G

Video placement: plcmt and the legacy placement

video.plcmt uses AdCOM List: Plcmt Subtypes - Video, added alongside the 2.6-202303 update that deprecated video.placement. The two lists are not a rename: the old five values map onto four new ones with stricter definitions (sound-on is part of what makes something Instream now). Full story in placement vs plcmt, and the field reference, including which snapshot each value is actually valid in, in video.plcmt. AdCOM 1.0-202607 extended the list with 5 through 9 for the CTV Ad Portfolio formats, covered in the 202607 release notes.

plcmt (current)

ValueNameMeaning
1InstreamSound on by default, video is the primary content.
2Accompanying ContentPlayer beside text or graphical content, plays on entering the viewport.
3InterstitialNo video content; takes over the viewport, cannot scroll away.
4No Content/StandaloneNo video content; slideshows, feeds, sticky or floating players.
5PauseAdded in AdCOM 1.0-202607. Shown when the viewer pauses requested video content.
6ScreensaverAdded in AdCOM 1.0-202607. Shown when an OS or app screensaver starts.
7OverlayAdded in AdCOM 1.0-202607. Over program content, outside the traditional break.
8SqueezebackAdded in AdCOM 1.0-202607. Content is resized to share the screen with the ad.
9In-sceneAdded in AdCOM 1.0-202607. Branded elements composited into the content itself.

placement (deprecated, 2.6-202303)

ValueNameMeaning
1In-StreamPre-, mid-, post-roll against requested video content.
2In-BannerVideo inside display banner inventory.
3In-ArticlePlayer loading between paragraphs of editorial content.
4In-FeedInside content, social, or product feeds.
5Interstitial/Slider/FloatingAlways on screen while displayed.

Playback methods (video.playbackmethod)

AdCOM List: Playback Methods. The field is an integer array, but the 2.6 spec advises relying on the first element only, since it may become a single integer in a future version.

ValueNameMeaning
1Initiates without any specific user interaction with Sound OnReworded in AdCOM 1.0-202607; was "Initiates on Page Load".
2Initiates without any specific user interaction Sound Off by DefaultReworded in AdCOM 1.0-202607; was "Initiates on Page Load".
3Initiates on Click with Sound On
4Initiates on Mouse-Over or cursor over with Sound OnReworded in AdCOM 1.0-202607.
5Initiates on Entering Viewport or scrolling into view with Sound OnReworded in AdCOM 1.0-202607.
6Initiates on Entering Viewport or scrolling into view with Sound Off by DefaultReworded in AdCOM 1.0-202607.
7Continuous PlaybackPlayer keeps playing additional media until the user stops it.
8Initiated by user pausing content, Sound onAdded in AdCOM 1.0-202607.
9Initiated by user pausing content, Sound offAdded in AdCOM 1.0-202607.
10Initiated by idling (e.g. screensaver), Sound onAdded in AdCOM 1.0-202607.
11Initiated by idling (e.g. screensaver), Sound offAdded in AdCOM 1.0-202607.

API frameworks (banner.api, video.api, audio.api, native.api)

AdCOM List: API Frameworks. Declares what the placement supports; an API not listed is assumed unsupported.

ValueNameMeaning
1VPAID 1.0
2VPAID 2.0
3MRAID 1.0
4ORMMA
5MRAID 2.0
6MRAID 3.0
7OMID 1.0Open Measurement.
8SIMID 1.0
9SIMID 1.1
500+Vendor-specific codes

Creative attributes (battr, attr)

AdCOM List: Creative Attributes, values 1 through 23 plus vendor-specific 500+. Used as battr (blocked attributes) on banner, video, audio, and native request objects, and as attr (declared attributes) on the response Bid. The commonly seen values, plus everything added in AdCOM 1.0-202607:

ValueNameMeaning
1Audio Ad (Autoplay)
2Audio Ad (User Initiated)
3Expandable (Automatic)
6In-Banner Video Ad (Autoplay)
8Pop (e.g., Over, Under, or Upon Exit)
13User Interactive (e.g., Embedded Games)
14Windows Dialog or Alert Style
16Ad Provides Skip ButtonPair with video.skip on the request side.
18Responsive; Sizeless; Fluid
19Contains advertiser QR CodeAdded in AdCOM 1.0-202607.
20Support alpha channel transparencyAdded in AdCOM 1.0-202607.
21Static VisualAdded in AdCOM 1.0-202607. No perceptible motion, even in a video container.
22Limited Motion (Cinemagraph)Added in AdCOM 1.0-202607. Subtle looped motion in a static composition.
23Full-Motion VideoAdded in AdCOM 1.0-202607. Continuous or scene-level motion.
500+Vendor-specific codes

Protocols (video.protocols, audio.protocols)

AdCOM List: Creative Subtypes - Audio/Video. In practice this is the VAST version list, with each version split into an inline and a Wrapper entry.

ValueNameMeaning
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.0Digital audio ad serving; audio support moved into VAST as of 4.1.
10DAAST 1.0 Wrapper
11VAST 4.1
12VAST 4.1 Wrapper
13VAST 4.2
14VAST 4.2 Wrapper
15VAST 4.3
16VAST 4.3 Wrapper

Position (pos)

AdCOM List: Placement Positions, used as pos on banner and video objects. Also IQG-derived.

ValueNameMeaning
0Unknown
1Above The Fold
2LockedFixed position.
3Below The Fold
4Header
5Footer
6Sidebar
7Fullscreen
8Partial ScreenAdded in AdCOM 1.0-202607.
9Top LeftAdded in AdCOM 1.0-202607.
10Top RightAdded in AdCOM 1.0-202607.
11Frame the contentAdded in AdCOM 1.0-202607.
12Double boxAdded in AdCOM 1.0-202607.
13Double box with backgroundAdded in AdCOM 1.0-202607.
14Bottom LeftAdded in AdCOM 1.0-202607.
15Bottom RightAdded in AdCOM 1.0-202607.
16L shapeAdded in AdCOM 1.0-202607. Squeezeback geometry.
17Reversed L shapeAdded in AdCOM 1.0-202607. Squeezeback geometry.

Linearity (video.linearity)

AdCOM List: Linearity Modes. This describes the expected VAST response, not the player inventory type; that is what plcmt is for.

ValueNameMeaning
1LinearVAST response with video assets.
2Non-Linear (i.e., Overlay)VAST response with a banner or overlay.

FAQ

Where are OpenRTB enum values defined?

Since OpenRTB 2.6, the request-side enumerated lists live in the AdCOM 1.0 specification, referenced from the 2.6 field tables as AdCOM lists; no-bid and loss reason codes live in the OpenRTB 3.0 document. In OpenRTB 2.5 and earlier the same lists were section 5 of the OpenRTB document itself. Values match across the two homes; only the location changed.

What do enum values of 500 and above mean?

Where a list says so (auction type, API frameworks, creative attributes, no-bid reasons, and others), values 500 and greater are reserved for exchange-specific or vendor-specific use. They are only meaningful to partners who agreed on them beforehand, so a validator can accept them but cannot tell you what they mean.

Is video.placement still valid in OpenRTB 2.6?

It parses, but it was deprecated in the 2.6-202303 update in favor of video.plcmt, which uses a different four-value list. Send plcmt; keep placement only for partners that have not migrated, and never assume the two lists share meanings.

Validate the enums you send

A devicetype of 9 or a plcmt value on the old placement list will not throw an error anywhere; it just misprices or drops your inventory. The bid request tester checks values against the documented lists and flags deprecated fields like video.placement with stable rule IDs (openrtb.field.deprecated, openrtb.field.undefined). The rule catalog lists every check, and the same engine runs from the CLI in CI.