DV360 OpenRTB Specification

  • Display & Video 360 (DV360) implements the OpenRTB 2.6 specification with specific nuances and requires bid requests to comply with its unique OpenRTB specification.

  • Bid requests are HTTP POST requests containing a bid request object, with responses being either HTTP 200 for a successful bid or HTTP 204 for a no-bid.

  • The DV360 OpenRTB specification details numerous objects like Bid Request, Imp, Banner, Video, Audio, Native, PMP, Site, App, Device, User, and Supply Chain, specifying supported and unsupported fields for each.

  • Best practices include using the DV360 Partner ID as the seat ID, having publishers list you in ads.txt/app-ads.txt, and providing consistent app information.

  • DV360 supports both markup on win notice and markup in the bid for serving options and encourages using OMID for Active View measurement by including specific fields and extensions.

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 won't affect the bidding outcome.

Bid request specification

A bid request is an HTTP Post request with a body of a bid request object . The format of the body is defined in the Content-Type header.

The corresponding response is either an HTTP 204 with no body for a no-bid, or an HTTP 200 with a body of a bid response .

If a bid request is malformed, an HTTP 200 with a body of a bid response with the nbr field populated may be returned.

The response format is controlled by the Accept header.

JSON Format

The default format is used when no accepted MIME type is provided.

JSON requests and responses follow the IAB OpenRTB 2.6 Specification . The following documentation describes extensions and field support.

The header Content-Type : application/json indicates a JSON bid request, Accept : application/json indicates the bid responses should be in JSON format.

Protobuf Format

NOTE: Protobuf support is in beta, please contact DV360 if you are interested.

JSON requests and responses follow the IAB OpenRTB 2.6 Protobuf Specification .

Extensions have limited support, contact DV360 if you are interested.

Send the header Content-Type : application/x-protobuf to indicate a Protobuf bid request, and set Accept : application/x-protobuf to receive Protobuf bid responses.

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 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 :
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.
schain
Supply chain Required in almost all cases.

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

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

Imp extension object

Field Type Details
bcrid
String List of creative ids that should be blocked.
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 Not supported.
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.

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.

0 (default): Not guaranteed
1 : Guaranteed

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

It is recommended to use deal.guar instead of this field.

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:
  • Google list 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
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 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)

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.
ext
Data extensions Extensions for the Data object.

Supported extensions for data object

Field Type Details
segtax
Integer Taxonomy Id, see Segment Taxonomies for more details.
segclass
String The version of the classifier which produced the segment IDs within the taxonomy.

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 Additional data.
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). When GDPR consent is collected via TCF, this field lists user-consented ad technology providers who do not participate in TCF. See ' Google Additional Consent technical specification .'
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. Possible values include:
2 : Invalid Request
12 : Ads.txt Authorization Violation
16 : Incomplete SupplyChain
17 : Blocked SupplyChain Node
Note: When a specific violation of (app-)ads.txt or SupplyChain is detected, one of codes 12, 16, or 17 will be populated on a fraction (1%) of the responses. Code 2 will be populated for all other invalid requests.
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 mandatoryfor Active View to enable measurement using OMID.
  • Recommended: Adding omidpn and omidpv to Source.Ext is highly recommendedbecause it will impact how viewability measurements are reported in DV360 to the customer. If the OMID partner name is noton 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 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.

Create a Mobile Website
View Site in Mobile | Classic
Share by: