Skip to main content

Prebid / Open RTB 2.5 Bid Request

Suggested Bid Request Headers

  • OpenRTB Version HTTP Header: x-openrtb-version: 2.5
  • Keep-Alive HTTP Header: Connection: Keep-Alive
  • Content JSON: Content-Type: application/json

The following objects should be sent encoded as JSON in the request body:

Bid Request

AttributeRequired?Description
atYesAuction type, first price = 1 (int)
idYesUnique bid request ID (string)
impYesArray of Imp objects representing the impressions offered(object).
siteYesDetails via a Site object about the publisher’s website(object).
deviceYesDetails via a Device object about the user’s device to which the impression will be delivered(object).
userNoDetails via a User object about the human user of the device; the advertising audience(object).
extNoPlaceholder for extensions to OpenRTB.

imp

AttributeRequired?Description
idYesUnique impression ID within this bid request (string)
bidfloorNoMinimum bid for this impression (CPM) / click (CPC) and account currency, optional (float).
bannerOnly for banner impsA banner object ; required if this impression is offered as a banner ad opportunity(object).
secureNo; Recommended 1Flag to indicate if the impression requires secure HTTPS URL creative assets and markup, where 0 = non-secure, 1 = secure. If omitted, the secure state is unknown, but non-secure HTTP support can be assumed, optional (integer)

imp.banner

AttributeRequired?Description
wYesWidth of the banner (integer)
hYesHeight of the banner (integer)

site

AttributeRequired?Description
idRecommendedUnique Site ID (string)
domainRecommendedDomain name of the site (string)
catNoIAB category ID (string array)
pageRecommendedFull URL of the page where the ad will be shown (string)
keywordsNoKeywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words.

device

AttributeRequired?Description
uaYesBrowser user agent (string)
geoNoLocation of the device assumed to be the user’s current location defined by a Geo object.
ipYesIP address of the user (string)*
ipv6RecommendedIPv6 address of the user (string)*
languageRecommendedBrowser language (string)
osNoOperating System (string)
jsNoSupport for JavaScript, where 0 = no, 1 = yes (integer)
extNoPlaceholder for exchange-specific extensions to OpenRTB

*Either ip or ipv6 will be in the request

device.geo

AttributeRequired?Description
countryNoCountry ISO3

device.ext

AttributeRequired?Description
remote_addrNoMain IP address of the user (string)
x_forwarded_forNoX-FORWARDED-FOR IP address of the user or empty if not set (string)

user

AttributeRequired?Description
idNoUnique user ID (string)

user.ext

AttributeDescription
consentuser.ext.consent: This is the consent string required by the IAB standards. Negative consent only for now (string)

regs.ext

AttributeDescription
gdprregs.ext.gdpr: This is 0 if the caller believes that the user is not under GDPR, and 1 if the user is under GDPR. If neither, this parameter will be undefined.

ext

AttributeRequired?Description
subNoThe Sub ID. This should be a number between six and ten digits: Do not use zeroes at the beginning of Sub IDs.

Examples


{
"id": "d4b5c697-41f3-4c1c-a3d5-5fd01b5ef2aa",
"at":1,
"imp": [
{
"id": "974090632",
"banner": {
"w": 300,
"h": 250
}
}
],
"site": {
"id": "12345",
"domain": "sitedomain.com",
"cat": ["IAB25-3"],
"page": "https://sitedomain.com/page",
"keywords": "lifestyle, humour"
},
"device": {
"ua": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36",
"ip": "131.34.123.159",
"geo": {
"country": "IRL"
},
"language": "en",
"os": "Linux & UNIX",
"js": 0,
"ext": {
"remote_addr": "131.34.123.159",
"x_forwarded_for": "",
"accept_language": "en-GB;q=0.8,pt-PT;q=0.6,en;q=0.4,en-US;q=0.2,de;q=0.2,es;q=0.2,fr;q=0.2"
}
},
"user": {
"id": "57592f333f8983.043587162282415065"
},
"ext": {
"sub": 1221
}
}