Ensure you have the OpenRTB 2.6 Specification available while consulting this page.
Display and Video 360 does not support every field in the OpenRTB specification, and nuances can apply. Sections of this document contain information and recommendations specific to the Display and Video 360 implementation. You should also follow the guidelines presented in the OpenRTB specification unless instructed otherwise.
Some fields are not supported, but are still parsed. These fields must be formatted correctly but will not affect the bidding outcome.
Bid request specification
A bid request is an HTTP Post request with a content type of application/json
and a body of a bid request object.
The corresponding response is either an HTTP 204 with no body for a no-bid, or an HTTP 200 with a json body of a bid response.
If a bid request is malformed, an HTTP 200 with a json body of a
bid response with the nbr
field populated may
be returned.
Bid request object
Field | Type | Details |
---|---|---|
id |
String | Required. Unique ID of the bid request. This can be used to identify individual requests for a very limited time after they are served. |
imp |
Imp array | At least 1 imp object is required.
For audio pods, more than one |
site |
Site | Required for website requests.site and app are mutally exclusive. |
app |
App | Required for app requests.app and site are mutally exclusive. |
device |
Device | Required. |
user |
User | Required. |
test |
Integer | Not supported. |
at |
Integer |
1 : First price auction where the advertiser is charged their
bid amount.2 (default): Second price auction where the advertiser is
charged just above the second highest bidder.3 : The floor price is in the request, and has nothing to do
with competing bids.
|
tmax |
Integer | Optional, default is custom per integration. |
wseat |
String array | List of allowed buyer seats. Recommended unless all advertisers are allowed to bid. Unset implies no restrictions. |
bseat |
String array | List of buyer seats whose bids should be blocked. Listed buyers will be blocked from bidding on deals and open-auction. |
allimps |
Integer | Not supported. |
cur |
String array | Optional, but highly recommended. Default is per integration. Currency in the bid request must match one of the currencies registered during integration. It is highly recommended to support single currency per exchange. |
wlang |
String array | Not supported. |
bcat |
String array | Blocked advertiser categories using the IAB content categories. Unset is no blocked categories. |
badv |
String array | Specify the blocked advertiser based on the domain provided by the
advertiser. Unset is no blocked advertisers. |
bapp |
String array | Not supported. |
source |
Source | Semi-required for schain . |
regs |
Regs | Optional. |
ext |
Bid request extensions | Optional. |
Bid request extensions object
Field | Type | Details |
---|---|---|
schain |
Supply chain |
new integrations should
use the field BidRequest.source.schain in
Source instead.
|
purch |
Integer |
The Purchased Traffic parameter is the traffic that is redirected from
properties other than owned, acquired, or otherwise incentivized
activity. This is per the new MRC IVT 2.0 Spec.
This will be called Publisher Traffic Source in buyer facing
reporting and will have one of the following values : |
gdemsignals |
String | A SCAR API signal blob from the GMA SDK. Recommended if GMA SDK traffic, forbidden otherwise. |
disable_gma_format |
int |
Optional if gdemsignals is provided, forbidden otherwise.0 (default): When gdemsignals is populated the
bid response adm is a json blob.1 : An ad tag will also be provided instead of the json
blob. |
Source object
Field | Type | Details |
---|---|---|
fd |
Integer | Entity responsible for the final impression sale decision0 (Default): Exchange decides.1 : An upstream source decides.
|
tid |
String | Not supported. |
pchain |
String | Not supported. |
schain |
Supply chain |
Required in almost all cases.
This field is preferred over providing |
ext |
Source extensions | Optional. |
Source extensions object
This extension is highly recommended since it impacts how viewability measurements are reported in DV3 to the customer. If the OMID partner name is NOT on the IAB certification list, we are required by MRC to report the viewability metrics separately from the MRC certified metrics. Learn more.
Field | Type | Details |
---|---|---|
omidpn |
String | Identifier of the OM SDK integration. This is the same as the "name" parameter of the OMID Partner object. |
omidpv |
String | Version of the OM SDK integration. This is the same as the "versionString" parameter of the OMID Partner object. |
schain |
Supply chain |
new integrations should use the field
schain in
Source instead.
|
Regs object
Field | Type | Details | |
---|---|---|---|
coppa |
Integer | 0 (default): COPPA is not applicable to this request.1 : This request is COPPA applicable. |
|
ext |
Regs extensions | Optional. |
Regs extensions object
Field | Type | Details |
---|---|---|
gdpr |
Integer | Indicate whether the bid request is from EEA region.0 (default): Non-EEA region.1 : EEA region,See Consented Provider Solution for GDPR for more detail. |
us_privacy |
String | Please follow the technical
specification provided by the IAB Tech Lab to implement the
us_privacy string.
When we receive the |
Imp object
Field | Type | Details |
---|---|---|
id |
String | A unique identifier for this impression within the context of the bid request (typically, value starts with 1, and increments up to n for n impressions). |
metric |
Object | Not supported. |
banner |
Banner | Required for banner ad opportunities. |
video |
Video | Required for video ad opportunities. |
audio |
Audio | Required for audio ad opportunities. |
native |
Native | Required for native ad opportunities. |
pmp |
Pmp | Private marketplace deals in effect for this impression. |
displaymanager |
String | Name of ad mediation partner, SDK technology, or player responsible for rendering ad (typically video or mobile). Used by some ad servers to customize ad code by partner. Recommended for video and/or apps. |
displaymanagerver |
String | Version of ad mediation partner, SDK technology, or player responsible for rendering ad (typically video or mobile). Used by some ad servers to customize ad code by partner. Recommended for video and/or apps. |
instl |
Integer |
0 (default): not interstitial.1 : the ad is interstitial or full screen.
|
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 | Minimum bid for this impression expressed in CPM. |
bidfloorcur |
String |
Currency specified using ISO-4217 alpha codes. |
clickbrowser |
Integer |
Indicates the type of browser opened upon clicking the creative in an app. Note that the Safari View Controller in iOS 9.x devices is considered a native browser for purposes of this field. |
secure |
Integer |
If this impression requires a secure HTTPS URL, or an insecure HTTP URL.0 (default):insecure1 : secure
|
iframebuster |
String array | |
exp |
Integer | Bid expiration is set by DV 360 without regard to the value sent by a partner in this field. Impression events received after the impression staleness window (generally 1 hour) are discarded as stale and are not considered billable by DV360. |
rwdd |
Integer |
Indicates whether the user receives a reward for viewing the ad.0 (default): Not rewarded1 : Rewarded
Typically, video ad implementations let users read an additional news article for free, receive an extra life in a game, or get a sponsored ad-free music session. The reward is typically distributed after the video ad is completed. |
Imp extension object
Field | Type | Details |
---|---|---|
bcrid |
String | List of creative ids that should be blocked. |
Banner object
Field | Type | Details |
---|---|---|
format |
Format array | A list of supported formats. |
w |
Integer |
format instead.
|
h |
Integer |
format instead.
|
wmax |
Integer | Not supported. |
hmax |
Integer | Not supported. |
wmin |
Integer | Not supported. |
hmin |
Integer | Not supported. |
btype |
Integer array |
A list of blocklisted Banner ad types:
|
battr |
Integer array | Support following values:
|
pos |
Integer |
The position of the ad:
|
mimes |
String array |
Not supported.
DV360 will use text/html for all banner creatives. |
topframe |
Integer |
0 (default): The banner is delivered in an iframe.1 : Not supported: The banner is delivered in the top frame.
|
expdir |
Integer array |
1 : Left2 : Right3 : Up4 : Down5 : Expandable Fullscreen
|
api |
Integer array |
Supported API Frameworks
|
id |
String |
An identifier for the banner object and should be unique in the impression.
Recommended when |
vcm |
Integer |
Only relevant for a 0 : The banner is concurrently visible with the video creative.1 : The banner is an end card after the video.
|
Format object
Field | Type | Details |
---|---|---|
w |
Integer | Width in device independent pixels (DIPS). |
h |
Integer | Height in device independent pixels (DIPS). |
wratio |
Integer | Not supported. |
hratio |
Integer | Not supported. |
wmin |
Integer | Not supported. |
Video object
We strongly recommend specifying video placement in the bid request. A missing placement field is classified as an unknown placement. See the article on position targeting for more detail.
Field | Type | Details |
---|---|---|
mimes |
String array |
At least one mime type is required.
|
minduration |
Integer | The minimum duration of the video in seconds, default is no minimum. |
maxduration |
Integer | The maximum duration of a video in seconds, default is no maximum. |
protocols |
Integer array |
At least one supported protocol is required.
|
w |
Integer | Width of the video player in device independent pixels (DIPS). |
h |
Integer | Height of the video player in device independent pixels (DIPS). |
startdelay |
Integer | Start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. |
placement |
Integer | Strongly recommended to specify plcmt (and/or) placement of video in the bid request.
Missing both fields will be classified as an unknown placement.
|
plcmt |
Integer | Strongly recommended to specify plcmt (and/or) placement of video in the bid request.
Missing both fields will be classified as an unknown placement.
Note: To be considered In-Stream (Placement or Plcmt Type 1), video placements/impressions must be set to “sound on” and be correctly signaled in Playback Method (Values of 1, 3, 4, and 5 all qualify).
Note: If providing both plcmt: Accompanying Content (2) is considered placement: In Article (3) plcmt: No Content/Standalone (4) is considered placement: In feed (4) placement: In Banner has no mapping in plcmt
|
linearity |
Integer | Not supported. |
skip |
Integer |
If the video player will allow the ad to be skipped.
|
skipmin |
Integer | Not supported. |
skipafter |
Integer | Not supported. |
sequence |
Integer | If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives. |
battr |
Integer array | Blocked creative attributes. |
maxextended |
Integer |
Maximum extended video ad duration, if extension is allowed.
|
minbitrate |
Integer | Minimum bit rate in Kbps. |
maxbitrate |
Integer | Maximum bit rate in Kbps. |
boxingallowed |
Integer |
Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed
|
playbackmethod |
Integer array |
Playback methods that may be in use. If none are specified, any method may be used.
|
playbackend |
Integer |
The event that causes playback to end.
|
delivery |
Integer array | Supported delivery methods. If none specified, assume all are supported.
|
pos |
Integer |
Ad position on screen.
|
companionad |
Banner array | Companion ads, if available. |
api |
Integer array |
|
companiontype |
Integer array | Not supported. |
maxseq |
Integer | The maximum number of ads to be returned in a dynamic video pod. |
poddur |
Integer array | The maximum length of a dynamic video pod in seconds. |
Supported extension for video object
Field | Type | Details |
---|---|---|
rewarded |
Integer | This field is to signal if the requests are rewarded or not. This should
be sent as an integer.
|
Audio object
Field | Type | Details |
---|---|---|
mimes |
String array |
At least one mime type is required.
|
minduration |
Integer | Minimum ad duration in seconds. |
maxduration |
Integer | Maximum ad duration in seconds. |
protocols |
Integer array |
|
startdelay |
Integer | The start delay in seconds for pre-roll, mid-roll, or post-roll ad placements.
|
sequence |
Integer | Not supported. |
battr |
Integer array | Not supported. |
maxextended |
Integer | Not supported. |
minbitrate |
Integer | The minimum bit rate in Kbps. |
maxbitrate |
Integer | The maximum bit rate in Kbps. |
delivery |
Integer array | Not supported. |
companionad |
Banner object array | Any banner companion creative slots. |
api |
Integer array |
List of supported API frameworks for this impression.
|
companiontype |
Integer array | Not supported. |
maxseq |
Integer array | Not supported. |
feed |
Integer |
Type of audio feed.
|
stitched |
Integer | Not supported. |
nvol |
Integer | Not supported. |
Native object
See the DV360 native ads specifications for more detail.
Field | Type | Details |
---|---|---|
request |
String | The string encoded native json object. |
ver |
String |
1.0 : Not supported1.1 : Not supported1.2
|
api |
Integer array |
List of supported API frameworks for this impression.
|
battr |
Integer array | Not supported. |
PMP object
Field | Type | Details |
---|---|---|
private_auction |
Integer |
0 (Default): All bids allowed1 : Deals only
|
deals |
Deal object array | The deals to include. |
Deal object
Field | Type | Details |
---|---|---|
id |
String | PMP object cannot contain more than one deal object per ID. |
bidfloor |
Double |
Minimum bid for this impression in CPM.
Required if |
bidfloorcur |
String |
Currency specified using ISO-4217 alpha codes.
Defaults to the bid request currency if unspecified. |
at |
Integer |
Default matches bid_request.at if unspecified.
|
wseat |
String array |
The partner IDs of the partners elligable for the deal.
No seats implies no seat restrictions. |
wadomain |
String array |
The advertiser domains allowed to bid on this deal.
No seats implies no domain restrictions. |
guar |
Integer |
This field is to signal if the deal is a guaranteed deal. This should be sent as an integer.
An exchange must be allowlisted for DV360 to accept guaranteed deals; reach out to request this. If your exchange currently uses a different mechanism to signal guaranteed deals with DV360, reach out to discuss moving to this preferred extension.
|
ext |
Deal extensions | Optional. |
Supported extension for deal object
Field | Type | Details |
---|---|---|
guaranteed |
Integer |
This field is to signal if the deal is a guaranteed deal. This should be sent as an integer.
An exchange must be allowlisted for DV360 to accept guaranteed deals; reach out to request this. If your exchange currently uses a different mechanism to signal guaranteed deals with DV360, reach out to discuss moving to this preferred extension.
It is recommended to use |
Site object
Field | Type | Details |
---|---|---|
id |
String | The ID of the site on the exchange. |
name |
String | Not supported. |
domain |
String |
The domain of the site.
It is recommended to send a full URL in site.page rather than only populating site.domain. |
cat |
String array | Not supported. |
sectioncat |
String array | Not supported. |
pagecat |
String array | Not supported. |
page |
String |
The full URL where the impression is to be shown.
It is recommended to send the full URL for targeting purposes. |
ref |
String | The referrer URL that caused navigation to the current page. |
search |
String | Not supported. |
mobile |
Integer | Not supported. |
privacypolicy |
Integer | Not supported. |
publisher |
Publisher object | Details about the publisher of the site. |
content |
Content object | Details about the content within a site. |
keywords |
String (CSV format) | Not supported. |
ext |
Site extensions | Extensions for the site object. |
Site extension object
Field | Type | Details |
---|---|---|
inventorypartnerdomain |
String | Used for CTV inventory sharing, see the IAB CTV app adds explainer. |
App object
Field | Type | Details |
---|---|---|
id |
String | Application ID on the exchange. |
name |
String |
Applications names, which may be aliased on publishers request.
App names for SDK-less requests (mostly connected TVs) can be provided by the publisher directly in the request. |
bundle |
String |
Required.
For iOS, it is required to be the numeric app store ID. We do not accept the reverse DNS style bundle ID. For CTV app, we recommend passing the store-defined app identifier. Please adhere to the recently published IAB OTT/CTV Store Assigned ID guidelines. |
domain |
String | The domain, for example mygame.foo.com |
storeurl |
String | Required for app-ads.txt verification and Connected TV app store validation. |
cat |
String array | Not supported. |
sectioncat |
String array | Not supported. |
pagecat |
String array | Not supported. |
ver |
String | Not supported. |
privacypolicy |
Integer | Not supported. |
paid |
Integer | Not supported. |
publisher |
Publisher object | Information on the app publisher. |
content |
Content object | Information on the app content. |
keywords |
String (csv format) | Not supported. |
ext |
App extensions | Extensions for the app object. |
App extension object
Field | Type | Details |
---|---|---|
inventorypartnerdomain |
String | Used for CTV inventory sharing, see the IAB CTV app adds explainer. |
Content object
We recommend passing these attributes where available.
Field | Type | Details |
---|---|---|
id |
String | An ID uniquely identifying the content. |
episode |
Integer | Content episode number (normally for video content). |
title |
String | Recommended for CTV, video and audio requests. |
series |
String | Recommended for CTV, video and audio requests. |
season |
String | A label for the season of the content. |
artist |
String | The artist credited with the content. |
genre |
String | Genre that best describes the content. DV360 recommends providing this signal for CTV, video and audio requests.
DV360 supports a few taxonomies of video genre values for this field: |
album |
String | The album to which the content belongs, typically for audio. |
isrc |
String | International Standard Recording Code conforming to ISO-3901. |
producer |
Producer object | Details about the contents producer. |
url |
String | URL of the content. |
cat |
String array | IAB content categories that describe the content. |
prodq |
Integer |
Production quality:
|
videoquality |
Integer | Not supported. |
context |
Integer |
Type of content:
|
contentrating |
String | Recommended for Audio & Video/CTV, as we will start decisioning on this attribute. |
userrating |
String | Number of stars, likes, etc... |
qagmediarating |
Integer |
Media rating per [QAG guidelines](http://www.iab.net/ne_guidelines).
|
keywords |
String (csv format) | Not supported. |
livestream |
Integer |
If the content is livestream content.
|
sourcerelationship |
Integer |
|
len |
Integer |
The content length in seconds.
Recommended for CTV/video and audio requests. |
language |
String (ISO-639-1-alpha-2) | The language of the content. |
embeddable |
Integer |
Indicator of whether or not the content is embeddable (e.g., an embeddable video player)
|
data |
Array of Data objects | Additional data. |
Producer object
Field | Type | Details |
---|---|---|
id |
String | Not supported. |
name |
String | Not supported. |
cat |
String array | Not supported. |
domain |
String | Highest level domain of the producer. |
Data object
Field | Type | Details |
---|---|---|
id |
String | An ID of the data provider. |
name |
String | Exchange name for the data provider. |
segment |
Array of Segment objects | The actual data values. |
Segment object
Field | Type | Details |
---|---|---|
id |
String | An ID of the data segment specific to the data provider. |
name |
String | Name of the data segment. |
value |
String | Value of the data segment. |
Publisher object
Field | Type | Details |
---|---|---|
id |
String | Required. |
name |
String | Not supported. |
cat |
String array | Not supported. |
domain |
String | Not supported. |
Device object
Field | Type | Details |
---|---|---|
ua |
String | Required. |
sua |
UserAgent object | Structured user agent information. |
geo |
Geo object | The location of the device. |
dnt |
Integer |
The Do Not Track flag as set in the header of the browser.
|
lmt |
Integer |
The Limit Ad Tracking signal commercially endorsed.
|
ip |
String |
Required if IPv4.
If IP address is truncated, it must be declared in the |
ipv6 |
String |
Required if IPv6.
If IP address is truncated, it must be declared in the |
devicetype |
Integer | Highly recommended for all inventory types. Used to enhance device type recognition. |
make |
String | |
model |
String | |
os |
String |
The operating system of the device.
This field is case insensitive. |
osv |
String | Not supported. |
hwv |
String | The hardware version of the device. |
h |
Integer | Physical height of the screen in pixels. |
w |
Integer | Physical width of the screen in pixels. |
ppi |
Integer | Not supported. |
pxratio |
Double | The ratio of physical pixels to device independent pixels. |
js |
Integer | Not supported. |
geofetch |
Integer | Not supported. |
flashver |
String | Not supported. |
language |
String (ISO-639-1-alpha-2) | The device language. |
carrier |
String | Not supported. |
mccmnc |
String | Not supported. |
connectiontype |
Integer | Network connection type |
ifa |
String | ID sanctioned for the advertiser to use in the clear. |
didsha1 |
String | Not supported. |
didmd5 |
String | Not supported. |
dpidsha1 |
String | Not supported. |
dpidmd5 |
String | Not supported. |
macsha1 |
String | Not supported. |
macmd5 |
String | Not supported. |
ext |
Device extensions | Extensions for the device object. |
Supported extension for device object
If ip
is changed or truncated, we strongly recommend sending the following
extensions to prevent traffic being declared as invalid traffic.
Field | Type | Details |
---|---|---|
truncated_ip |
Integer |
Indicate whether the IP address in the device.ip field of
the bid request is truncated.
Default is not truncated, and required if the IP address is truncated. If not declared the bid request might be classified as invalid traffic. |
ifa_type |
String |
Indicate the origin of the device.ifa field, whether it was provided from
the device itself or generated by publisher or SSP in the supply chain.
|
attestation_token |
String (base64 encoding) | A device-based attestation token for exchanges that support that level of device validation. |
atts |
Integer |
(iOS Only) An integer passed to represent the app's app tracking authorization status.
|
cdep |
String |
Chrome third party cookies deprecation label.
See Chrome-facilitated testing and the IAB Community Specification |
UserAgent object
Field | Type | Details |
---|---|---|
browsers |
Array of BrandVersion objects | Each BrandVersion object identifies a browser or similar software component. |
platform |
BrandVersion object | Identifies the platform. |
mobile |
Integer |
0 (default): The agent prefers the "desktop" or "full"
content.
1 : The agent prefers "mobile" content.
|
architecture |
String | Device architecture, for example, "x86" or "arm". |
bitness |
String | Device's bitness, for example, "64" for 64-bit architecture. |
model |
String | Device model. |
source |
Integer | The source of data used to create this object, see List: User-Agent Source. Recommended when passing UserAgent object. |
BrandVersion object
Field | Type | Details |
---|---|---|
brand |
String | Brand identifier, for example, "Chrome" or "Windows". Required. |
version |
String array | A sequence of version components, in descending hierarchical order (major, minor, micro, and so on). |
Geo object
Field | Type | Details |
---|---|---|
lat |
Double | Not supported. |
lon |
Double | Not supported. |
type |
Integer | Not supported. |
accuracy |
Integer | Not supported. |
lastfix |
Integer | Not supported. |
ipservice |
Integer | Not supported. |
country |
String | Not supported. |
region |
String | Not supported. |
regionfips104 |
String | Not supported. |
metro |
String | Not supported. |
city |
String | Not supported. |
zip |
String | Not supported. |
utcoffset |
Integer | Not supported. |
User object
Field | Type | Details |
---|---|---|
id |
String | Supported if Google hosts the ID match table. |
buyeruid |
String | Supported if the SSP host the ID match table. |
yob |
Integer | Recommended for demographics targeting. |
gender |
String | Recommended for demographics targeting. |
keywords |
String (CSV) | Not supported. |
customdata |
String | Not supported. |
geo |
Geo object | Not supported. |
data |
Array of Data objects | Not supported. |
eids |
Array of Extended ID objects | Extended ID instances provided by the exchange. |
ext |
User extensions | Extensions for the user object. |
Supported extensions for user object
Field | Type | Details |
---|---|---|
consent |
String (web-safe base64) |
IAB consent string.
Contains metadata about what information the user has consented to being collected, and which vendors are allowed to use that information. The value is a web-safe base64 encoded binary string using a custom binary format. |
us_privacy |
String | If the user has seen compliance for CCPA or similar laws. |
consented_providers_settings .consented_providers |
Outer object (consented_providers_settings) wrapping an inner Integer array (consented_providers). | Pass the vendors with consent for GDPR request. See Consented Provider Solution for GDPR for more detail. |
eids |
Array of Extended ID objects | Extended ID instances provided by the exchange. |
Extended ID object
Field | Type | Details |
---|---|---|
source |
String | The provider of the identifier |
uids |
Array of Extended ID UID objects | The actual identifiers |
Extended ID UID object
Field | Type | Details |
---|---|---|
id |
String | The identifier itself. |
atype |
Integer | The type of user agent associated with this ID. |
Supply chain object
Field | Type | Details |
---|---|---|
complete |
Integer | 0 (default): The supply chain is incomplete.1 : The supply chain is complete back to the publisher.
|
ver |
String | Required. The value is formatted "major.minor", for instance, version 1.0 is the string "1.0". |
nodes |
Supply chain node array | Required. In a complete supply chain, the first node represents the initial advertising system and seller ID involved in the transaction, i.e., 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. |
Supply chain node object
Field | Type | Details |
---|---|---|
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. |
sid |
String | The identifier associated with the seller or reseller account within
the advertising system. This must contain the same value used in
transactions (i.e. 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. |
rid |
String | The OpenRTB RequestId of the request as issued by this seller. |
name |
String | The name of the company (the legal entity) that is paid for inventory
transacted under the given seller_id. This value is optional and should NOT be included if it exists in the advertising system's sellers.json file. |
domain |
String | The business domain name of the entity represented by this node.
This value is optional and should NOT be included if it exists in the advertising system’s sellers.json file. |
hp |
Integer | Indicates whether this node will be 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 will introduce 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. |
Bid response specification
BidResponse object
Attribute | Supported | Implementation details | Always passed |
---|---|---|---|
id | If a parse error occurs, this may be '0' instead of the bid request ID. | Yes | |
seatbid | |||
bidid | |||
cur | If a parse error occurs, this is not passed. For valid bid request traffic cur is always provided. | Yes | |
customdata | |||
nbr |
This is included only if an issue was found with the bid request, and will
always be 2 , Invalid Request, per the OpenRTB
specification.Requests that include NBR will look similar to this: { "id": "0", "nbr": 2, "ext": { "err": "Bid request body was empty.", "errHelp": "https://.../ortb-spec" } } |
||
ext | If there is a problem with the bid request ext may contain information to help diagnose the error, where supported. |
Supported extensions for BidResponse object
Attribute | Implementation details |
---|---|
err | A human readable description of the error with the bid request. Response cases include:
|
errHelp | A link to this page. |
Seatbid object
Attribute | Supported | Implementation details | Always passed |
---|---|---|---|
bid | yes | ||
seat | yes | ||
group |
Bid object
Attribute | Supported | Implementation details | Always passed |
---|---|---|---|
id | yes | ||
impid | yes | ||
price | yes | ||
nurl | |||
burl | |||
lurl | |||
adm | |||
adid | |||
adomain | |||
bundle | |||
iurl | |||
cid | yes | ||
crid | yes | ||
tactic | |||
cat | |||
attr | |||
api | |||
protocol | |||
qagmediarating | |||
language | |||
dealid | |||
w | |||
h | |||
wratio | |||
hratio | |||
exp |
Supported extensions for bid object
Attribute | Implementation details |
---|---|
apis |
DV360 will send seatbid.bid.apis if both OMID and MRAID are
supported. DV360 will set both OMID_1 and MRAID as an integer array. |
Ad serve options
In section 4.3 of the OpenRTB specification, there are two different serving options:
- Markup served on the win notice
- Markup served in the bid
DV360 supports both options.
- For Banner ad, DV360 always returns markup in the
adm
field. Markup served on win notice is optional. - For Video/Audio ad using VAST protocol, DV360 supports returning VAST XML in
the
adm
field or in the response of win notice based on requirements from exchange partners.
Refer to the OpenRTB specification to know the pros and cons of these two options.
Best practices
It is highly recommended to use the Partner ID of Display and Video 360 as the seat ID. The use of exchange-specific seat ID is not recommended.
Ensure your publishers have ads.txt files, or applications with app-ads.txt files associated, and they list you in the file as an authorized seller or reseller. Learn more.
Also ensure consistent information is passed in bid requests. For example, the
app.bundle
must be consistent with the mobile device information and
app.storeurl
.
Connected TV
Adhere to the IAB OTT IFA
guidelines
in passing device.ifa
and device.lmt
. You should also implement
device.ext.ifa_type
to be compliant with the guidelines. All of our CTV
frequency capping and audience targeting capabilities will require the presence
of an IFA.
Also adhere to the recently published IAB OTT/CTV Store Assigned ID
guidelines—this
defines how app.bundle
should be passed for CTV apps—largely using the
app store defined ID.
Active View measurement
Active View is a Google technology used to measure if an impression was viewable and for how long. Active View uses OMID for both display and video ads. To enable measurement using OMID, exchanges must add the following fields in OpenRTB requests so that DV360 knows the client's support of OMID.
- Required: Add an API Framework (
Video.api=7
forOMSDK
) to bid requests. This is mandatory for Active View to enable measurement using OMID. - Recommended: Adding
omidpn
andomidpv
toSource.Ext
is highly recommended because it will impact how viewability measurements are reported in DV360 to the customer. If the OMID partner name is not on the IAB certification list, we are required by MRC to report the viewability metrics separately from the MRC certified metrics. Learn more.
FAQ
- Does DV360 Support exchange custom extensions?
- Yes, in addition to the extensions listed in this specification, Display and Video 360 may also support custom extensions on a case-by-case basis. It is recommended to specify and test the custom extension during the integration period.
- Does DV360 support rewarded video?
- Yes, send us the rewarded video extension.
- A lot of my inventory is showing up as demographics unknown, how do I improve demographic coverage?
- Populate
user.yob
anduser.gender
in bid requests to DV360 to increase coverage. - Does DV360 have endpoints for each region?
- No, we use a single endpoint globally and we automatically route requests to the nearest data center, so there's no region-specific endpoint we can provide.
- What are the requirements for server-to-server (s2s) requests?
- Reach out to request addition to our allowlist. The client User Agent has to be forwarded, and ensure that cookies are disabled/ignored in the response to an s2s VAST fetch.
- Does DV360 support OMID?
- We are able to measure viewability using OMID as long as it is declared as OMID-enabled at bid request time. Details about this are summarized on pages 24-25.
- Which version of Native do you support? Do you have any Native requirements?
- We only support Native Ver1.2. Native specification.
- Does DV360 support bid requests sent as GZIP?
- DV360 can receive gzip compressed bid requests, and will respond with gzip compressed responses if Accept-Encoding header indicates it's supported.
- Does DV360 support DBURL?
- Not at the moment.
- Does DV360 support win loss notification?
- Not at the moment. If you think it would be useful for us to support it please reach out with more details.
- Does DV360 require App.name for targeting?
- No, DV360 using App.name for reference but it is not required for targeting,
App.bundle
is used for targeting. - Can DV360 support multiple ad sizes sent in a single bid request?
- Yes, we will consider all eligible creative sizes in banner.format.
- Does DV360 support multiple formats in the same bid request?
- We have limited support for multi-format bid requests, but are working on improving. We support display & video formats for interstitials, but do not currently support display & native. If you are sending multi-format bid requests, please reach out to request a test.
- Does DV360 support mixed impression types in the same request?
- Currently we only support video/banner interstitials. We are working on native/banner & video/banner. If there are other combinations please reach out to our team.
- Can multiple seats each send multiple bids on one or more of such impression opportunities in the same request?
- Yes.
- Does DV360 have a solution or particular need regarding capping or displaying the same advertiser for multiple such impression opportunities in the same request?
- DV360 places enforcement that one advertiser can only bid up to one imp opportunities for each request. We expect SSPs to group imp objects meaningfully; e.g., all on the same page, all in the same app, etc.
- Does DV360 support multiple impressions in the same bid request?
- DV360 currently supports multiple impression audio objects. However, we will need to test/enable each
exchange that would like to use this feature. See bid request specification for more information. We are working on expanding this to other formats:
{ id: "2bbdc94f-7289-4fe2-9a5f-e2a530e06b38", seatbid { bid { id: "0", impid: "234232", price: 41.373926619828261, adid: "123", adm: "...", adomain: "xxx.com", cid: "0", crid: "123", dealid: "sample-deal-id-1", language: "xx", }, bid { id: "1", impid: "234255", price: 2.34192037470726, adid: "234", adm: "...", adomain: "xyz.com", cid: "0", crid: "234", dealid: "sample-deal-id-2", language: "xx", }, seat: "123456" }, cur: "EUR" }
Contact us
If you have any questions or issues, reach out to our exchange support team.