This page catalogs every field and message used in the Google RTB Protocol's BidRequest
message, lists the closest supported equivalent fields in OpenRTB,
and provides instructions to help you migrate from the Google RTB protocol to OpenRTB.
BidRequest
id
BidRequest.id
id
has type bytes
, while the OpenRTB id
is a base64-encoded string
.ip
BidRequest.device.ip
BidRequest.device.ipv6
The Google RTB ip
is represented as a bytes
binary in
network byte order, while OpenRTB's ip
and ipv6
are a string
representation of the IP address.
For example, in Google protocol ip
could be set to \x7f\x00\x00
, and the equivalent value of ip
for OpenRTB
would be "127.0.0.0"
.
The mapped field is dependent on whether the IP is an IPv4 or IPv6 address.
google_user_id
BidRequest.user.id
cookie_version
This field isn't supported in Google's OpenRTB implementation.
cookie_age_seconds
BidRequest.user.ext.idage
hosted_match_data
BidRequest.user.buyeruid
The Google RTB hosted_match_data
is represented as bytes
,
while OpenRTB's buyeruid
is a string
.
OpenRTB represents this value in websafe base64 encoding without padding.
session_id
BidRequest.device.ext.session_id
publisher_provided_id
BidRequest.user.eids.uids.id
The meaning of OpenRTB's field depends on the value of the BidRequest.user.eids.uid.ext.stype
extension. When set to ppuid
, it refers to a publisher provided ID.
user_agent
BidRequest.device.ua
Note that this data is subject to generalization in both protocols.
publisher_country
BidRequest.site.publisher.ext.country
BidRequest.app.publisher.ext.country
Mapping depends on whether the bid request originates from an app or website.
host_publisher_id
BidRequest.site.publisher.ext.host_publisher_id
BidRequest.app.publisher.ext.host_publisher_id
Mapping depends on whether the bid request originates from an app or website.
inventory_partner_domain
BidRequest.site.ext.inventorypartnerdomain
BidRequest.app.ext.inventorypartnerdomain
Mapping depends on whether the bid request originates from an app or website.
geo_criteria_id
BidRequest.device.geo.ext.geo_criteria_id
postal_code
BidRequest.device.geo.zip
postal_code_prefix
This field isn't supported in Google's OpenRTB implementation. Use Geo instead.
encrypted_hyperlocal_set
This field isn't supported in Google's OpenRTB implementation. Use Geo instead.
We recommend using BidRequest.device.geo.{lat/lon}
for approximate device
location.
hyperlocal_set
This field isn't supported in Google's OpenRTB implementation. Use Geo instead.
We recommend using BidRequest.device.geo.{lat/lon}
for approximate device
location.
timezone_offset
BidRequest.device.geo.utcoffset
user_list
This field isn't populated in the Google RTB protocol, and won't be provided in Google's OpenRTB implementation.
publisher_id
BidRequest.app.publisher.id
BidRequest.site.publisher.id
Mapping depends on whether the bid request originates from an app or website.
seller_network_id
This field isn't supported in Google's OpenRTB implementation.
partner_id
This field isn't supported in Google's OpenRTB implementation.
url
BidRequest.app.content.url
BidRequest.site.page
Mapping depends on whether the bid request originates from an app or website.
is_semi_transparent_request
BidRequest.site.ext.is_semi_transparent_request
detected_language
BidRequest.app.content.language
BidRequest.site.content.language
Mapping depends on whether the bid request originates from an app or website.
detected_vertical
This field isn't supported in Google's OpenRTB implementation.
detected_content_label
This field isn't supported in Google's OpenRTB implementation.
production_quality
BidRequest.app.content.prodq
BidRequest.site.content.prodq
Mapping depends on whether the bid request originates from an app or website.
content_rating
BidRequest.app.content.contentrating
BidRequest.site.content.contentrating
Represented as a string rather than enum. Here is the mapping of possible values:
-
GENERAL_AUDIENCES
=DV-G
-
PARENTAL_GUIDANCE
=DV-PG
-
TEEN
=DV-T
-
MATURE_AUDIENCES
=DV-MA
google_query_id
BidRequest.ext.google_query_id
auction_type
BidRequest.at
Our OpenRTB implementation adds an unused FIXED_PRICE
value (integer
value of 3 for JSON format) that doesn't exist in the OpenRTB spec. This will
always be set to FIRST_PRICE
.
key_value
This field is deprecated and isn't supported in Google's OpenRTB implementation.
publisher_settings_list_id
BidRequest.imp.ext.publisher_settings_list_id
In OpenRTB, this single field contains the IDs found in both of Google RTB protocol's BidRequest.publisher_settings_list_id
and BidRequest.adslot.publisher_settings_list_id
fields.
publisher_type
This field isn't supported in Google's OpenRTB implementation.
page_visibility
BidRequest.site.ext.page_visibility
navigation_type
BidRequest.site.ext.ntype
response_deadline_ms
BidRequest.tmax
is_test
BidRequest.test
is_ping
This field isn't supported in Google's OpenRTB implementation.
is_predicted_to_be_ignored
This field isn't supported in Google's OpenRTB implementation.
frequency_capping_scope
BidRequest.ext.fcap_scope
session_duration_seconds
BidRequest.user.ext.session.duration
experiment_ids
BidRequest.ext.expids
PublisherFirstPartyId
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
id_type
|
BidRequest.user.eids.uid.ext.stype
|
Nearly equivalent. The Google RTB protocol's |
id
|
BidRequest.user.eids.uids.id
|
Nearly equivalent. The meaning of OpenRTB's field depends on the value of the |
PrivacyTreatments
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
ip
|
BidRequest.ext.privacy_treatments.ip
|
Equivalent. |
user_agent
|
BidRequest.ext.privacy_treatments.user_agent
|
Equivalent. |
user_agent_data
|
BidRequest.ext.privacy_treatments.user_agent_data
|
Equivalent. |
non_personalized_ads_reason
|
BidRequest.ext.privacy_treatments.non_personalized_ads_reason
|
Equivalent. |
allow_user_data_collection
|
BidRequest.ext.privacy_treatments.allow_user_data_collection
|
Equivalent. |
SegmentData
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
name
|
N/A | Unsupported. This field isn't supported in Google's OpenRTB implementation. |
id
|
|
Nearly equivalent. |
segment
|
Message field. See Notes. | See Segment . |
type
|
|
Equivalent. |
Segment
Parent: SegmentData
Google RTB | OpenRTB | Notes |
---|---|---|
id
|
|
Equivalent |
UserAgent
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
browsers
|
Message field. See Notes. | See BrandVersion . |
platform
|
Message field. See Notes. | See BrandVersion . |
mobile
|
BidRequest.device.sua.mobile
|
Equivalent. |
architecture
|
BidRequest.device.sua.architecture
|
Equivalent. |
bitness
|
BidRequest.device.sua.bitness
|
Equivalent. |
model
|
BidRequest.device.sua.model
|
Equivalent. |
source
|
BidRequest.device.sua.source
|
Equivalent. |
BrandVersion
Parent: UserAgent
Google RTB | OpenRTB | Notes |
---|---|---|
brand
|
BidRequest.device.sua.browsers.brand
BidRequest.device.sua.platform.brand
|
Equivalent. |
version
|
BidRequest.device.sua.browsers.version
BidRequest.device.sua.platform.version
|
Equivalent. |
Geo
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
lat
|
BidRequest.device.geo.lat
|
Equivalent. |
lon
|
BidRequest.device.geo.lon
|
Equivalent. |
country
|
BidRequest.device.geo.country
|
Equivalent. |
region
|
BidRequest.device.geo.region
|
Equivalent. |
metro
|
BidRequest.device.geo.metro
|
Equivalent. |
city
|
BidRequest.device.geo.city
|
Equivalent. |
zip
|
BidRequest.device.geo.zip
|
Equivalent. |
accuracy
|
BidRequest.device.geo.accuracy
|
Equivalent. |
utcoffset
|
BidRequest.device.geo.utcoffset
|
Equivalent. |
Device
Parent: BidRequest
device_type
BidRequest.device.devicetype
The DeviceType
enum differs between the protocols, but uses identical
enum names to convey the same meaning in all but one case: Google RTB protocol's GAME_CONSOLE
is mapped to OpenRTB's CONNECTED_DEVICE
.
-
HIGHEND_PHONE
= 1 →HIGHEND_PHONE
= 4 -
TABLET
= 2 →TABLET
= 5 -
PERSONAL_COMPUTER
= 3 →PERSONAL_COMPUTER
= 2 -
CONNECTED_TV
= 4 →CONNECTED_TV
= 3 -
GAME_CONSOLE
= 5 →CONNECTED_DEVICE
= 6 -
SET_TOP_BOX
= 6 →SET_TOP_BOX
= 7
platform
BidRequest.device.os
Devices that were set to " iphone
" or " ipad
" in Google RTB
protocol will instead be set to " iOS
" in OpenRTB. Otherwise, all other
naming is identical.
brand
BidRequest.device.make
model
BidRequest.device.model
carrier_id
BidRequest.device.carrier
OpenRTB uses a string for the carrier ID, while the Google RTB protocol uses an integer.
screen_width
BidRequest.device.w
screen_height
BidRequest.device.h
screen_pixel_ratio_millis
BidRequest.device.pxratio
pxratio
= screen_pixel_ratio_millis
/ 1,000
screen_orientation
This field isn't supported in Google's OpenRTB implementation.
You may use OpenRTB's BidRequest.device.w
and BidRequest.device.h
fields to determine orientation.
hardware_version
BidRequest.device.hwv
limit_ad_tracking
BidRequest.device.lmt
app_tracking_authorization_status
BidRequest.device.ext.atts
The Google RTB field is an enum whereas the OpenRTB field is an integer. The integer specified in OpenRTB maps directly to Google RTB protocol's enum value.
-
NOT_DETERMINED
=0
-
RESTRICTED
=1
-
DENIED
=2
-
AUTHORIZED
=3
connection_type
BidRequest.device.connectiontype
OsVersion
Parent: Device
Google RTB | OpenRTB | Notes |
---|---|---|
major
|
BidRequest.device.osv
|
Nearly equivalent. OpenRTB concatenates the |
minor
|
BidRequest.device.osv
|
Nearly equivalent. OpenRTB concatenates the |
micro
|
BidRequest.device.osv
|
Nearly equivalent. OpenRTB concatenates the |
Mobile
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
is_app
|
BidRequest.app
|
Nearly equivalent. OpenRTB's |
app_id
|
BidRequest.app.bundle
|
Equivalent. |
is_interstitial_request
|
BidRequest.imp.instl
|
Equivalent. |
app_category_ids
|
N/A | Unsupported. This field isn't supported in Google's OpenRTB implementation. |
is_mobile_web_optimized
|
BidRequest.site.mobile
|
Equivalent. |
is_app_open_ad
|
BidRequest.imp.ext.is_app_open_ad
|
Equivalent. |
encrypted_advertising_id
|
N/A | Unsupported. This field isn't supported in Google's OpenRTB implementation. Use |
advertising_id
|
BidRequest.device.ifa
|
Nearly equivalent. The Google RTB protocol represents this as bytes, while for OpenRTB this is represented as a string containing either a 16 byte UUID, or a 32 byte alphanumeric ID (for Samsung IDs). |
encrypted_hashed_idfa
|
N/A | Unsupported. This field isn't supported in Google's OpenRTB implementation. Use |
hashed_idfa
|
BidRequest.device.dpimd5
|
Nearly equivalent. The Google RTB protocol represents this as bytes, whereas OpenRTB represents this as a string containing a hexadecimal value. |
app_name
|
BidRequest.app.name
|
Equivalent. |
app_rating
|
BidRequest.app.content.userrating
|
Nearly equivalent. The Google RTB protocol represents this as a float, whereas OpenRTB represents this as a string containing a decimal value. |
installed_sdk
|
Message field. See Notes. | See InstalledSdk . |
skadn
|
Message field. See Notes. | See SKAdNetworkRequest . |
InstalledSdk
Parent: Mobile
Google RTB | OpenRTB | Notes |
---|---|---|
id
|
BidRequest.app.ext.installed_sdk.id
|
Equivalent. |
sdk_version
|
Message field. See Notes. | See Version . |
adapter_version
|
Message field. See Notes. | See Version . |
Version
Parent: InstalledSdk
Google RTB | OpenRTB | Notes |
---|---|---|
major
|
BidRequest.app.ext.installed_sdk.sdk_version.major
BidRequest.app.ext.installed_sdk.adapter_version.major
|
Equivalent. |
minor
|
BidRequest.app.ext.installed_sdk.sdk_version.minor
BidRequest.app.ext.installed_sdk.adapter_version.minor
|
Equivalent. |
micro
|
BidRequest.app.ext.installed_sdk.sdk_version.micro
BidRequest.app.ext.installed_sdk.adapter_version.micro
|
Equivalent. |
SKAdNetworkRequest
Parent: Mobile
Google RTB | OpenRTB | Notes |
---|---|---|
versions
|
BidRequest.imp.ext.skadn.versions
|
Equivalent. |
sourceapp
|
BidRequest.imp.ext.skadn.sourceapp
|
Equivalent. |
skadnetids
|
BidRequest.imp.ext.skadn.skadnetids
|
Equivalent. |
supported_fidelity_types
|
BidRequest.imp.ext.skadn.fidelities
|
Equivalent. |
skoverlay
|
BidRequest.imp.ext.skadn.skoverlay
|
Equivalent. |
Video
Parent: BidRequest
placement
BidRequest.imp.video.placement
The Google RTB protocol and OpenRTB use different enum values, which have the following mapping:
-
INSTREAM
= 1 →IN_STREAM_PLACEMENT
= 1 -
INTERSTITIAL
= 2 →FLOATING_PLACEMENT
= 5 -
IN_FEED
= 3 →IN_FEED_PLACEMENT
= 4 -
IN_ARTICLE
= 5 →IN_ARTICLE_PLACEMENT
= 3
In cases where Google RTB protocol doesn't populate placement
, OpenRTB
will set it to IN_BANNER_PLACEMENT
.
This is deprecated. We recommend that you use BidRequest.imp.video.plcmt
instead.
plcmt
BidRequest.imp.video.plcmt
inferred_plcmt
BidRequest.imp.video.ext.inferredplcmt
description_url
BidRequest.site.content.producer.domain
BidRequest.app.content.producer.domain
OpenRTB only includes the domain, not the full URL.
is_embedded_offsite
BidRequest.imp.video.ext.embeddedoffsite
playback_method
BidRequest.imp.video.playbackmethod
The OpenRTB PlaybackMethod
enum contains an additional (currently) unused CONTINUOUS
enum name. Otherwise, the enum names and values are
identical.
is_clickable
This field isn't supported in Google's OpenRTB implementation.
Google RTB protocol field indicates whether a device supports user
clicks, which can be inferred based on BidRequest.device.devicetype.
videoad_start_delay
BidRequest.imp.{video/audio}.startdelay
The Google RTB protocol represents this in milliseconds, whereas OpenRTB uses seconds.
max_ad_duration
BidRequest.imp.{video/audio}.maxduration
Native video:
BidRequest.imp.native.{request/request_native}.assets.video.maxduration
See native ad migration notes for more details on differences between JSON and Protobuf formats.
The Google RTB protocol uses a single field for both native and non-native video, and represents this in milliseconds, whereas OpenRTB differentiates between native and non-native video by using different field paths, and uses seconds.
min_ad_duration
BidRequest.imp.{video/audio}.minduration
Native video:
BidRequest.imp.native.{request/request_native}.assets.video.minduration
See native ad migration notes for more details on differences between JSON and Protobuf formats.
The Google RTB protocol uses a single field for both native and non-native video, and represents this in milliseconds, whereas OpenRTB differentiates between native and non-native video, and uses seconds.
max_ads_in_pod
BidRequest.imp.video.maxseq
max_pod_duration_seconds
BidRequest.imp.video.poddur
video_ad_skippable
BidRequest.imp.video.skip
OpenRTB's field is less granular because it is represented as a boolean. Both of
Google RTB protocol's ALLOW_SKIPPABLE
and REQUIRE_SKIPPABLE
enum names would result in the OpenRTB field being set to True
.
We recommend contacting your TAM to enable skip correction.
skippable_max_ad_duration
BidRequest.imp.{video/audio}.maxduration
The Google RTB protocol represents this in milliseconds, whereas the OpenRTB protocol uses seconds.
OpenRTB doesn't support display of both maximum duration for skippable and non-skippable ads simultaneously. Google uses bid flattening to represent both cases. For more details, see our documentation on maximum skippable video duration .
protocols
BidRequest.imp.{video/audio}.protocols
Native video:
BidRequest.imp.native.{request/request_native}.assets.video.protocols
See native ad migration notes for more details on differences between JSON and Protobuf formats.
The Google RTB protocol uses a single field for both native and non-native video, whereas OpenRTB differentiates between native and non-native video.
Google RTB protocol enum names and values are equivalent in OpenRTB, but additional (currently unused) enum names exist in OpenRTB.
allowed_video_formats
BidRequest.imp.{video/audio}.mimes
Native video:
BidRequest.imp.native.{request/request_native}.assets.video.mimes
See native ad migration notes for more details on differences between JSON and Protobuf formats.
The Google RTB protocol represents these with an enum, whereas OpenRTB uses a string.
end_cap_support
BidRequest.imp.{video/audio}.companionad.vcm
The Google RTB protocol represents this with an enum, whereas OpenRTB uses a boolean. However, only two values are in use for the Google RTB protocol, which map to OpenRTB as follows:
-
END_CAP_NOT_ENABLED
→False
-
END_CAP_OPTIONAL
→True
content_attributes.duration_seconds
BidRequest.{site/app}.content.len
is_livestream
BidRequest.{site/app}.content.livestream
playback_cessation_mode
BidRequest.imp.video.playbackend
CompanionSlot
Parent: Video
height
BidRequest.imp.{video/audio}.companionad.h
BidRequest.imp.{video/audio}.companionad.format.h
The Google RTB protocol uses separate repeated integer fields to represent width and height, where a given index in both describes a supported size.
We recommend using OpenRTB's companionad.format
, which is a repeated
field of type Format
that can represent multiple sizes. Note that companionad.{h/w}
can only represent one size.
width
BidRequest.imp.{video/audio}.companionad.w
BidRequest.imp.{video/audio}.companionad.format.w
The Google RTB protocol uses separate repeated integer fields to represent width and height, where a given index in both describes a supported size.
We recommend using OpenRTB's companionad.format
, which is a repeated
field of type Format
that can represent multiple sizes. Note that companionad.{h/w}
can only represent one size.
creative_format
BidRequest.imp.{video/audio}.companiontype
BidRequest.imp.{video/audio}.companionad.mimes
Google RTB protocol uses different enum names and values than OpenRTB.
-
IMAGE_CREATIVE
= 0 →STATIC
= 1 -
FLASH_CREATIVE
= 1 → N/A (Flash is no longer supported.) -
HTML_CREATIVE
= 2 →HTML
= 2
These are also reflected in OpenRTB's mimes
field for the companion
ad.
Unlike Google RTB protocol, OpenRTB supports an additional type: COMPANION_IFRAME.
UserActivation
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
has_been_active
|
BidRequest.site.ext.uact.wasact
|
Equivalent. |
is_active
|
BidRequest.site.ext.uact.isact
|
Equivalent. |
Adslot
Parent: BidRequest
Contains information about the ad slot. Roughly corresponds to the Imp
message
in OpenRTB.
id
BidRequest.imp.id
The Google RTB protocol represents this as an integer, whereas OpenRTB uses string.
ad_block_key
BidRequest.imp.tagid
width
BidRequest.imp.banner.w
BidRequest.imp.banner.format.w
BidRequest.imp.native.{request/request_native}.assets.video.w
BidRequest.imp.video.w
The representation across the Google RTB protocol and OpenRTB are identical, however the OpenRTB field used differs based on the ad format.
When there are multiple eligible banner sizes, Google RTB protocol represents
dimensions with width
/ height
pairs at the same index, whereas
OpenRTB uses the repeated format
field.
Unlike the banner format, when there are multiple eligible video sizes, only the
width of the first will be provided in BidRequest.imp.video.w
.
height
BidRequest.imp.banner.h
BidRequest.imp.banner.format.h
BidRequest.imp.native.{request/request_native}.assets.video.h
BidRequest.imp.video.h
The representation across the Google RTB protocol and OpenRTB are identical, however the OpenRTB field used differs based on the ad format.
When there are multiple eligible banner sizes, Google RTB protocol represents
dimensions with width
/ height
pairs at the same index, whereas
OpenRTB uses the repeated format
field.
Unlike the banner format, when there are multiple eligible video sizes, only the
height of the first will be provided in BidRequest.imp.video.h
.
excluded_attribute
BidRequest.imp.secure
BidRequest.imp.audio.battr
BidRequest.imp.video.battr
BidRequest.imp.banner.battr
BidRequest.imp.native.battr
BidRequest.imp.banner
BidRequest.imp.video
BidRequest.imp.native
See Excluded Attributes for more details.
allowed_vendor_type
BidRequest.imp.ext.allowed_vendor_type
regs_gdpr
BidRequest.regs.ext.gdpr
regs_lgpd
BidRequest.regs.ext.lgpd
gpp_consent_string
BidRequest.regs.gpp
gpp_section_ids
BidRequest.regs.gpp_sid
The Google RTB protocol field is a repeated set of integer IDs defined here
, whereas the OpenRTB field is a repeated set of GppSectionId
enum.
The integer values in GppSectionId
directly correspond to the IDs sent in
the Google RTB protocol field.
excluded_sensitive_category
BidRequest.bcat
See Ad Categories for more details.
allowed_restricted_category
BidRequest.imp.ext.allowed_restricted_category
allowed_restricted_category_for_deals
BidRequest.imp.ext.allowed_restricted_category
Note that allowed restricted categories for deals and the open auction are identical.
allowed_languages
BidRequest.wlang
Google RTB Protocol refers to languages differently than OpenRTB, which uses ISO 639-1.
excluded_product_category
BidRequest.bcat
See Ad Categories for more details.
excluded_app_ids
BidRequest.bapp
only_deal_bids_accepted
BidRequest.imp.pmp.private_auction
blocked_seat_ids
BidRequest.bseat
allowed_seat_ids
BidRequest.wseat
publisher_settings_list_id
BidRequest.imp.ext.publisher_settings_list_id
In OpenRTB, this is the concatenation of Google protocol's BidRequest.publisher_settings_list_id
and BidRequest.adslot.publisher_settings_list_id
.
exchange_bidding
Unsupported.
The ExchangeBidding
message and its contents have no
equivalents in OpenRTB.
dfp_ad_unit_code
BidRequest.imp.ext.dfp_ad_unit_code
This field will only be populated for Open Bidding partners.
slot_visibility
BidRequest.imp.banner.pos
BidRequest.imp.video.pos
OpenRTB's pos
field also maps to Google RTB protocol's StickySettings
. Enum names relevant to slot_visibility
are ABOVE_THE_FOLD
and BELOW_THE_FOLD
, which have different integer values in OpenRTB (1 and 3
respectively).
Note that visibility is not a factor for audio ads, which are represented separately from video ads in OpenRTB.
Unsupported for native ads.
viewability
BidRequest.imp.metric.value
The Google RTB protocol represents this as an integer percentage ranging from 0-100, whereas OpenRTB represents this as a double ranging from 0.0-1.0.
Note that this OpenRTB field has multiple mappings, and will only refer to viewability
when OpenRTB's BidRequest.imp.metric.type
is set to "viewability"
and BidRequest.imp.metric.vendor
is set to "EXCHANGE"
.
click_through_rate
BidRequest.imp.metric.value
The Google RTB protocol represents this as a float percentage, whereas OpenRTB represents this as a double.
Note that this OpenRTB field has multiple mappings, and will only refer to click
through rate when OpenRTB's BidRequest.imp.metric.type
is set to "click_through_rate"
and BidRequest.imp.metric.vendor
is set
to "EXCHANGE"
.
video_completion_rate
BidRequest.imp.metric.value
The Google RTB protocol represents this as a float percentage, whereas OpenRTB represents this as a double ranging from 0.0-1.0.
Note that this OpenRTB field has multiple mappings, and will only refer to video
completion rate when OpenRTB's BidRequest.imp.metric.type
is set to "completion_rate"
and BidRequest.imp.metric.vendor
is set to "EXCHANGE"
.
iframing_state
BidRequest.imp.banner.topframe
The Google RTB protocol represents this as an enum, whereas OpenRTB represents this less-granularly as a bool.
Google renders all banners in a cross-domain iframe. In OpenRTB, topframe
will always be set to False
.
iframing_depth
This field isn't supported in Google's OpenRTB implementation.
native_placement_type
BidRequest.imp.native.{request/request_native}.plcmttype
The Google RTB Protocol and OpenRTB use identical integer values, however the Protobuf OpenRTB format uses shortened enum names.
mediation_status
This field has been deprecated and is no longer populated. It won't be supported in Google's OpenRTB implementation.
non_browser_slot_source
This field isn't supported in Google's OpenRTB implementation.
renderer
BidRequest.imp.displaymanager
The Google RTB Protocol field is an enum that supports the following values:
-
GOOGLE
= 1 -
PUBLISHER
= 2
The OpenRTB field is a string with a more granular set of values.
amp_ad_request_type
This field isn't supported in Google's OpenRTB implementation.
is_amp_page
BidRequest.site.ext.amp
OpenRTB uses a similar enum with identical enum names, but the integer values are different.
-
DIALECT_HTML
= 1 →DIALECT_HTML
= 0 -
DIALECT_HTML_AMP
= 2 →DIALECT_HTML_AMP
= 1
amp_ad_requirement_type
BidRequest.imp.ext.ampad
OpenRTB uses a similar enum with identical enum names, but the integer values are different.
-
AMP_AD_NOT_ALLOWED
= 1 →AMP_AD_NOT_ALLOWED
= 2 -
AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
= 2 →AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED
= 3 -
AMP_AD_ALLOWED_AND_EARLY_RENDERED
= 3 →AMP_AD_ALLOWED_AND_EARLY_RENDERED
= 4 -
AMP_AD_REQUIRED
= 4 →AMP_AD_REQUIRED
= 5
is_rewarded
BidRequest.imp.rwdd
allowed_ad_types
In OpenRTB, there isn't a dedicated field to list allowed ad types. However, they can be determined based on the presence of relevant ad format fields in the bid request such as:
-
BidRequest.imp.banner
-
BidRequest.imp.video
-
BidRequest.imp.audio
-
BidRequest.imp.native
session_depth
BidRequest.imp.metric.value
The Google RTB protocol represents this with an integer data type, whereas OpenRTB uses double.
Note that the OpenRTB field can represent multiple metrics, and only represents
session depth when Metric.type
is set to "session_depth"
.
api
BidRequest.imp.{banner/video/audio/native}.api
OpenRTB uses a similar enum, but it includes additional frameworks such as VPAID.
-
MRAID_1
= 3 →MRAID_1
= 3 -
MRAID_2
= 5 →MRAID_2
= 5 -
MRAID_3
= 6 →MRAID_3
= 6 -
OMID_1
= 7 →OMID_1
= 7
This is specified separately for each of the included ad formats in OpenRTB.
billable_event_rate_adjustment
BidRequest.imp.ext.billable_event_rate_adjustment
Both the Google RTB protocol and OpenRTB fields are deprecated in favor of repeated
fields. Use BidRequest.imp.ext.billable_event_rate_bid_adjustment.bid_adjustment
instead.
omidpn
BidRequest.source.ext.omidpn
omidpv
BidRequest.source.ext.omidpv
auction_environment
BidRequest.imp.ext.auction_environment
Both the Google RTB protocol and OpenRTB fields are deprecated. Use BidRequest.imp.ext.ae
instead.
supported_auction_environment
BidRequest.imp.ext.ae
impression_expiration_seconds
BidRequest.imp.exp
display_manager
BidRequest.imp.displaymanager
display_manager_version
BidRequest.imp.displaymanagerver
Excluded Attributes
The Google RTB protocol uses BidRequest.adslot.excluded_attribute
to indicate
which attributes you should exclude from the creative returned with your bid, which are
defined in publisher-excludable-creative-attributes.txt
.
OpenRTB represents most of these using several fields described here:
7
Tagging: IsTagged
8
Remarketing: IsRemarketing
9
UserInterestTargeting: IsUserInterestTargeted
13 - 20
ExpandingDirection
:ExpandingUp
,ExpandingDown
,ExpandingLeft
,ExpandingRight
.ExpandingUpLeft
,ExpandingUpRight
,ExpandingDownLeft
,ExpandingDownRight
21
CreativeType: Html
excluded_attribute
to 21, OpenRTB
wouldn't populate BidRequest.imp.banner
.22
CreativeType: VastVideo
excluded_attribute
to 22, OpenRTB
wouldn't populate BidRequest.imp.video
.25 - 27
ExpandingDirection
:ExpandingUpOrDown
,ExpandingLeftOrRight
,ExpandingAnyDiagonal
28
ExpandingAction: RolloverToExpand
30
InstreamVastVideoType: Vpaid
In cases where Google RTB protocol sets excluded_attribute
to 30,
OpenRTB wouldn't populate BidRequest.imp.video.api
or BidRequest.imp.native.{request/request_native}.assets.video.api
with VPAID_1
or VPAID_2
32
MraidType: MRAID
In cases where Google RTB protocol sets excluded_attribute
to 32,
OpenRTB wouldn't populate any of the following fields with MRAID_1
:
-
BidRequest.imp.banner.api
-
BidRequest.imp.native.api
-
BidRequest.imp.video.api
34
RichMediaCapabilityType: RichMediaCapabilityFlash
Flash is not a supported creative format.
39
RichMediaCapabilityType: RichMediaCapabilityHTML5
48
RichMediaCapabilityType: RichMediaCapabilityNonSSL
In cases where Google RTB protocol sets excluded_attribute
to 48,
OpenRTB would populate BidRequest.imp.secure
with True
.
In practice, BidRequest.imp.secure
will always be set to True
because SSL support is required for all creatives.
70
NativeEligibility: Native Eligible
excluded_attribute
to 70, OpenRTB
wouldn't populate BidRequest.imp.native
.72
NativeEligibility: Native Not Eligible
excluded_attribute
to 72, OpenRTB
would populate BidRequest.imp.native
. Additionally, OpenRTB wouldn't
populate BidRequest.imp.audio
, BidRequest.imp.banner
, and BidRequest.imp.video
.95
VideoType: In-Banner Video (Publisher Blockable)
In cases where Google RTB protocol sets excluded_attribute
to 95,
OpenRTB would populate BidRequest.imp.banner.battr
with VIDEO_IN_BANNER_AUTO_PLAY
and VIDEO_IN_BANNER_USER_INITIATED
.
114
OmsdkType: OMSDK 1.0
In cases where Google RTB protocol sets excluded_attribute
to 114,
OpenRTB wouldn't populate the following fields with OMID_1
:
-
BidRequest.imp.banner.api
-
BidRequest.imp.video.api
-
BidRequest.imp.native.api
FlexibleAdSlotSettings
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
max_height
|
BidRequest.imp.banner.ext.flexslot.hmax
BidRequest.imp.banner.hmax
|
Equivalent. |
max_width
|
BidRequest.imp.banner.ext.flexslot.wmax
BidRequest.imp.banner.wmax
|
Equivalent. |
min_height
|
BidRequest.imp.banner.ext.flexslot.hmin
BidRequest.imp.banner.hmin
|
Equivalent. |
min_width
|
BidRequest.imp.banner.ext.flexslot.wmin
BidRequest.imp.banner.wmin
|
Equivalent. |
ConsentedProvidersSettings
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
consented_providers
|
BidRequest.user.ext.consented_providers_settings.consented_providers
|
Equivalent. |
tcf_consent_string
|
BidRequest.user.ext.consent
|
Equivalent. |
additional_consent_string
|
BidRequest.user.ext.consented_providers_settings.additional_consent
|
Equivalent. |
ExcludedCreative
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
excluded_creatives.buyer_creative_id
|
BidRequest.imp.ext.excluded_creatives.buyer_creative_id
|
Equivalent. |
MatchingAdData
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
billing_id
|
BidRequest.imp.ext.billing_id
BidRequest.imp.pmp.deals.ext.billing_id
|
Nearly equivalent. In OpenRTB, billing IDs are stored in a flat list that has no particular grouping or ordering. See Eligible Buyers and Deals for more information. For deals, the eligible billing IDs for each deal can be found in |
minimum_cpm_micros
|
BidRequest.imp.bidfloor
|
Nearly equivalent. The Google RTB protocol uses an integer to represent the floor of the auction in micros of the buyer's configured currency. If there are multiple buyers with differing currencies, this value might differ across buyers while having the same monetary value. See Eligible Buyers and Deals for more details. OpenRTB uses a single double to represent the floor of the auction in the bidder's
configured currency that is provided in |
direct_deal
|
Message field. See Notes. | See DirectDeal . |
DirectDeal
Parent: MatchingAdData
Google RTB | OpenRTB | Notes |
---|---|---|
direct_deal_id
|
BidRequest.imp.pmp.deals.id
|
Nearly equivalent. The Google RTB protocol represents this as an integer, whereas OpenRTB uses string. |
fixed_cpm_micros
|
|
Nearly equivalent. The Google RTB protocol represents this in micros of the given currency as an integer, whereas OpenRTB represents the value in CPM currency units, as a double. Note that the value sent in OpenRTB bid request may differ because Google
RTB protocol uses the deal buyer's currency, whereas OpenRTB uses the bidder's
currency. The |
deal_type
|
BidRequest.imp.pmp.deals.ext.deal_type
|
Equivalent. |
publisher_blocks_overridden
|
BidRequest.imp.pmp.deals.ext.publisher_blocks_overridden
|
Equivalent. |
creative_source
|
BidRequest.imp.pmp.deals.ext.creative_source
|
Nearly equivalent. The Google RTB protocol and OpenRTB fields are represented with an identical enum. |
must_bid
|
BidRequest.imp.pmp.deals.ext.must_bid
|
Equivalent. |
creative_constraints
|
Message field. See Notes. | See CreativeConstraints . |
allowed_seat_ids
|
BidRequest.imp.pmp.deals.wseat
|
Equivalent. |
CreativeConstraints
Parent: DirectDeal
allowed_ad_types
BidRequest.imp.pmp.deals.ext.creative_constraints.mtypes
The Google RTB protocol and OpenRTB use different enums. They represent the same set of ad formats, but use different names and integer values.
-
ALLOWED_AD_TYPE_BANNER
= 0 →CREATIVE_MARKUP_BANNER
= 1 -
ALLOWED_AD_TYPE_NATIVE
= 1 →CREATIVE_MARKUP_NATIVE
= 4 -
ALLOWED_AD_TYPE_VIDEO
= 2 →CREATIVE_MARKUP_VIDEO
= 2 -
ALLOWED_AD_TYPE_AUDIO
= 3 →CREATIVE_MARKUP_AUDIO
= 3
video_ad_skippable
BidRequest.imp.pmp.deals.ext.creative_constraints.skippability
max_ad_duration_ms
BidRequest.imp.pmp.deals.ext.creative_constraints.maxduration
The Google RTB protocol represents the duration in milliseconds, whereas OpenRTB uses seconds.
OpenBidding
Parent: Adslot
Contains parameters relevant to Open Bidding. This will only be populated for Open Bidding partners.
Google RTB | OpenRTB | Notes |
---|---|---|
is_open_bidding
|
BidRequest.imp.ext.is_open_bidding
|
Equivalent. |
AdUnitMapping
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
keyvals
|
Message field. See Notes. | See Keyval . |
format
|
BidRequest.imp.ext.ad_unit_mapping.format
|
Equivalent. |
Keyval
Parent: AdUnitMapping
Google RTB | OpenRTB | Notes |
---|---|---|
key
|
BidRequest.imp.ext.ad_unit_mapping.keyvals.key
|
Equivalent. |
value
|
BidRequest.imp.ext.ad_unit_mapping.keyvals.value
|
Equivalent. |
CreativeEnforcementSettings
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
policy_enforcement
|
BidRequest.imp.ext.creative_enforcement_settings.policy_enforcement
|
Equivalent. |
publisher_blocks_enforcement
|
BidRequest.imp.ext.creative_enforcement_settings.publisher_blocks_enforcement
|
Equivalent. |
NativeAdTemplate
Parent: Adslot
Contains information about a native ad template. Roughly corresponds to
the NativeRequest
message in OpenRTB. We recommend that you
review the migration notes for native ads
.
Google RTB | OpenRTB | Notes |
---|---|---|
required_fields
|
BidRequest.imp.native.{request/request_native}.assets.required
|
Non-trivial updates required. Google protocol uses a single bitfield to determine whether several components of the
native ad are required, whereas OpenRTB defines all components as a list of |
recommended_fields
|
BidRequest.imp.native.{request/request_native}.assets.required
|
Non-trivial updates required. Google protocol uses a single bitfield to determine whether several components of the
native ad are recommended, whereas OpenRTB defines all components in a list of |
headline_max_safe_length
|
BidRequest.imp.native.{request/request_native}.assets.title.len
|
Equivalent. The Google RTB protocol's |
body_max_safe_length
|
BidRequest.imp.native.{request/request_native}.assets.data.len
|
Equivalent. The Google RTB protocol's |
call_to_action_max_safe_length
|
BidRequest.imp.native.{request/request_native}.assets.data.len
|
Equivalent. The Google RTB protocol's |
advertiser_max_safe_length
|
BidRequest.imp.native.{request/request_native}.assets.data.len
|
Equivalent. The Google RTB protocol's |
price_max_safe_length
|
BidRequest.imp.native.{request/request_native}.assets.data.len
|
Equivalent. The Google RTB protocol's |
image_width
|
BidRequest.imp.native.{request/request_native}.assets.img.wmin
|
Equivalent. The Google RTB protocol's |
image_height
|
BidRequest.imp.native.{request/request_native}.assets.img.hmin
|
Equivalent. The Google RTB protocol's |
logo_width
|
BidRequest.imp.native.{request/request_native}.assets.img.wmin
|
Equivalent. The Google RTB protocol's |
logo_height
|
BidRequest.imp.native.{request/request_native}.assets.img.hmin
|
Equivalent. The Google RTB protocol's |
app_icon_width
|
BidRequest.imp.native.{request/request_native}.assets.img.wmin
|
Equivalent. The Google RTB protocol's |
app_icon_height
|
BidRequest.imp.native.{request/request_native}.assets.img.hmin
|
Equivalent. The Google RTB protocol's |
style_id
|
BidRequest.imp.native.{request/request_native}.ext.style_id
|
Equivalent. |
style_layout_type
|
BidRequest.imp.native.{request/request_native}.ext.style_layout_type
|
Equivalent. |
slot_visibility
|
BidRequest.imp.native.{request/request_native}.ext.pos
|
Equivalent. |
style_height
|
BidRequest.imp.native.{request/request_native}.ext.style_height
|
Equivalent. |
style_width
|
BidRequest.imp.native.{request/request_native}.ext.style_width
|
Equivalent. |
AutoRefresh
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
refresh_settings
|
Message field. See Notes. | See AutoRefreshSettings . |
refresh_count
|
BidRequest.imp.refresh.count
|
Equivalent. |
AutoRefreshSettings
Parent: AutoRefresh
refresh_type
BidRequest.imp.refresh.refsettings.reftype
The Google RTB field is an enum whereas the OpenRTB field is an integer. The integer specified in OpenRTB maps directly to Google RTB protocol's enum value.
-
UNKNOWN_AUTO_REFRESH_TYPE
=0
-
USER_ACTION
=1
-
EVENT
=2
-
TIME
=3
min_refresh_interval_seconds
BidRequest.imp.refresh.refsettings.minint
StickySettings
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
vertical_stickiness
|
BidRequest.imp.banner.pos
|
Nearly equivalent. The OpenRTB field is an enum that represents several possible ad positions. When set
to OpenRTB's |
top_horizontal_stickiness
|
BidRequest.imp.banner.pos
|
Nearly equivalent. The OpenRTB field is an enum that represents several possible ad positions. When set
to OpenRTB's |
bottom_horizontal_stickiness
|
BidRequest.imp.banner.pos
|
Nearly equivalent. The OpenRTB field is an enum that represents several possible ad positions. When set
to OpenRTB's |
SecureSignal
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
source
|
For both web and app:BidRequest.user.ext.eids.source
For app only: BidRequest.imp.ext.buyer_generated_request_data.source_app.id
|
Equivalent. |
data
|
For web:BidRequest.user.ext.eids.uids.id
For app: BidRequest.imp.ext.buyer_generated_request_data.data
|
Equivalent. |
BillableEventRateBidAdjustment
Parent: Adslot
Google RTB | OpenRTB | Notes |
---|---|---|
billable_event_rate_bid_adjustment.bid_adjustment
|
BidRequest.imp.ext.billable_event_rate_bid_adjustment.bid_adjustment
|
Equivalent. |
billable_event_rate_bid_adjustment.creative_type
|
BidRequest.imp.ext.billable_event_rate_bid_adjustment.creative_type
|
Equivalent. |
billable_event_rate_bid_adjustment.sdk.id
|
BidRequest.imp.ext.billable_event_rate_bid_adjustment.sdk.id
|
Equivalent. |
BidResponseFeedback
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
request_id
|
BidRequest.ext.bid_feedback.request_id
|
Nearly equivalent. The Google RTB protocol represents this with bytes, whereas OpenRTB uses a base64-escaped string. |
creative_status_code
|
BidRequest.ext.bid_feedback.creative_status_code
|
Equivalent. |
cpm_micros
|
BidRequest.ext.bid_feedback.price
|
Nearly equivalent. These fields are deprecated and are not populated in the bid request. |
minimum_bid_to_win
|
BidRequest.ext.bid_feedback.minimum_bid_to_win
|
Nearly equivalent. The Google RTB protocol uses an integer to represent the price in micros using the bidder's configured currency. OpenRTB uses a double to represent the price in the bidder's currency units. OpenRTB value = Google RTB value / 1,000,000 |
server_side_component_minimum_bid_to_win
|
BidRequest.ext.bid_feedback.sscminbidtowin
|
Nearly equivalent. The Google RTB protocol uses an integer to represent the price in micros using the bidder's configured currency. OpenRTB uses a double to represent the price in the bidder's currency units. OpenRTB value = Google RTB value / 1,000,000 |
billable_event_rate_bid_adjustment
|
BidRequest.ext.bid_feedback.billable_event_rate_bid_adjustment
|
Equivalent. |
sampled_mediation_cpm_ahead_of_auction_winner
|
BidRequest.ext.bid_feedback.sampled_mediation_cpm_ahead_of_auction_winner
|
Nearly equivalent. The Google RTB protocol uses an integer to represent the price in micros using the bidder's configured currency. OpenRTB uses a double to represent the price in the bidder's currency units. OpenRTB value = Google RTB value / 1,000,000 |
event_notification_token
|
BidRequest.ext.bid_feedback.event_notification_token.payload
|
Nearly equivalent. The Google RTB protocol represents this as bytes, whereas OpenRTB uses string. |
buyer_creative_id
|
BidRequest.ext.bid_feedback.buyer_creative_id
|
Equivalent. |
feedback_type
|
BidRequest.ext.bid_feedback.feedbacktype
|
Equivalent. |
creative_index
|
N/A
|
Unsupported. This field isn't supported in Google's OpenRTB implementation. Bidders can use the |
buyer_origin
|
BidRequest.ext.bid_feedback.buyerorigin
|
Equivalent. |
interest_group_buyer_status_code
|
BidRequest.ext.bid_feedback.igbuyerstatus
|
Equivalent. |
SupplyChain
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
complete
|
BidRequest.source.schain.complete
|
Equivalent. |
advertising_system_identifier
|
BidRequest.source.schain.nodes.asi
|
Equivalent. |
seller_identifier
|
BidRequest.source.schain.nodes.sid
|
Equivalent. |
handles_payment
|
BidRequest.source.schain.nodes.hp
|
Equivalent. |
version
|
BidRequest.source.schain.ver
|
Equivalent. |
Dsa
Parent: BidRequest
Google RTB | OpenRTB | Notes |
---|---|---|
dsa_support
|
BidRequest.regs.ext.dsa.dsarequired
|
Nearly equivalent. The OpenRTB |
publisher_rendering_support
|
BidRequest.regs.ext.dsa.pubrender
|
Nearly equivalent. The OpenRTB |
data_to_publisher
|
BidRequest.regs.ext.dsa.datatopub
|
Nearly equivalent. The OpenRTB |