OpenRTB 2.6 cheat sheet
The fields and codes you look up most, on a few printed pages. Fields marked * are required. Print this page, or download the PDF. Every name links to its full reference page.
Bid request skeleton
{
"id": "req-1",
"imp": [{ "id": "1", "banner": { "w": 300, "h": 250 }, "bidfloor": 0.5, "bidfloorcur": "USD" }],
"site": { "domain": "news.example", "page": "https://news.example/a", "publisher": { "id": "pub-1" } },
"device": { "ua": "...", "ip": "203.0.113.0", "devicetype": 2 },
"user": { "id": "u-1" },
"regs": { "gdpr": 0 },
"source": { "schain": { "complete": 1, "ver": "1.0", "nodes": [{ "asi": "ssp.example", "sid": "1", "hp": 1 }] } },
"at": 1, "tmax": 300, "cur": ["USD"]
}Bid request
| BidRequest | Type | What it carries |
|---|
acat | string array | An allow list of advertiser categories in the taxonomy named by BidRequest.cattax. |
allimps | integer = 0 | Flag for whether the impressions in this request are all the impressions available in that context, such as every slot on a page or every spot in a... |
app | object | An App object describing the non-browser application where the impression appears: bundle, store URL, publisher, and content. |
at | integer = 2 | The auction type: 1 for first price, 2 for second price plus. |
badv | string array | A block list of advertiser domains, such as competitors of the publisher. |
bapp | string array | A block list of advertised apps by app store ID. |
bcat | string array | A block list of advertiser categories in the taxonomy named by BidRequest.cattax, which defaults to IAB Content Taxonomy 1.0 codes such as IAB25 and... |
bseat | string array | A block list of buyer seat IDs that may not bid on this request. |
cattax | integer = 1 | The category taxonomy used by BidRequest.bcat and BidRequest.acat, as a value from the AdCOM Category Taxonomies list. |
cur | string array | The currencies bids may use, as ISO 4217 codes. |
device | object | A Device object describing the device that will show the ad: user agent, IP address, device type, operating system, identifiers, and location. |
dooh | object | A DOOH object describing a digital out-of-home screen or group of screens. |
id * | string | The exchange's ID for this bid request, used to track the responses that come back. |
imp * | object array | The array of Imp objects, one per impression on offer. |
regs | object | A Regs object listing the legal and regulatory signals that apply, such as COPPA, GDPR, US Privacy, and GPP. |
site | object | A Site object describing the website where the impression appears: domain, page URL, publisher, and content. |
source | object | A Source object describing the upstream origin of the request and who makes the final sale decision, including the transaction ID and, since 2.6,... |
test | integer = 0 | Test mode flag: 0, the default, means a live auction, and 1 means the auction is a test and not billable. |
tmax | integer | The maximum time in milliseconds the exchange will wait for bids, network latency included. |
user | object | A User object describing the person using the device, who is the advertising audience. |
wlang | string array | An allow list of creative languages as ISO 639-1 two-letter codes. |
wlangb | string array | An allow list of creative languages as IETF BCP 47 tags, which can name regional and script variants such as pt-BR or zh-Hant. |
wseat | string array | An allow list of buyer seat IDs, such as advertiser or agency accounts, permitted to bid on this request. |
Impression
| Imp | Type | What it carries |
|---|
audio | object | An Audio object, present when the impression is offered as audio, such as a streaming radio or podcast ad break. |
banner | object | A Banner object, present when the impression is offered as display. |
bidfloor | float = 0 | The minimum acceptable bid for this impression, as a CPM in the currency named by Imp.bidfloorcur. |
bidfloorcur | string = USD | Currency of Imp.bidfloor as an ISO-4217 alphabetic code such as USD or EUR. |
clickbrowser | integer | Which browser opens when a user clicks the ad in an app: 0 for an embedded in-app browser, 1 for the device's native browser. |
displaymanager | string | Name of the SDK, mediation partner, or player that will render the ad, typically in apps and video players. |
displaymanagerver | string | Version of the SDK, mediation partner, or player named in Imp.displaymanager. |
dt | float | Estimated time the impression will be delivered, as Unix epoch milliseconds in a float. |
exp | integer | Advisory number of seconds that may pass between the auction and the moment the impression is actually shown. |
id * | string | Identifier for this impression, unique within the bid request. |
iframebuster | string array | Names of the iframe buster files the publisher supports. |
instl | integer = 0 | Interstitial flag: 1 when the ad is shown full screen or as an interstitial, 0 when it is not. |
metric | object array | An array of Metric objects reporting measured properties of the impression, such as recent viewability or click-through rate, so buyers can price it. |
native | object | A Native object, present when the impression is offered as native. |
pmp | object | A Pmp object listing the private marketplace deals that apply to this impression, with a flag saying whether open-market bids are still accepted. |
qty | object | A Qty object stating how many impressions one play of the ad counts as, for screens seen by more than one person at once. |
refresh | object | A Refresh object describing how this ad slot reloads automatically: what triggers it, the minimum interval, and how many times it has refreshed... |
rwdd | integer = 0 | Rewarded flag: 1 when the user receives something for watching the ad, such as an extra game life or a free article, 0 otherwise. |
secure | integer | Whether the impression requires HTTPS for all creative assets and markup: 1 for secure, 0 for not. |
ssai | integer = 0 | How server-side ad insertion affects asset and tracker retrieval: 0 unknown, 1 all client-side, 2 assets stitched server-side with tracking fired... |
tagid | string | The seller's identifier for the ad placement or tag that started the auction. |
video | object | A Video object, present when the impression is offered as video. |
Key enum values
1 Mobile/Tablet - General2 Personal Computer3 Connected TV4 Phone5 Tablet6 Connected Device7 Set Top Box8 OOH Device
1 Ethernet; Wired Connection2 WIFI3 Cellular Network - Unknown Generation4 Cellular Network - 2G5 Cellular Network - 3G6 Cellular Network - 4G7 Cellular Network - 5G
1 Instream2 Accompanying Content3 Interstitial4 No Content/Standalone5 Pause6 Screensaver7 Overlay8 Squeezeback9 In-scene
1 VPAID 1.02 VPAID 2.03 MRAID 1.04 ORMMA5 MRAID 2.06 MRAID 3.07 OMID 1.08 SIMID 1.09 SIMID 1.1
1 VAST 1.02 VAST 2.03 VAST 3.04 VAST 1.0 Wrapper5 VAST 2.0 Wrapper6 VAST 3.0 Wrapper7 VAST 4.08 VAST 4.0 Wrapper9 DAAST 1.010 DAAST 1.0 Wrapper11 VAST 4.112 VAST 4.1 Wrapper13 VAST 4.214 VAST 4.2 Wrapper15 VAST 4.316 VAST 4.3 Wrapper
0 Unknown1 Above The Fold2 Locked (fixed position)3 Below The Fold4 Header5 Footer6 Sidebar7 Fullscreen8 Partial Screen9 Top Left10 Top Right11 Frame the content12 Double box13 Double box with background14 Bottom Left15 Bottom Right16 L shape17 Reversed L shape
Bid response
| BidResponse | Type | What it carries |
|---|
bidid | string | A response ID the bidder generates for its own logging and tracking. |
cur | string = USD | The currency of every bid price in this response, as an ISO 4217 code. |
customdata | string | An optional string the bidder asks the exchange to store in the exchange's own cookie for this user, written in base85 cookie-safe characters. |
id * | string | The ID of the bid request this response answers, copied from BidRequest.id. |
nbr | integer | A code explaining why the bidder is not bidding, such as 2 for an invalid request or 8 for an unmatched user. |
seatbid | object array | The array of SeatBid objects, one per buyer seat, that carries the actual bids. |
| SeatBid | Type | What it carries |
|---|
bid * | object array | The array of Bid objects made for this seat, each tied to one impression in the request. |
group | integer = 0 | Whether the seat's bids must be won together: 0, the default, lets each impression be won on its own, while 1 means the seat wants all of them or... |
seat | string | The ID of the buyer seat, such as an advertiser or agency account, on whose behalf these bids are made. |
| Bid | Type | What it carries |
|---|
adm | string | The ad markup, sent in the bid so the exchange can serve it if the bid wins: HTML for banners, a VAST document for video and audio, or a native... |
adomain | string array | The advertiser's domain, used to check the bid against the publisher's advertiser block list. |
burl | string | The billing notice URL, which the exchange calls when a winning bid becomes billable under its own policy, typically on delivery or view. |
cat | string array | Categories describing the creative, in the taxonomy named by Bid.cattax, or IAB Content Taxonomy 1.0 when that field is absent. |
crid | string | The bidder's creative ID, used by exchanges for ad quality checks, creative approval, and reporting problems back to the bidder. |
dealid | string | The ID of the private marketplace deal this bid is made under, copied from Deal.id in the impression's Imp.pmp. |
h | integer | The height of the creative in device-independent pixels. |
id * | string | The bidder's ID for this bid, used for logging and tracking. |
impid * | string | The ID of the impression this bid is for, copied from Imp.id in the request. |
lurl | string | The loss notice URL, which the exchange calls when it knows this bid lost. |
mtype | integer | The type of markup in this bid, so the exchange can match it to the right media object on the impression: 1 banner, 2 video, 3 audio, 4 native. |
nurl | string | The win notice URL, which the exchange calls when this bid wins the auction. |
price * | float | The bid price as a CPM, the price per thousand impressions, even though the bid buys a single impression. |
w | integer | The width of the creative in device-independent pixels. |
No-bid reasons (nbr)
0 Unknown Error1 Technical Error2 Invalid Request3 Known Web Crawler4 Suspected Non-Human Traffic5 Cloud, Data Center, or Proxy IP6 Unsupported Device7 Blocked Publisher or Site8 Unmatched User9 Daily User Cap Met10 Daily Domain Cap Met11 Ads.txt Authorization Unavailable12 Ads.txt Authorization Violation13 Ads.cert Authentication Unavailable14 Ads.cert Authentication Violation15 Insufficient Auction Time16 Incomplete SupplyChain17 Blocked SupplyChain Node500+ Exchange-specific