BidRequest Object
Last updated on August 10, 2020
When appropriate, Ad Exchange sends a BidRequest object to the URL specified for your account’s Real-time Bid URL setting. Each Ad Exchange bid request contains a BidRequest object, a single Imp object, and may include other objects to provide additional information about the impression.
The following diagram depicts a high-level view of the structure of each bid request.
NOTE
OpenX supports only one Imp object per BidRequest.
Some fields in each BidRequest must always be sent and others are optional. The BidRequest object includes the following fields:
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | A unique ID for the request, which OpenX Ad Exchange uses to identify the auction. For example, 888b4a7a-d259-11e0-9912-000c29b0c11a If the ad request includes multiple ad sizes, you see multiple bid requests with the same ID. However, they represent one bid request that allows buyers to bid on different sizes. | Always |
imp | array (imp object ) | An object containing properties that describe the ad impression for which OpenX Ad Exchange is soliciting bids. OpenX supports only one impression per bid request, which is expressed as an array with a single Imp object. This is because OpenX handles each ad unit as a separate ad request. | Always |
site | site object | An object containing properties that describe the website where the ad is display if the bid request is for an impression on a website. The bid request can only have a Site or an App object. | Sometimes |
app | app object | An object containing properties that describe the app where the ad is display if the bid request is for an impression within a mobile app. A bid request can only have an App or a Site object. | Sometimes |
device | device object | An object containing properties that describe the device through which the impression is viewed, such as on a specific type of mobile phone. | Sometimes |
user | user object | An object containing properties that describe the user viewing the impression. | Sometimes |
test (new) | integer | Indicates test mode (1 ), which is not billable. The default is 0 , which indicates that the auction is billable. | Sometimes |
at | integer | Auction type of the request. • 1 = First-price auction.• 2 = Second-price auction. | Always |
cur | array (string ) | A single-element array containing the ISO-4217 code for the currency in which OpenX expects bids, based on the currency configured in your account. | Always |
bcat | array (string ) | The list of advertiser categories that the publisher wants to block for the ad request. The BidRequest.bcat field supports the IAB categories listed in the IAB’s OpenRTB 2.5 specification, as well as the OX- prefix.For example, "bcat": [ "IAB17-18", "IAB24", "IAB25", "IAB25-3", ], The bcat field also supports OpenX categories, listed below, as well as OpenX category values without the OX- prefix. For example, both OX-1 and 1 values can be sent in this field. A request may contain a combination of IAB categories as well as OpenX categories. We recommend that buyers integrate to ingest values with the IAB categories as specified in the IAB’s OpenRTB 2.5 specification, as well as the OX- prefix.• OX-1 . Adult• OX-2 . Arts and Entertainment• OX-3 . Automotive• OX-4 . Business• OX-5 . Careers• OX-6 . Shopping• OX-7 . Electronics• OX-8 . Social Networking• OX-9 . Family and Parenting• OX-10 . Firearms and Weapons• OX-11 . Food and Drink• OX-12 . Gambling• OX-13 . Government, Law and Politics• OX-14 . Health and Fitness• OX-15 . Hobbies and Interests• OX-16 . Pets• OX-17 . Home and Garden• OX-18 . Technology and Computing• OX-19 . Internet• OX-20 . Mobile Websites and Apps• OX-21 . News• OX-22 . Real Estate• OX-23 . Education• OX-24 . Science• OX-25 . Sports• OX-26 . Tobacco and Smoking• OX-28 . Travel• OX-29 . Reference and Directory• OX-30 . Personal Finance• OX-31 . Telecommunications• OX-32 . Social Science• OX-33 . Style and Fashion• OX-34 . Religion and Spirituality• OX-35 . Society• OX-99 . Not Classified | Sometimes |
badv | array (string ) | Blocked advertiser, the list of top-level advertiser domains (for example, blockeddomain.com ) blocked for this publisher as derived from the click URL. Domains are not case-sensitive.Note: While OpenX does not currently pass this field, we are in the process of building out support for it. We recommend that you build support for it as part of your integration. | Sometimes |
source | source object | An object that provides data about the inventory source and which entity makes the final decision. | Always (when enabled) |
regs | regs object | An object containing properties that describe any regulations applicable to the request. | Sometimes |
ext | extensions object | An object containing custom fields that describe the BidRequest. | Sometimes |
For additional publisher enrichment fields, see Supplemental Data.
Extensions Object
BidRequest.ext
The Extensions object and its ThirdPartyKeyValue object provide additional details about the BidRequest.
Field name | Data type | Description | Sent? |
---|---|---|---|
tp_key_val | ThirdPartyKeyValue | An object containing a list of third-party key-value pairs. | Sometimes |
ThirdPartyKeyValue Object
BidRequest.ext.tp_key_val
Field name | Data type | Description | Sent? |
---|---|---|---|
key | string | The third-party identifier key. | Sometimes |
value | string | The value for the associated key. | Sometimes |
Source Object
Last updated on June 9, 2020
BidRequest.source
This object describes the nature and behavior of the entity that is the source of the bid request upstream from the OpenX Ad Exchange. The primary purpose of this object is to define post-auction or upstream decisioning when the OpenX Ad Exchange itself does not control the final decision. A common example of this is header bidding.
To enable this object or receive more information, please contact your Business Development Manager.
Field name | Data type | Description | Sent? |
---|---|---|---|
fd | integer | Entity responsible for the final impression sale decision. • 0 = OpenX Ad Exchange.• 1 = Upstream source. For example: header bidding. | Always |
tid | string | Transaction ID that is common across all participants in this bid request (for example, potentially multiple exchanges). | Sometimes |
pchain | string | Payment ID chain string containing embedded syntax described in the TAG Payment ID Protocol v1.0. | Always |
ext | extensions object | An object containing properties that describe custom fields for the bid request source. | Always |
Extensions object
BidRequest.source.ext
The optional Extensions object can provide additional details about the source of the bid request.
Field name | Data type | Description | Sent? |
---|---|---|---|
schain | string | Represents both the links in the supply chain as well as an indicator whether or not the supply chain is complete. | Sometimes |
SupplyChain object
BidRequest.source.ext.schain
The SupplyChain object enables buyers to see all parties who are selling or reselling a given bid request. If you would like to receive schain in your bid requests from OpenX, please contact your Platform Development Manager. For more information please see the official IAB spec.
To interpret the OpenX node of the schain object, you can reference OpenX’s sellers.json file that contains a list of all our supply partners at openx.com/sellers.json. To interpret the node of any other advertising system in the schain, simply append “/sellers.json” to the provided asi
.
Field name | Data type | Description | Sent? |
---|---|---|---|
complete | integer | Flag indicating whether the chain contains all nodes leading back to the source of the inventory, where 0 = no, 1 = yes. | Always |
nodes | object array | Array of SupplyChainNode objects in the order of the chain. In a complete supply chain, the first node represents the initial advertising system and seller ID involved in the transaction (for example, the owner of the site, app, or other medium). In an incomplete supply chain, it represents the first known node. The last node represents the entity sending this bid request. | Always |
SupplyChainNode object
BidRequest.source.ext.schain.node
Field name | Data type | Description | Sent? |
---|---|---|---|
asi | string | The canonical domain name of the SSP, exchange, header wrapper, etc., system that bidders connect to. This may be the operational domain of the system, if that is different than the parent corporate domain, to facilitate WHOIS and reverse IP lookups to establish clear ownership of the delegate system. This should be the same value as used to identify sellers in an ads.txt file if one exists. | Always |
sid | string | The identifier associated with the seller or reseller account within the advertising system. This must contain the same value used in transactions (OpenRTB bid requests) in the field specified by the SSP/exchange. Typically, in OpenRTB, this is publisher.id. For OpenDirect it is typically the publisher’s organization ID. Should be limited to 64 characters in length. | Always |
rid | string | The OpenRTB RequestId of the request as issued by this seller. | Sometimes |
hp | integer | Indicates whether this node is involved in the flow of payment for the inventory. • When set to 1 , the advertising system in the asi field pays the seller in the sid field, who is responsible for paying the previous node in the chain.• When set to 0 , this node is not involved in the flow of payment for the inventory.For version 1.0 of SupplyChain, this property should always be 1 . It is explicitly required to be included as it is expected that future versions of the specification introduces non-payment handling nodes. Implementers should ensure that they support this field and propagate it onwards when constructing SupplyChain objects in bid requests sent to a downstream advertising system. | Always |
Imp Object
Last updated on September 10, 2018
BidRequest.imp
Each BidRequest object contains an array with a single Imp object to describe the impression. Each Imp object can contain one of the following objects to describe the ad space:
In addition, the Imp object can contain a Pmp object along with a Banner or Native object.
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | A unique ID for the impression. For example, 1 .Note that the IAB’s OpenRTB 2.5 specification requires that you use the value of BidRequest.imp.id to populate BidResponse.seatbid.bid.impid . | Always |
metric | object array | An array of Metric that offers insight into different metrics about the impression itself to assist with your bidding decisions. A Metric object is always sent when it is enabled. | Sometimes |
banner | banner object | An object containing properties that describe the display banner ad unit for this impression opportunity. A Banner object is always sent for banner impression opportunities. | Sometimes |
video | video object | An object containing properties that describe the display video ad unit for this impression opportunity. A Video object is always sent for video impression opportunities. | Sometimes |
native | native object | An object containing properties that describe a native ad impression opportunity. A Native object is always sent for native ad impression opportunities. | Sometimes |
pmp | pmp object | An object containing properties that describe deals eligible for impressions. A pmp object is always sent for private marketplace deals. | Sometimes |
displaymanager | string | Name of SDK technology or player responsible for rendering an ad (typically video or mobile). | Sometimes |
displaymanagerver | string | Version of SDK technology or player responsible for rendering an ad (typically video or mobile). | Sometimes |
instl | integer | Indicates whether the request is for an interstitial ad (1 ) or not (0 ). | Sometimes |
secure | integer | If this impression must be SSL secured, all creative assets that are returned must use the HTTPS protocol, not HTTP. • 0 = False• 1 = True (HTTPS URLs are required.) | Sometimes |
exp | integer | Advisory as to the number of seconds that may elapse between the auction and the actual impression. | Sometimes |
For additional publisher enrichment fields, see Supplemental Data.
Metric Object
Last updated on May 18, 2018
BidRequest.imp.metric
This object is associated with an impression as an array of metrics. These metrics can offer insight into the impression to assist with decisioning (such as viewability). Each metric is identified by its type, reports the value of the metric, and optionally identifies the source or vendor measuring the value.
To enable this object or receive more information, please contact your Platform Development Manager.
Field name | Data type | Description | Sent? |
---|---|---|---|
type | string | Type of metric being presented (such as viewability). Please see the table below for a list of metric types supported by OpenX. | Always |
value | float | Number representing the value of the metric. Probabilities must be in the range 0.00 - 1.00 | Always |
vendor | string | Source of the value. | Always |
Supported metrics
The following is subject to regular updates. We strongly recommend regularly checking this table for new metrics that are supported by OpenX.
Metric | Type | Range for value | Possible vendor values |
---|---|---|---|
Viewability score of the bid request | viewability | 0.00 - 1.00 | Moat , Active View |
Banner Object
Last updated on September 27, 2018
BidRequest.imp.banner
Each Imp object can contain one Banner object, which is required for banner impressions.
Field name | Data type | Description | Sent? |
---|---|---|---|
w | integer | The width of the ad space, in pixels, where the ad of the winning bidder is displayed. For example, 300 | Sometimes |
h | integer | The height of the ad space in pixels. For example, 250 | Sometimes |
format | array of format objects | Array of format objects representing the banner sizes permitted. | Always |
btype | array (integer ) | Blocked banner ad types. | Sometimes |
battr | array (integer ) | An array of blocked creative attributes. If no value is specified, all types are allowed. For a list of creative attribute values, see . | Sometimes |
api | array (integer ) | One of the supported API standards or frameworks: • 2 = VPAID 2.0• 3 = MRAID 1.0• 4 = ORMMA• 5 = MRAID 2.0For example, 2 | Sometimes |
ext | extensions object | An object containing properties that describe custom fields related to this banner ad. | Sometimes |
For additional details, see the IAB’s OpenRTB 2.5 specification.
For additional publisher enrichment fields, see Supplemental Data.
Extensions object
BidRequest.imp.banner.ext
The optional Extensions object can provide the following details about the banner.
Field name | Data type | Description | Sent? |
---|---|---|---|
matching_ad_id | array (MatchingAdId object ) | A list of objects containing properties that describe matching ads for which OpenX Ad Exchange is soliciting bids from the bidder. | Always |
MatchingAdId object
BidRequest.imp.banner.ext.matching_ad_id
Each MatchingAdId object provides details about a matching ad for which OpenX Ad Exchange is soliciting bids.
Field name | Data type | Description | Sent? |
---|---|---|---|
ad_height | integer | The height of the ad unit in which the ad is displayed. For example, 250 | Always |
ad_width | integer | The width of the ad unit in which the ad is displayed. For example, 300 | Always |
campaign_id | integer | The ID for the business unit to which the matching ad belongs. | Always |
creative_id | integer | The ID for the matching ad. | Always |
placement_id | integer | The ID for the traffic set to which the matching ad belongs. | Always |
Video Object
Last updated on September 27, 2018
BidRequest.imp.video
The Video object provides details about a video ad request. Each Imp object can contain one Video object, which is required for video impressions. Alternatively, an Imp object can contain a Banner or a Native object.
See also, Video Examples.
Guidance on Video creatives
- Suggested maximum file size: 10MB.
- Preferred video file formats: MP4 (H.264) and JavaScript VPAID.
- Accepted video file formats: HTML5, at least one media provided must be in MP4 format.
- Dimensions: Video ads can be rendered in any size video player. For example, 480x360, 640x360, 1920x800.
- Video bitrate: 240kbps - 4mbps, depending on device; at least one media at 1mbps or below is required.
- Max frame rate: 30FPS.
- Playback methods: All playback methods defined in OpenRTB are supported.
- Video types:
- In-stream (an ad that appears within video content, and can be pre, mid, or post-roll)
- Out-stream
- Interstitial: for mobile app video and opt-in video, video type is interstitial.
NOTE
Flash support deprecation: July 3, 2017. Deprecation includes the VPAID 1.0 API Framework and the following MIME types: application/x-shockwave-flash and video/x-flv.
Field name | Data type | Description | Sent? |
---|---|---|---|
mimes | array (string ) | An array of supported MIME types for content video. Below are just a few examples for app, though MIME types are also sent for web ads. Android: • video/3gpp • video/mp4 iOS: • video/3gpp • video/mov • video/mp4 • video/mpv | Always |
minduration | integer | Minimum video ad duration (in seconds). | Sometimes |
maxduration | integer | Maximum video ad duration (in seconds). | Sometimes |
protocols | array (integer ) | A list of supported video bid response protocols. OpenX supports the following values: • 2 = VAST 2.0• 3 = VAST 3.0• 5 = VAST 2.0 Wrapper• 6 = VAST 3.0 Wrapper | Always |
w | integer | Width of the player (in pixels). | Always |
h | integer | Height of the player (in pixels). | Always |
startdelay | integer | The start delay (in seconds) for mid-roll ad placements, or an indication of the ad’s position within linear video content. If the startdelay value is greater than 0 , the position is mid-roll, and the value indicates the start delay. Possible values include:• > 0 = Mid-roll (value indicates start delay in seconds)• 0 = Pre-roll• -1 = Generic mid-roll• -2 = Generic post-roll | Always |
placement | integer | Placement type for the impression. Possible values include: • 1 = In-Stream• 2 = In-Banner. OpenX does not support and, therefore, does not monetize, low-value video ad units, including in-banner video.• 3 = In-Article (out-stream)• 4 = In-Feed• 5 = Interstitial/Slider/FloatingNote: You can distinguish a full-screen interstitial (for example, in mobile) from a floating/slider unit via the imp.instl field. | Sometimes |
linearity | integer | Indicates whether the ad impression is linear or non-linear. OpenX currently supports a value of 1 (linear). | Always |
skip | integer | Always sent for opt-in video (rewarded video). Indicates if the player allows the video to be skipped, where: • 0 = No• 1 = YesFor opt-in video, OpenX always passes 0 . | Sometimes |
battr | array (integer ) | An array of blocked creative attributes. If no value is specified, all types are allowed. | Sometimes |
maxextended | integer | Indicates whether extended video ad duration is allowed beyond the value of maxduration :• -1 = Extension is allowed and there is no limit• 0 = Extension is not allowed• >0 = Extension is allowed and the value indicates the number of seconds of extended play | Sometimes |
minbitrate | integer | The minimum bitrate (in Kbps). | Sometimes |
maxbitrate | integer | The maximum bitrate (in Kbps). | Sometimes |
boxingallowed | integer | Indicates whether letterboxing of 4:3 video content in a 16:9 window is allowed (1 ) or not (0 ). The default value is 1 . | Sometimes |
playbackmethod | array (integer ) | Playback methods that may be in use. Only one method is typically used in practice. If none are specified, any method may be used. | Sometimes |
delivery | array (integer ) | A list of supported delivery methods. For example, 1 for streaming or 2 for progressive. If no values are specified, assume all delivery methods are supported. | Always |
api | array (integer) | One of the supported API standards or frameworks: • 2 = VPAID 2.0• 3 = MRAID 1.0• 4 = ORMMA• 5 = MRAID 2.0For example: 2 | Sometimes |
ext | object | An object containing properties that describe custom fields for the Video object. | Always |
For additional details, see the IAB’s OpenRTB 2.5 specification.
For additional publisher enrichment fields, see Supplemental Data.
Extensions object
BidRequest.imp.video.ext
Provides additional details about the video ad. The Video object may include an Extensions object.
Field name | Data type | Description | Sent? |
---|---|---|---|
matching_ad_id | array (MatchingAdId object ) | A list of objects containing properties that describe ads for which Ad Exchange is soliciting bids from the bidder. | Always |
skip | integer | Present only when inventory is opt-in video (rewarded video). Always set to 0 to identify non-skippable opt-in video. | Sometimes |
videotype | string | Present only when inventory is opt-in video. Always set to rewarded to identify non-skippable opt-in video. | Sometimes |
BidRequest.imp.video.ext.matching_ad_id
Each MatchingAdId
object provides details about a matching ad for which Ad Exchange is soliciting bids.
Field name | Data type | Description | Sent? |
---|---|---|---|
ad_height | integer | The height of the ad unit in which the ad is displayed. For example, 250 This field duplicates the h field described in the Video object. | Always |
ad_width | integer | The width of the ad unit in which the ad is displayed. For example, 300 This field duplicates the w field described in the Video object. | Always |
campaign_id | integer | The ID for the business unit to which the matching ad belongs. | Always |
creative_id | integer | The ID for the matching ad. | Always |
placement_id | integer | The ID for the traffic set to which the matching ad belongs. | Always |
Native Object
Last updated on January 30, 2018
BidRequest.imp.native
The Native object provides details about a native ad request. A well-structured response must comply with the OpenRTB dynamic native ads API specification.
Each Imp object can contain one Native object, which is required for native impressions. Alternatively, an Imp object can contain a Banner object.
Before the implementation of the OpenRTB native ads API, OpenX used key value pairs to describe a native ad opportunity. OpenX now passes a serialized string of structured JSON data describing the opportunity via the BidRequest.imp.native.request
field. To respond to this opportunity, send your native markup via the BidResponse.seatbid.bid.adm
field.
NOTE
Native ads are currently not available in the OpenX Ad Exchange.
Field name | Data type | Description | Sent? |
---|---|---|---|
api | array (integer ) | One of the supported API standards or frameworks: • 2 = VPAID 2.0• 3 = MRAID 1.0• 4 = ORMMA• 5 = MRAID 2.0For example, 2 . | Sometimes |
battr | array (integer ) | An array of blocked creative attributes. If no value is specified, all types are allowed. For a list of creative attribute values, see the IAB’s OpenRTB 2.5 specification. | Sometimes |
request | string | Request markup complying with the OpenRTB dynamic native ads API specification (for example, a string of JSON data describing the native ad opportunity). To respond to the native opportunity, include a serialized string of native markup in the BidResponse.seatbid.bid.adm field. | Always |
ver | string | The version of the native ads API specification. For example, 1 | Sometimes |
For additional details, see the IAB’s:
- OpenRTB 2.5 specification
- OpenRTB dynamic native ads API specification
- Supplemental Data (for additional publisher enrichment fields)
Format Object
Last updated on February 27, 2017
BidRequest.imp.banner.format
This object represents an allowed size (specifically, height and width combination) for a banner impression. These are typically used as an array of objects for an impression where multiple sizes are permitted. It is recommended to submit multiple bids in a single BidResponse if you want to take advantage of the format object for multiple ad sizes.
To enable this object, or for more information about how to use the format object, please contact your Platform Development Manager.
Field name | Data type | Description | Sent? |
---|---|---|---|
w | integer | Width in device-independent pixels. | Always |
h | integer | Height in device-independent pixels. | Always |
Format object example
"banner": {
"format": [
{"w": 728, "h": 90},
{"w": 320, "h": 50},
{"w": 160, "h": 60}
],
}
Site Object
Last updated on April 18, 2017
BidRequest.site
If the available impression is on a website, Ad Exchange may include a Site object to describe the website.
A BidRequest can only contain a single Site or App object, not both.
A Site object can reference the Publisher object and the Content object.
Field name | Data type | Description | Sent? |
---|---|---|---|
cat | array (string ) | The list of IAB content categories that apply to the site. | Sometimes |
domain | string | The site domain (for example, mywebsite.com ), which maps to the domain of the bid request URL. | Sometimes |
ext | extensions object | An object containing properties that describe custom fields related to this site. | Sometimes |
id | string | The ID for the site associated with this inventory purchase. | Sometimes |
mobile | integer | Indicates whether the site has been programmed to optimize layout when viewed on mobile devices. • 0 = False• 1 = True (The site uses responsive web design.) | Sometimes |
page | string | The URL of the webpage where the impression will display. | Sometimes |
publisher | publisher object | An object containing properties that describe the publisher of the Site or App for this impression opportunity. | Sometimes |
ref | string | The referrer URL that navigated the end-user to the current page. | Sometimes |
For additional details, see:
- IAB’s OpenRTB 2.5 specification
- Supplemental Data (for additional publisher enrichment fields)
App Object
Last updated on September 11, 2017
BidRequest.app
If the available impression is within a mobile app, the BidRequest includes the App object to describe the mobile app.
A BidRequest can only contain a single App or Site object, not both.
An App object can reference the Content object.
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | The OpenX-specific ID for the app associated with this inventory purchase. | Sometimes |
name | string | The name of the app. | Sometimes |
bundle | string | The unique ID of the app’s package (Android), bundle (iOS), or its AppStore ID. For example, com.demo.openx or 123456789 | Sometimes |
domain | string | The domain of the app. For example, mygame.foo.com | Sometimes |
storeurl | string | The app store URL for this app. | Sometimes |
cat | array (string ) | The list of IAB content categories for the app, as defined in the IAB’s OpenRTB 2.5 specification. | Sometimes |
publisher | publisher object | An object containing properties that describe the publisher of the app. | Sometimes |
For additional details, see IAB’s OpenRTB 2.5 specification.
BidRequest.app.ext
Field name | Data type | Description | Sent? |
---|---|---|---|
alt_id | string | The numeric App Store ID for iOS app traffic. | Always (if iOS) |
For additional publisher enrichment fields, see Supplemental Data.
Publisher Object
Last updated on January 31, 2018
BidRequest.app.publisher or BidRequest.site.publisher
The Publisher object describes the seller of the ad space (for the App or Site) in which the ad is displayed.
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | Exchange-specific publisher ID. | Always |
name | string | Main seller/entity or publisher name (may be aliased at the publisher’s request). | Sometimes |
For additional publisher enrichment fields, see Supplemental Data.
Content Object
Last updated on April 30, 2021
BidRequest.app.content or BidRequest.site.content
The Content object describes the type of content of the App or Site in which the ad is displayed. The OpenX implementation currently supports a subset of the OpenRTB Content object.
This section contains some Beta out-stream content for Video. If you are already consuming out-stream bid requests, you may be able to use the same style parsing for out-stream when you consume your OpenX bid requests. If you aren’t already consuming out-stream bid requests and are interested in doing so, we advise you build toward the IAB’s OpenRTB 2.5 specification, leveraging the new placement
field for the Video object. Please reach out to your OpenX Platform Development Manager if you have any questions.
Field name | Data type | Description | Sent? |
---|---|---|---|
cat | string array | Array of IAB content categories that describe the content producer. See list 5.1 in the OpenRTB 2.5 specification. | |
context | string | (In Beta and not part of the IAB’s OpenRTB 2.5 specification) An attribute that infers out-stream inventory when the following values are passed: • 101 : In-read, an out-stream ad format that is placed within the text of a site or app• 102 : In-board, an out-stream ad format that is located at the top of a pageNote: If you are new to out-stream, please be advised that we are working toward support of the IAB’s OpenRTB 2.5 specification. This specification defines the future IAB industry standard for out-stream and its subtypes as the Video object’s new placement field. Please contact your OpenX Platform Development Manager for more details. | Sometimes |
len | integer | Length of content in seconds; appropriate for video or audio. | |
qagmediarating | integer | The quality assurance guidelines’ (QAG) media rating. For details, the IAB’s OpenRTB 2.5 specification. | Sometimes |
title | string | Content title. Video Examples: Search Committee (television), A New Hope (movie), or Endgame (made for Web). Non-Video Example: Why an Antarctic Glacier Is Melting So Quickly (Time magazine article). | |
userrating | string | User rating of the content (for example, number of stars, likes, etc.). | |
sourcerelationship | integer | Source relationship: • 0 = indirect• 1 = direct | |
series | string | Content series. Video Examples: The Office (television), Star Wars (movie), or Arby ‘N’ The Chief (made for web). Non-Video Example: Ecocentric (Time Magazine blog). | |
season | string | Content season (for example, Season 3). | |
genre | string | The genre that best describes the content (for example, rock, pop, etc.). | |
producer | object | Details about the content Producer (see Section 3.2.17 in the OpenRTB 2.5 specification). | |
livestream | integer | • 0 = not live• 1 = content is live (for example, stream, live blog) | |
language | string | Content language using ISO-639-1-alpha-2. | |
episode | integer | The episode number. | |
embeddable | integer | The indicator of whether or not the content is embeddable. For example, an embeddable video player where: • 0 = no• 1 = yes | |
prodq | integer | Production quality. | |
contentrating | string | Content rating. | |
id | string | ID uniquely identifying the content. | |
url | string | URL of the content, for buy-side contextualization or review. |
For additional details, see:
- IAB’s OpenRTB 2.5 specification
- Supplemental Data (for additional publisher enrichment fields)
Device Object
Last updated on September 11, 2019
BidRequest.device
Each BidRequest object may contain a Device object, which provides details about the end-user’s computing environment. The Device object can contain an Extensions object (see below) and can reference the Geo object.
Field name | Data type | Description | Sent? |
---|---|---|---|
ua | string | The HTTP user agent, which typically indicates the user’s browser. For example, “Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us)” | Sometimes |
geo | geo object | An object containing properties that describe the geographic location of the user as derived from the device. | Sometimes |
dnt | integer | The “do not track” flag. This flag indicates whether the user’s web browser is set for private browsing. • 0 = False• 1 = True (Browser is set for private browsing.) | Sometimes |
lmt | integer | The “limit tracking” flag. If the user’s mobile device is set for private browsing, the LMT (limit tracking) flag is passed. • 0 = False• 1 = True (The user does not want to be tracked.) | Sometimes |
ip | string | The ipv4 address closest to the user’s device. For example, 238.122.7.1 | Sometimes |
ipv6 | string | The IP address closest to device as IPv6. | Sometimes |
devicetype | integer | The detected device category for the user’s device as defined in the IAB’s OpenRTB 2.5 specification. Note: OpenX OpenRTB uses a devicetype value of 1001 to indicate text (SMS). | Sometimes |
make | string | The make for the user’s device. For example, Apple | Sometimes |
model | string | The model for the user’s device. For example, iPhone | Sometimes |
os | string | The operating system for the user’s device. For example, iOS | Sometimes |
osv | string | The version number for the user’s operating system. For example, 3.1.2 | Sometimes |
hwv | string | The device’s hardware version. For example, 5S (for iPhone 5S) | Sometimes |
h | integer | The physical height of the device’s screen, in pixels. | Sometimes |
w | integer | The physical width of the device’s screen, in pixels. | Sometimes |
language | string | A single two-letter code ISO 639-1 for the user’s preferred browsing language on their device. For example, en | Sometimes |
carrier | string | The carrier or ISP using exchange-curated string names. Should be published to bidders a priori. For example, VERIZON | Sometimes |
mccmnc | string | The mobile carrier for the user’s device as the concatenated MCC-MNC code. Refer to Mobile country code for additional examples. Note: The dash between the MCC and MNC parts is required to remove parsing ambiguity. For example, 310-005 (Identifies Verizon Wireless CDMA in the USA.) | Sometimes |
connectiontype | integer | The detected data connection type for the user’s device as defined in the IAB’s OpenRTB 2.5 specification. For example, 2 | Sometimes |
ifa | string | The ID for advertisers (also referred to as “IDFA”). This is the ID sanctioned for advertiser use in the clear (not hashed). | Sometimes |
didsha1 | string | The SHA-1 hash identifier for the user’s device, such as the UDID for an iOS device. For example, 2b6f0cc904d137be2e1730235f5664094b831186 | Sometimes |
dpidsha1 | string | The SHA-1 hash of the Android ID for the end-user’s mobile device. | Sometimes |
dpidmd5 | string | The MD5 hash of the Android ID for the end-user’s mobile device. | Sometimes |
macsha1 | string | The SHA-1 hash of the device’s MAC address. | Sometimes |
macmd5 | string | The MD5 hash of the device’s MAC address. | Sometimes |
ext | extension object | An object containing properties that describe custom fields related to this device. | Sometimes |
For additional details, see:
- IAB’s OpenRTB 2.5 specification
- Supplemental Data (for additional publisher enrichment fields)
BidRequest.device.ext
To provide additional details about the end-user’s device, the Device object may include an Extensions object.
Field name | Data type | Description | Sent? |
---|---|---|---|
language | array of strings | An array of two-letter codes for the user’s preferred browsing languages on their device, listed in order of the user’s language preferences in the browser. | Always |
Geo Object
Last updated on April 18, 2017
BidRequest.device.geo or BidRequest.user.geo
The Geo object provides details about the user’s current location (in relation to the Device object) or their primary location (via the User object).
Each Geo object can include the optional Extensions object (see below).
Field name | Data type | Description | Sent? |
---|---|---|---|
city | string | The city where the user is located (United Nations Code for Trade and Transport Locations). For example, los angeles | Sometimes |
country | string | The country where the user is located expressed as an ISO 3166-1 alpha-3 code. For example, USA | Sometimes |
ext | extensions object (see below) | An object containing properties that describe custom fields related to the end-user’s physical location. | Sometimes |
lat | floating-point | The user’s latitude. For example, 33.684 | Sometimes |
lon | floating-point | The user’s longitude. For example, -117.793 | Sometimes |
region (new) | string | Indicates the region code per ISO-3166-2 or the two-character state code in the U.S. For example, CA | Sometimes |
type | integer | Indicates the source of the user’s geographic location details, as defined in the IAB’s OpenRTB 2.5 specification. For example, this field can indicate whether the lat or lon is derived from the device’s GPS location or an IP address. | Sometimes |
zip | string | The user’s postal code location. Values are not restricted to the U.S. For example, 92602 | Sometimes |
For additional details, see:
- IAB’s OpenRTB 2.5 specification
- Supplemental Data (for additional publisher enrichment fields)
BidRequest.device.geo.ext or BidRequest.user.geo.ext
To provide additional details about the end-user’s physical location, the Geo object may include an Extensions object.
Field name | Data type | Description | Sent? |
---|---|---|---|
continent | string | The user’s continent location. For example, north america | Sometimes |
dma | integer | The user’s designated market area (DMA) location. | Sometimes |
User Object
Last updated on April 12, 2019
BidRequest.user
Each BidRequest object can contain a User object, which provides details about the end-user.
The User object can contain an Extensions object and can reference the user’s Geo via their Device.
NOTE
With the enactment of the General Data Protection Regulation (GDPR), OpenX includes GDPR-specific elements in its support of OpenRTB. For more information, please contact your OpenX Platform Development Manager. See also Regs object.
Field name | Data type | Description | Sent? |
---|---|---|---|
buyeruid | string | OpenX can return data to the bidder that was previously synced with OpenX and tracked by an OpenX cookie. For example, the bidder’s unique identifier for a user could be synchronized and later reported back to the bidder when the user’s cookie data becomes available. | Sometimes |
data | array (data object ) | An array of Data objects to provide details about the user. | Sometimes |
ext | extensions object | An object containing properties that describe custom fields related to this user, | Sometimes |
gender | string | The end-user’s gender (M , F , or O ) | Sometimes |
geo | geo object | An object containing properties that describe the user’s primary location, which is not necessarily their current location | Sometimes |
id | string | The OpenX ID for the user, which is only returned when OpenX is able to set the cookie for the user. To protect the identity of the user, the ID is different for each bidder. For example, Ad Exchange may send a value of 1234 to bidder A and a value of 5678 to bidder B to represent the same user. | Sometimes |
yob | integer | The end-user’s four digit year of birth. For example, 1972 | Sometimes |
For additional publisher enrichment fields, see Supplemental Data.
To provide additional details about the end-user, Ad Exchange may include an Extensions object.
BidRequest.user.ext
Field name | Data type | Description | Sent? |
---|---|---|---|
consent | string | Declaration that the user has consented to having his or her data collected by the publisher’s site, as mandated by the GDPR. | Sometimes |
consented_providers_settings | object | Information about Google providers for whom the publisher has informed Google that its European Economic Area (EEA) users have consented to the use of their personal data for ad personalization. This field is only relevant for requests that are subject to GDPR. Note: This object is only populated for Google Exchange Bidding traffic. | Sometimes |
eids | object array | Incorporates external identifiers related to user data. | Sometimes |
BidRequest.user.ext.consented_providers_settings
Field name | Data type | Description | Sent? |
---|---|---|---|
consented_providers | integer array | Set of Google IDs corresponding to Google providers for whom the publisher has informed Google that its European Economic Area (EEA) users have consented to the use of their personal data for ad personalization. Google has publicly provided a .csv file containing the mapping of provider IDs to provider names. Note: This field is only populated for Google Exchange Bidding traffic. | Sometimes |
BidRequest.user.ext.eids
Field name | Data type | Description | Sent? |
---|---|---|---|
source | string | The source of the external identifier, typically a top-level domain URL, such as adsrver.org. | Sometimes |
uids | object array | An array of unified identifiers that are mapped, for standardization, to user IDs collected by exchange partners who adopt a given standard. | Sometimes |
BidRequest.user.ext.eids.uids
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | One of the IDs in a uids array. | Sometimes |
ext | extensions object | An object containing properties that describe custom fields related to a unified ID. | Sometimes |
BidRequest.user.ext.eids.uids.ext
Field name | Data type | Description | Sent? |
---|---|---|---|
rtiPartner | string | The name of the real-time identity partner. | Sometimes |
See also, OpenRTB Advisory-GDPR.
Data Object
Last updated on June 1, 2016
BidRequest.user.data
The Data object provides details about the user.
NOTE
This object is supported, but not currently populated. Ask your Platform Development Manager for more details.
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | A unique OpenX identifier for the data provider. This field includes any publisher data that may be provided in the BidRequest using a Data object and corresponding segments. Publishers can pass a value that may be included in the BidRequest.data.id field if its value is either publisher or it is prefixed with pub- followed by any value of their choosing.For example, pub-12345678 .Values passed by publishers and prefixed with pub- have not been verified by OpenX. Note: The conventions used by this field will change as OpenX supports additional sources of data. | Sometimes |
name | string | The name of the data provider. | Sometimes |
segment | array segment object | A collection of Segment objects, each describing a particular data point available from this data provider | Sometimes |
For additional publisher enrichment fields, see Supplemental Data.
Segment Object
Last updated on March 8, 2016
BidRequest.user.data.segment
The Segment object provides data about the user.
NOTE
This object is supported, but not currently populated. Ask your Platform Development Manager for more details.
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | The ID of the data segment specific to the data provider. | Sometimes |
name | string | The name of the data segment specific to the data provider. For example, gender , dma , or age . | Sometimes |
value | string | A string representation of the data segment value. | Sometimes |
For additional publisher enrichment fields, see Supplemental Data.
Regs Object
Last updated on December 17, 2019
BidRequest.regs
With the enactment of the General Data Protection Regulation (GDPR), OpenX includes GDPR-specific elements in its support of OpenRTB. For more information, please contact your OpenX Platform Development Manager. See also User object.
The Regs object provides details about any regulations applicable to the request.
Field name | Data type | Description | Sent? |
---|---|---|---|
coppa | integer | Indicates whether the request is subject to the Children’s Online Privacy Protection Act (COPPA) regulations. • 0 = false• 1 = true (the request is subject to COPPA) | Sometimes |
ext | extensions object | An object containing properties that describe custom fields for additional regulations. | Sometimes |
BidRequest.regs.ext
The optional Extensions object can provide additional regulatory details.
Field name | Data type | Description | Sent? |
---|---|---|---|
gdpr | integer | Indicates whether the request is subject to the General Data Protection Regulation (GDPR). • 0 = false• 1 = true (the request is subject to GDPR) | Sometimes |
sb568 | integer | Indicates whether the request is subject to California’s SB-568 regulations. • 0 = false• 1 = true (the request is subject to SB-568) | Sometimes |
us_privacy | string | Must follow the U.S. Privacy string format. See table below. Click here for more information on CCPA Integration Support. | Optional |
us_privacy string
The us_privacy
string consists of the following components.
String component | Expected values | Description |
---|---|---|
Specification version | number (1 char in string) | The version of this string specification used to encode the string. |
Explicit notice / Opportunity to opt out | enum • N = No• Y = Yes• - = Not applicable | Has explicit notice been provided as required by 1798.115(d) of the CCPA and the opportunity to opt out of the sale of their data pursuant to 1798.120 and 1798.135 of the CCPA. |
Opt-out sale | enum • N = No• Y = Yes• - = Not applicable | Has user opted-out of the sale of his or personal information pursuant to 1798.120 and 1798.135. |
LSPA | enum • N = No• Y = Yes• - = Not applicable | Publisher is a signatory to the IAB Limited Service Provider Agreement (LSPA) and the publisher declares that the transaction is covered as a Covered Opt Out Transaction or a Non Opt Out Transaction as those terms are defined in the Agreement. |
See also:
Pmp Object
Last updated on February 15, 2018
BidRequest.imp.pmp
The Imp object can contain a Pmp object, which describes deals eligible for impressions.
If the Pmp object is sent, its fields are always sent.
Field name | Data type | Description | Sent? |
---|---|---|---|
deals | array deal object | A collection of deal objects, each describing eligible deal terms for this impression opportunity. This field is always sent when the Pmp object is sent. | Only when Pmp object is sent |
private_auction | integer | Indicates a private auction restricted to certain seats (1 ) or that all bids are accepted (0 ).• If the bid request contains any MatchingAdIds objects that do not have an associated deal, then private_auction is 0 .• If not, private_auction is 1 (only deal bids are accepted).This field is always sent when the Pmp object is sent. | Only when Pmp object is sent |
See also, PMP bid request sample.
Deal Object
Last updated on August 10, 2020
BidRequest.imp.pmp.deal
The Deal object (direct deals) describes a list of deals eligible for impressions. If the Deal object is sent, its at
field is sent.
Field name | Data type | Description | Sent? |
---|---|---|---|
id | string | A unique identifier for the deal. | Always |
at | integer | Auction type of the PMP request. This overrides the overall auction type of the request. • 1 : First-price auction.• 2 : Second-price auction.• 3 : Fixed price auction.Note: Real-time guaranteed (RTG) requests are sent with both a value of 3 in the deal.at field and a value of 4 in the deal.ext.at field to maintain backwards compatibility. If using RTG, please set your logic to refer to the deal.ext.at field first, and then deal.at field to understand the auction type. | Always |
bidfloor | floating-point | The minimum price for the impression in CPM. The default value is 0 . | Always |
BidRequest.imp.pmp.deal.ext
Field name | Data type | Description | Sent? |
---|---|---|---|
at | integer | Additional auction type: • 4 : Guaranteed deal. | Sometimes |
See also:
Supplemental Data
To provide buyers with additional data about opportunities, OpenX offers its publishers an optional openrtb
ad call parameter to send structured JSON data in each BidRequest about the user, the site or app, and other details.
Publishers may pass any supported fields at their own discretion. Publishers cannot pass certain OpenRTB fields. OpenX Ad Exchange may override the publisher’s data if it determines a value.
Click to see fields that can be passed by publishers
Object name | Field name | OpenX may override? |
---|---|---|
App | keywords | No |
App | pagecat | Yes |
App | paid | Yes |
App | privacypolicy | No |
App | sectioncat | Yes |
App | ver | No |
Banner | api | No |
Banner | btype | Yes |
Banner | expdir | No |
Banner | hmax | Yes |
Banner | hmin | Yes |
Banner | mimes | No |
Banner | topframe | No |
Banner | wmax | Yes |
Banner | wmin | Yes |
BidRequest | test | No |
Content | cat | Yes |
Content | context | No |
Content | embeddable | No |
Content | episode | No |
Content | keywords | No |
Content | language | No |
Content | len | No |
Content | livestream | No |
Content | season | No |
Content | series | No |
Content | sourcerelationship | No |
Content | title | No |
Content | url | No |
Content | userating | No |
Content | videoquality | No |
Data | id | Additive (Publishers and Ad Exchange can add Data objects) |
Data | name | Additive (Publishers and Ad Exchange can add Data objects) |
Device | didmd5 | Yes |
Device | flashver | Yes |
Device | h | Yes |
Device | hwv | Yes |
Device | ipv6 | Yes |
Device | js | Yes |
Device | macmd5 | Yes |
Device | macsha1 | Yes |
Device | ppi | Yes |
Device | pxratio | Yes |
Device | w | Yes |
Geo | city | Yes |
Geo | metro | Yes |
Geo | region | Yes |
Geo | regionfips104 | Yes |
Geo | utcoffset | Yes |
Imp | displaymanager | Yes |
Imp | displaymanagerver | Yes |
Imp | instl | Yes |
Imp | tagid | Yes |
Native | api | No |
Native | battr | No |
Native | ver | No |
Producer | cat | Yes |
Producer | domain | No |
Producer | id | Yes |
Producer | name | Yes |
Publisher | cat | Yes |
Segment | name | Additive (publishers and Ad Exchange can add data segments) |
Segment | value | Additive (publishers and Ad Exchange can add data segments) |
Site | keywords | No |
Site | mobile | Yes |
Site | pagecat | Yes |
Site | privacypolicy | No |
Site | search | Yes |
Site | sectioncat | Yes |
User | keywords | No |