DV360 OpenRTB Specification

Display and Video 360 supports the following OpenRTB versions:

Ensure you have the OpenRTB 2.5 Specification Guide 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 imp object is supported.
For other use cases (e.g., multiple independent slots on page) the first imp object is used, the rest are discarded.

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 Not supported.
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 Semi-required for schain.

Bid request extensions object

Field Type Details
schain Supply chain An alternative way to provide schain, new integrations should use the field BidRequest.source.ext.schain in Source Extensions 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 :
0 (default): Undefined - Value not sent in bid requests. Unable to capture value;
1: Purchased - Traffic redirected from properties other than owned (acquired or otherwise incentivized activity).
2: Organic - Direct URL entry, site search or app download.

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 decision
0 (Default): Exchange decides.
1: An upstream source decides.
tid String Not supported.
pchain String Not supported.
ext Source extensions Semi-required for schain.

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 Required in almost all cases.

This field is preferred over providing schain via Bid request extensions.

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 us_privacy string in the bid request and When the IAB string indicates a user has not opted out, Display & Video 360 will place a bid for such requests. We will not propagate the IAB signal further to other vendors. When the IAB string indicates a user has opted out, Google will not place a bid for such requests.

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.
0 (default): embedded
1: native

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):insecure
1: secure
iframebuster String array
exp Integer Regardless of what a partner may send in this field, DV360 bids always expire after 1 hour. Impression events received after one 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 rewarded
1: 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.

Field Type Details
format Format array A list of supported formats.
w Integer

h and w are merged into the format field.

It is recommended to use format instead.
h Integer

h and w are merged into the format field.

It is recommended to use 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:

1: HTML Text ads
2: HTML banner ads
3: Javascript ads
4: IFrame ads

battr Integer array Support following values:

1: Audio auto play
2: Audio user initiated
3: Expandable automatic
4: Expandable click initiated
5: Expandable rollover initiated
6: Video in banner auto play
7: Video in banner user initiated
8: Pop(over/under/on-exit)
9: Provocative or suggestive
10: "Annoying", Eg: Shaky, Flashing, Flickering, Extreme Animation, Smileys
11: Surveys
12: Text only
13: User interactive (games)
14: Windows dialog or alert style
15: Has audio on/off button
16: Ad can be skipped
17: Flash

pos Integer The position of the ad:

0 (default): Unknown
1: Above the fold
2: Not supported: Likely below the fold
3: Below the fold
4: Header
5: Footer
6: Sidebar
7: Fullscreen

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: Left
2: Right
3: Up
4: Down
5: Expandable Fullscreen
api Integer array Supported API Frameworks

1: Left
2: Right
3: Up
4: Down
5: Expandable Fullscreen

id String An identifier for the banner object and should be unique in the impression.

Recommended when banner objects are used with a video object.

vcm Integer

Only relevant for a banner used with a video object.

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.

video/flv or video/x-f4v
video/mp4, video/x-mp4, or application/mp4
video/webm or video/x-webm
video/x-ms-wmv
video/3gpp
video/ogg or application/ogg
application/javascript or application/x-javascript

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.

1: VAST 1.0
2: VAST 2.0
3: VAST 3.0
4: VAST 1.0 Wrapper
5: VAST 2.0 Wrapper
6: VAST 3.0 Wrapper
7: VAST 4.0
8: VAST 4.0 Wrapper
9: DAAST 1.0
10: DAAST 1.0 Wrapper

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.

0 (default): Unknown
1: In stream
2: In banner
3: In article
4: In feed
5: Floating

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

0 (default): Unknown
1: In stream
2: Accompanying Content
3: Interstitial
4: No Content/Standalone

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 and placement, plcmt will have precedence. See the IAB Guide on migrating to plcmt.

Note: 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 Indicates if the impression must be linear, nonlinear, etc.

0 (default): Unknown
1: Linear
2: Not supported: Non-Linear

skip Integer If the video player will allow the ad to be skipped.

0 (default): Not skippable
1: Skippable

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.

0 (default): Extension is not allowed
-1: extension is allowed, and there is no time limit imposed
>0: the number of seconds of extended play supported beyond the maxduration value.

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

0: not allowed
1 (default): Allowed

playbackmethod Integer array Playback methods that may be in use. If none are specified, any method may be used.

0 (default): Unknown
1: Auto play, sound on
2: Auto play, sound off
3: Click to play
4: Mouse over
5: Initiate on entering viewport, sound on
6: Initiate on entering viewport, sound off

Note: All impressions with Default Sound Off (Playback Method of 2, 6, or 0) must signal an out-stream Placement of type 2, 3, 4, or 5 (oRTB 2.5) or Plcmt Subtype of 2, 3, or 4.
playbackend Integer The event that causes playback to end.

