Display & Video 360
Display & Video 360 (DV360) is Google's demand-side platform. Google publishes the OpenRTB specification that exchanges and SSPs follow when they send DV360 bid requests.
Direction and version
Exchanges and SSPs send bid requests to DV360's endpoint, and DV360 answers as the buyer with a bid or a no-bid.
OpenRTB 2.6 JSON by default, with a 2.6 protobuf option offered as a beta on request. Flags are integers, consent strings are web-safe base64, and Native is supported only as version 1.2 in a JSON string in imp.native.request.
The RTBlint profile dv360 checks requests and responses against the published contract.
Rules beyond the OpenRTB spec
- Requests need
device,user, exactly one ofsiteorapp, a publisher ID,device.ua, and the device address indevice.ipordevice.ipv6. - For iOS apps,
app.bundlemust be the numeric App Store ID rather than a reverse-DNS bundle name. source.schainis expected in almost every integration. An exemption depends on the account.- Each privacy signal (GDPR applicability, TCF consent, US Privacy) should be sent in one location only, either the 2.6 field or its legacy
extpath. - Native versions 1.0 and 1.1 are not supported.
- Video needs a non-empty
protocolslist. Sound-off playback must be classified as outstream, andplcmttakes precedence over the legacyplacement. - Deal IDs must be unique within an impression. A fixed-price deal (
at3) needs abidfloor, and DV360 accepts 0 for videoplacement,plcmt, andplaybackmethod. ext.disable_gma_formatis allowed only together withext.gdemsignals.- DV360 parses
test,allimps,wlang,bapp,source.tid,source.pchain, andimp.metricbut does not use them for bidding. Only the first impression is used, except for audio pods. - Banner bids always carry
adm. A malformed request can receive HTTP 200 withnbrand an error description inext.err.
Documented extensions
| Path | Meaning |
|---|---|
ext.gdemsignals | Signals from the Google Mobile Ads SDK. |
ext.disable_gma_format | Opts out of Google Mobile Ads SDK formats; valid only with ext.gdemsignals. |
ext.purch | Traffic source: 0 undefined, 1 purchased, 2 organic. |
ext.schain | Legacy supply chain location; source.schain is preferred. |
source.ext.omidpn | Open Measurement partner name. |
device.ext.truncated_ip | Set when the IP address in the request has been truncated. |
imp.ext.bcrid | Creative IDs to block for the impression. |
imp.video.ext.rewarded | Rewarded video flag. |
deal.ext.guaranteed | Legacy guaranteed flag; deal.guar is preferred. |
app.ext.inventorypartnerdomain | Inventory partner domain for authorization checks. |
user.ext.consented_providers_settings | Providers the user consented to under Google's Additional Consent. |
ext.err | Response-level description of a request error. |
What the validator checks for this profile
openrtb.profile.dv360.banner_markupDV360 always includes adm for banner bids.openrtb.profile.dv360.duplicate_dealDV360 deal IDs must be unique within an impression.openrtb.profile.dv360.gma_dependencydisable_gma_format is permitted only with gdemsignals.openrtb.profile.dv360.ignored_fieldDV360 parses the field but does not use it for bidding.openrtb.profile.dv360.instream_soundDV360 sound-off playback must be classified as outstream.openrtb.profile.dv360.inventory_requiredDV360 requests require site or app inventory.openrtb.profile.dv360.ios_bundleDV360 iOS app bundles must be numeric App Store IDs.openrtb.profile.dv360.ip_requiredDV360 requires the device IPv4 or IPv6 address.openrtb.profile.dv360.native_versionDV360 supports Native Ads 1.2; versions 1.0 and 1.1 are unsupported.openrtb.profile.dv360.privacy_locationsDV360 expects one US Privacy signal location.openrtb.profile.dv360.protocols_requiredDV360 video requires a nonempty supported protocol list.openrtb.profile.dv360.schain_expectedDV360 requires SupplyChain in almost all integrations; an exemption needs account context.
Validate against this contract
Open the tester with the Display & Video 360 profile, or run:
rtblint validate --profile dv360 request.json
Similar integrations
- Adform OpenRTB handler
- AppLovin ALX DSP response
- BidSwitch buyer 5.7
- Digital Turbine Exchange
- Equativ bidder contract
- Google Authorized Buyers
- Index Exchange DSP
- InMobi DSP
- Magnite DV+ xAPI
- Microsoft Monetize bidder
- MobileFuse in-app bidding
- MobileFuse SDK bidding
- Sovrn request
- Unity Exchange
- Vungle Exchange
- Yandex SDK bidding