Skip to main content

Open RTB 2.5 Bid Request

This page describes the different components of the RTB requests you will receive in order to bid.

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
  • Data Encoding Header: Accept-Encoding

Bid Request 2.5

When requesting bids for a specific context, the platform will perform an HTTP request with a timeout of 300ms and send the following object encoded as JSON in the request body. HTTP is recommended due to extra latency when using HTTPS.

AttributeDescription
idUnique bid request ID (string)
siteDetails via a Site object about the publisher’s website (object)
deviceDetails of the user’s device to which the impression will be delivered (object)
userDetails of the human user of the device; the advertising audience (object)
impDetails of the ad placement or impression being auctioned (object)
regsDetails of any industry, legal, or governmental regulations in force for this request (object)
extPlaceholder for extensions to OpenRTB (object)

site

AttributeDescription
idUnique Site ID (string)
domainDomain name of the site (string)
catIAB category ID (string array)
pageFull URL of the page where the ad will be shown (string)
keywordsKeywords can be used to ensure ad zones get the right type of advertising. Keywords should be a string of comma-separated words
extPlaceholder for exchange-specific extensions (object)

site.ext

AttributeDescription
exchangecatCustom ExoClick category ID (integer)
idzoneCustom ExoClick Ad Zone ID (integer)
keywordMatching keyword if any (string)

device

AttributeDescription
uaBrowser user agent (string)
suaStructured user agent information, which can be used when a client supports User-Agent Client Hints (object)
geoLocation of the device assumed to be the user’s current location defined by a Geo object
ipIPv4 address of the user (string)*
ipv6IPv6 address of the user (string)*
languageBrowser language (string)
osOperating System (string)
jsSupport for JavaScript, where 0 = no, 1 = yes (integer)
extPlaceholder for exchange-specific extensions to OpenRTB (object)

*Exactly one of ip or ipv6 will be present in the bid request.

device.geo

AttributeDescription
countryCountry ISO3
ipserviceService or provider used to determine geolocation from IP address if applicable (integer)

device.ext

AttributeDescription
remote_addrMain IP address of the user (string)
x_forwarded_forX-FORWARDED-FOR IP address of the user or empty if not set (string)

device.sua

Structured User Agent information. device.sua is considered the more accurate representation of the device attributes.

AttributeDescription
browsersSend brands and versions derived from the Sec-CH-UA-Full-Version-List header. (Array of BrandVersion objects)
platformSend a brand derived from the Sec-CH-UA-Platform header, and version derived from the Sec-CH-UA-Platform-Version header. (BrandVersion Object)
mobileDerive this value from the Sec-CH-UA-Mobile header. (integer)
architectureRetrieve this value from the Sec-CH-UA-Arch header. (string)
bitnessRetrieve this value from the Sec-CH-UA-Bitness header. (string)
modelRetrieve this value from the Sec-CH-UA-Model header. (string)
sourceThe source of data used to create this object, List: User-Agent Source in AdCOM 1.0 (integer; default 0)

device.sua.browsers | device.sua.platform

AttributeDescription
brandThe value may be sourced from the User-Agent Client Hints headers, representing either the user agent brand (from the Sec-CH-UA-Full-Version header) or the platform brand (from the Sec-CH-UA-Platform header). (string)
versionA sequence of version components, in descending hierarchical order [major, minor, micro, …] (array of string)

user

AttributeDescription
idUnique user ID (string)

user.ext

AttributeDescription
consentThis is the consent string required by the IAB standards. Negative consent only for now (string)

regs

AttributeDescription
extPlaceholder for exchange-specific extensions to OpenRTB.

regs.ext

AttributeDescription
gdprThis 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.

imp

AttributeDescription
idA unique identifier for this impression within the context of the bid request (string)
instl1 = the ad is interstitial or full screen, 0 = not interstitial (integer)
videoDetails via Video object that represents an in-stream video impression
secureFlag to indicate if the impression requires secure HTTPS URL (integer)
extPlaceholder for exchange-specific extensions to OpenRTB (object)

imp.video

AttributeDescription
mimesContent MIME types supported (e.g., "video/mp4") (string array )
mindurationMinimum video ad duration in seconds (integer)
maxdurationMaximum video ad duration in seconds (integer)
protocolsArray of supported video protocols (integer)
linearityIndicates if the impression must be linear, nonlinear, etc. If none specified, assume all are allowed (integer)
boxingallowedIndicates if letter-boxing of 4:3 content into a 16:9 window is allowed, where 0 = no, 1 = yes (integer)
posAd position on screen (integer)
hWidth of the video player in device independent pixels (DIPS) (integer)
wHeight of the video player in device independent pixels (DIPS) (integer)
extPlaceholder for exchange-specific extensions to OpenRTB (object)

imp.video.ext

AttributeDescription
zone_typeZone type within ExoClick's ad formats (e.g: video_slider)