1: Video completion or user terminated
2: Leaving viewport or user terminated
3: On leaving viewport, continues as a floating window until complete or user terminated

delivery Integer array Supported delivery methods. If none specified, assume all are supported.

1: Streaming
2: Progressive

pos Integer Ad position on screen.

0 (default): Unknown
1: Above the fold
2: Not supported: Likely below the fold
3: Below the fold
4: Header
5: Footer
6: Sidebar
7: Fullscreen

companionad Banner array Companion ads, if available.
api Integer array

0 (default): Unknown
1: VPAID 1
2: VPAID 2
3: MRAID 1
4: ORMMA
5: MRAID 2
6: MRAID 3
7: OMID 1 - required to enable measurement using OMID for Active View.
8: SIMID 1

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.

0 (default): not rewarded
1: rewarded

Audio object

Field Type Details
mimes String array At least one mime type is required.

audio/m4a, audio/mp4, or audio/x-m4a
audio/mpeg or audio/mp3
audio/ogg or audio/x-ogg

minduration Integer Minimum ad duration in seconds.
maxduration Integer Maximum ad duration in seconds.
protocols Integer array

3: VAST 3.0
6: VAST 3.0 Wrapper
7: VAST 4.0
8: VAST 4.0 Wrapper

startdelay Integer The start delay in seconds for pre-roll, mid-roll, or post-roll ad placements.

-2: Post-roll
-1: Mid-roll
0: Pre-roll
>0: Mid-roll

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.

7: Omid V1

companiontype Integer array Not supported.
maxseq Integer array Not supported.
feed Integer Type of audio feed.

1: Music service
2: Broadcast
3: Podcast

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 supported
1.1: Not supported
1.2
api Integer array List of supported API frameworks for this impression.

7: Omid V1

battr Integer array Not supported.

PMP object

Field Type Details
private_auction Integer 0 (Default): All bids allowed
1: 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 at=3.

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.

1: First price
2: Second price
3: Fixed price

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.

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.

0 (default): Not guaranteed
1: Guaranteed

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 Audio & Video/CTV.
series String Recommended for Audio & Video/CTV.
season String A label for the season of the content.
artist String The artist credited with the content.
genre String Recommended for Audio & Video/CTV, as we will start decisioning on this attribute.

DV360 supports a few taxonomies of video genre values for this field today, and will be updating more supported lists over time as we see demand:

  • Google curated listed of genres (Download)
  • IAB TV/Movie/Sports categories (Download)
  • Nielsen’s Gracenote Video Genre Taxonomy
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:

0 (Default): Unknown
1: Professional
2: Prosumer
3: User generated

videoquality Integer Not supported.
context Integer Type of content:

1: Video
2: Game
3: Music
4: Application
5: Text
6: Other
7: Unknown

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

1: All audiences
2: 12+
3: Mature

keywords String (csv format) Not supported.
livestream Integer If the content is livestream content.

0: Not live
1: Content is live

sourcerelationship Integer

0: Indirect
1: Direct

len Integer The content length in seconds.

Recommended for Audio & Video/CTV.

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)

0: Not embeddable
1: Embeddable

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.

0: Tracking is unrestricted
1: Do not track

lmt Integer The Limit Ad Tracking signal commercially endorsed.

0: Tracking is unrestricted
1: Tracking must be limited per commercial guidelines

ip String Required if IPv4.

If IP address is truncated, it must be declared in the device.ext.truncated_ip.

ipv6 String Required if IPv6.

If IP address is truncated, it must be declared in the device.ext.truncated_ip.

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.

ios: In an App request, this identifies IOS traffic.
android: Identifies an android device if ua or sua do not identify the device.
[anything else]: Used in diagnostics to isolate issues.

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.

0: Not truncated
1: 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.

aaid: Android TV
rida: Roku
afai: Amazon Fire
idfa: Apple tvOS
msai: Xbox/Microsoft
dpid: Generic device platform ID
ppid: Publisher provided ID
sspid: SSP provided ID
sessionid: Short-lived session ID (fcapping only)

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.

0: Not determined
1: Restricted
2: Denied
3: Authorized

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

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

  • Bid request body was empty.
  • Bid request was not in a currency allowlisted for the particular exchange.
  • Bid request did not contain an accepted mime type.
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 for OMSDK) to bid requests. This is mandatory for Active View to enable measurement using OMID.
  • Recommended: Adding omidpn and omidpv to Source.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 and user.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 SSP click tracking macros?
DV360 does support SSP click tracking for display creatives. It needs to be set up on our side to ensure that nothing breaks with our existing click tracking setup so please reach out to request this.
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.