Tech Specs for OpenRTB Demand Partners

Updated 2 months ago by Ibrahim Celebi

a.a. Bid Request Parameters

b.a. Bid Response Parameters

Requests to demand side platforms are sent via JSON using OpenRTB 2.5 protocol. We use nurl to notify a partner about bid win.

a.a. Bid Request Parameters

a.a.a Object: BidRequest

Attribute

Type

Description

id

string; required

Unique ID of the bid request, provided by the exchange.

imp

object array;  required 

Array of Imp objects representing the impressions offered. At least 1 Imp object is required. 

site

object;  recommended 

Details via a Site object about the publisher’s website. Only applicable and recommended for websites. 

app

object; recommended 

Details via an App object about the publisher’s app (i.e., non-browser applications). Only applicable and recommended for apps.

device

object;  recommended 

Details via a Device object about the user’s device to which the impression will be delivered. 

user

object;  recommended 

Details via a User object about the human user of the device; the advertising audience. 

at

integer;  default 2 

Auction type, where 1 = First Price, 2 = Second Price Plus. Exchange-specific auction types can be defined using values greater than 500.  

tmax

integer 

Maximum time in milliseconds the exchange allows for bids to be received including Internet latency to avoid timeout. This value supersedes any a priori guidance from the exchange. 

cur

string array

Array of allowed currencies for bids on this bid request using ISO-4217 alpha codes. Recommended only if the exchange accepts multiple currencies. 

a.a.b Object: Imp

Attribute

Type

Description

id

string; required

A unique identifier for this impression within the context of the bid request (typically, starts with 1 and increments). 

banner

object

A Banner object; required if this impression is offered as a banner ad opportunity. 

video

object 

A Video object; required if this impression is offered as a video ad opportunity.

native

object 

A Native object; required if this impression is offered as a native ad opportunity. 

instl

integer; default 0 

1 = the ad is interstitial or full screen, 0 = not interstitial.

tagid

string

Identifier for specific ad placement or ad tag that was used to initiate the auction. This can be useful for debugging of any issues, or for optimization by the buyer. 

bidfloor

float; default 0 

Minimum bid for this impression expressed in CPM.

secure

integer

Flag 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. 

a.a.c Object: Banner

Attribute

Type

Description

w

integer 

Exact width in device independent pixels (DIPS);  recommended if no format objects are specified. 

h

integer 

Exact height in device independent pixels (DIPS);  recommended if no format objects are specified. 

battr

integer array

Blocked creative attributes. 

a.a.d Object: Video

Attribute

Type

Description

mimes 

string array; required 

Content MIME types supported (e.g., “video/x-ms-wmv”, “video/mp4”).

minduration

integer; recommended

Minimum video ad duration in seconds.

maxduration

integer; recommended 

Maximum video ad duration in seconds.

protocols 

integer array; recommended 

Array of supported video protocols. At least one supported protocol must be specified in either the protocol or protocols attribute. 

w

integer; recommended

Width of the video player in device independent pixels (DIPS).

h

integer; recommended

Height of the video player in device independent pixels (DIPS).

a.a.f Object: Native

Attribute

Type

Description

request 

string; required

Request payload complying with the Native Ad Specification.

ver

string; recommended

Version of the Dynamic Native Ads API to which request complies; highly recommended for efficient parsing.

battr 

integer array 

Blocked creative attributes.

a.a.g Object: Site

Attribute

Type

Description

id

string;  recommended 

Exchange-specific site ID. 

name

string

Site name (may be aliased at the publisher’s request).

domain

string

Domain of the site (e.g., “example.com”).

cat

string array 

Array of IAB content categories of the site. 

pagecat

string array 

Array of IAB content categories that describe the current page or view of the site.  

page

string

URL of the page where the impression will be shown.

publisher

object 

Details about the Publisher of the site.

a.a.h Object: App

Attribute

Type

Description

id

string; recommended 

Exchange-specific app ID. 

name

string

App name (may be aliased at the publisher’s request). 

bundle

string

A platform-specific application identifier intended to be unique to the app and independent of the exchange. On Android, this should be a bundle or package name. On iOS, it is typically a numeric ID. 

storeurl

string   

App store URL for an installed app; for IQG 2.1 compliance.

a.a.j Object: Publisher

Attribute

Type

Description

id

string

Exchange-specific publisher ID.

a.a.k Object: Device

Attribute

Type

Description

ua

string;  recommended 

Browser user agent string.

geo

object;  recommended 

Location of the device assumed to be the user’s current location defined by a Geo object. 

dnt

integer; recommended 

Standard “Do Not Track” flag as set in the header by the browser, where 0 = tracking is unrestricted, 1 = do not track. 

ip

string; recommended 

IPv4 address closest to device.

devicetype

integer

The general type of device. 

make

string

Device make (e.g., “Samsung”).

model

string

Device model (e.g., “Galaxy”).

os

string

Device operating system (e.g., “Android”). 

osv

string

Device operating system version (e.g., “3.1.2”).

js

integer 

Support for JavaScript, where 0 = no, 1 = yes.

language

string

Browser language using ISO-639-1-alpha-2.

carrier

string

Carrier or ISP (e.g., “Vodafone”) using exchange curated string  names which should be published to bidders a priori. 

connectiontype

integer

Network connection type. 

a.a.l Object: GEO

Attribute

Type

Description

type

integer 

Source of location data; recommended when passing lat/lon. Refer to List 5.20. 

country

string

Country code using ISO-3166-1-alpha-3. 

region

string

Region code using ISO-3166-2; 2-letter state code if USA. 

metro

string 

Google metro code; similar to but not exactly Nielsen DMAs.

city

string

City using United Nations Code for Trade & Transport  Locations.

zip

string

Zip or postal code.

a.a.m Object: User

Attribute

Type

Description

id

string;  recommended 

Exchange-specific ID for the user. At least one of id or buyeruid is recommended. 

b.a. Bid Response Parameters

b.a.a Object: BidResponse

Attribute

Type

Description

id

string; required

ID of the bid request to which this is a response. 

bidid

string

Bidder generated response ID to assist with logging/tracking.

seatbid

object array

Array of seatbid objects; 1+ required if a bid is to be made.

cur

string; default “USD” 

Bid currency using ISO-4217 alpha codes. 

b.a.b Object: SeatBid

Attribute

Type

Description

bid

object array; required 

Array of 1+ Bid objects each related to an impression. Multiple bids can relate to the same impression. 

seat

string

ID of the buyer seat (e.g., advertiser, agency) on whose behalf  this bid is made. 

b.a.c Object: Bid

Attribute

Type

Description

id

string; required

Bidder generated bid ID to assist with logging/tracking.

adid

string

ID of a preloaded ad to be served if the bid wins.

nurl

string

Win notice URL called by the exchange if the bid wins (not  necessarily indicative of a delivered, viewed, or billable ad);  optional means of serving ad markup. Substitution macros  may be included in both the URL and optionally  returned markup. 

price

float; required

Bid price expressed as CPM although the actual transaction is  for a unit impression only. Note that while the type indicates  float, integer math is highly recommended when handling  currencies (e.g., BigDecimal in Java). 

impid

string; required 

ID of the Imp object in the related bid request.

crid

string; required

Creative ID to assist with ad quality checking. 

cid

string

Campaign ID to assist with ad quality checking; the collection  of creatives for which iurl should be representative. 

adomain

string array

Advertiser domain for block list checking. This can be an array of for the case of rotating creatives. Exchanges can mandate that only one domain is allowed. 

adm

string

Optional means of conveying ad markup in case the bid wins; supersedes the win notice if markup is included in both.  Substitution macros may be included. 

iurl

string

URL without cache-busting to an image that is representative of the content of the campaign for ad quality/safety checking. 

cat

string array

IAB content categories of the creative.

ext

object

Placeholder for bidder-specific extensions to OpenRTB.

DSPs can only count the impressions by NURL


How did we do?