BidResponse Migration

This page catalogs every field and message used in the Google RTB Protocol's BidResponse message, lists the closest supported equivalent fields in OpenRTB, and provides instructions to help you migrate from the Google RTB protocol to OpenRTB.

BidResponse

Google RTB OpenRTB Notes
ad Message field. See Notes. See Ad.
debug_string N/A No equivalent field exists in OpenRTB.
processing_time_ms BidResponse.ext.processing_time_ms Equivalent.
no_bid_reason BidResponse.nbr Equivalent.

Parent: BidResponse

Google RTB OpenRTB Notes
event_notification_token BidResponse.seatbid.bid.ext.event_notification_token.payload The Google RTB protocol uses a bytes data type whereas OpenRTB uses string. Google RTB bidders using raw bytes tokens must migrate to using string tokens.
buyer_creative_id BidResponse.seatbid.bid.crid Equivalent.
html_snippet BidResponse.seatbid.bid.adm

Equivalent.


Additional OpenRTB macros are now supported. Learn more about supported macros.

video_url BidResponse.seatbid.bid.adm

Equivalent.


Additional OpenRTB macros are now supported. Learn more about supported macros.

video_vast_xml BidResponse.seatbid.bid.adm

Equivalent.


Additional OpenRTB macros are now supported. Learn more about supported macros.

amp_ad_url BidResponse.seatbid.bid.ext.amp_ad_url Equivalent.
native_ad Message field. See Notes. See NativeAd.
click_through_url BidResponse.seatbid.bid.ext.clickurl See Click-through URL for details.
vendor_type N/A No equivalent field exists in OpenRTB.
attribute BidResponse.seatbid.bid.apis

BidResponse.seatbid.bid.attr

BidResponse.seatbid.bid.ext.attribute
See Attribute for details.
category BidResponse.seatbid.bid.cat Not equivalent.

See Ad Categories for details.

restricted_category BidResponse.seatbid.bid.ext.restricted_category Equivalent.
advertiser_name N/A Unsupported.

This field isn't supported in Google's OpenRTB implementation.

width BidResponse.seatbid.bid.w Equivalent.
height BidResponse.seatbid.bid.h Equivalent.
adslot Message field. See Notes. See AdSlot.
impression_tracking_url BidResponse.seatbid.bid.burl

BidResponse.seatbid.bid.ext.impression_tracking_url

Nearly equivalent.



You can use burl if you only need to support one URL. Otherwise, use the impression_tracking_url extension if you need to support multiple URLs.

click_tracking_urls BidResponse.seatbid.bid.ext.click_tracking_urls Equivalent.
ad_choices_destination_url BidResponse.seatbid.bid.ext.ad_choices_destination_url Equivalent.
impression_tracking_resource Message field. See Notes. See ImpressionTrackingResource.
sdk_rendered_ad Message field. See Notes. See SdkRenderedAd.
skadn Message field. See Notes. See SKAdNetworkResponse.
advertised_app_id BidResponse.seatbid.bid.bundle Equivalent.
app_promotion_type BidResponse.seatbid.bid.ext.app_promotion_type Equivalent.

Click-through URL

All bids must declare either a click URL using this field, the advertiser domain in the BidResponse.seatbid.bid.adomain field, or both. We recommend that bidders use this field, possibly in addition to BidResponse.seatbid.bid.adomain, for more accurate enforcement of publisher and user protections, for example so that your bid is not incorrectly filtered.

For native ads, the closest equivalent would be in OpenRTB's native ad response. If you use the Protobuf OpenRTB implementation, this would be the BidResponse.seatbid.bid.{adm/adm_native}.link.url field. If you use the JSON OpenRTB implementation, this would be the link field in the native ad response JSON you specify with BidResponse.seatbid.bid.adm. These are populated with full destination URLs that the user is expected to land on.

Attribute

The Google RTB protocol uses BidResponse.ad.attribute to declare attributes of the creative returned with your bid, which are defined in buyer-declarable-creative-attributes.txt. You can continue using these Google-defined attribute IDs with the BidResponse.seatbid.bid.ext.attribute extension, otherwise you can use a combination of BidResponse.seatbid.bid.apis and BidResponse.seatbid.bid.attr to declare these attributes using OpenRTB-standard taxonomies. To simplify your migration, we recommend using the extension.

The following table describes the declarable creative attributes and, if possible, how they can be represented with the apis and attr fields.

Google RTB Attribute ID Meaning OpenRTB mapping notes
7 Tagging: IsTagged Not supported.
8 Remarketing: IsRemarketing Not supported.
9 UserInterestTargeting: IsUserInterestTargeted Not supported.
12-20 and 25-27 ExpandingDirection:
ExpandingNone,
ExpandingUp,
ExpandingDown,
ExpandingLeft,
ExpandingRight,
ExpandingUpLeft,
ExpandingUpRight,
ExpandingDownLeft,
ExpandingDownRight,
ExpandingUpOrDown,
ExpandingLeftOrRight,
ExpandingAnyDiagonal
Not supported.
28 ExpandingAction: RolloverToExpand Not supported.
30 InstreamVastVideoType: Vpaid This is indicated by setting BidResponse.seatbid.bid.apis to VPAID_1, or VPAID_2.
32 MraidType: MRAID This is indicated by setting BidResponse.seatbid.bid.apis to MRAID_1.
47 RichMediaCapabilityType: RichMediaCapabilitySSL Not supported.

This attribute is unnecessary given that SSL is required for all creatives.

70 NativeEligibility: Native Eligible Not supported.

This attribute is unnecessary because eligibility for native is based on whether the creative returned in the response is a native ad.

72 NativeEligibility: Native Not Eligible Not supported.

This attribute is unnecessary because eligibility for native is based on whether the creative returned in the response is a native ad.

105 Rendering: Sizeless AdX This is indicated by setting BidResponse.seatbid.bid.attr to RESPONSIVE.
155 Rendering: Playable This is indicated by setting BidResponse.seatbid.bid.attr to USER_INTERACTIVE.

NativeAd

Parent: Ad

Contains information about the content of a native ad. Roughly corresponds to the NativeResponse message in OpenRTB. We recommend that you review the migration notes for native ads.

Google RTB OpenRTB Notes
video_url BidResponse.seatbid.bid.{adm/adm_native}.assets.video.vasttag Nearly Equivalent.

The vasttag field can be populated with either a VAST URL or XML.

May be populated if there is an Asset with video in the native request.

video_vast_xml BidResponse.seatbid.bid.{adm/adm_native}.assets.video.vasttag Nearly Equivalent.

The vasttag field can be populated with either a VAST URL or XML.

May be populated if there is an Asset with video in the native request.

headline BidResponse.seatbid.bid.{adm/adm_native}.assets.title.text Nearly Equivalent.

May be populated if there is an Asset with title in the native request.

body BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value Nearly Equivalent.

May be populated if there is an Asset with data in the native request, where its type is DESC.

call_to_action BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value Nearly Equivalent.

May be populated if there is an Asset with data in the native request, where its type is CTATEXT.

advertiser BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value Nearly Equivalent.

May be populated if there is an Asset with data in the native request, where its type is SPONSORED.

image Message field. See Notes. See Image.

May be populated if there is an Asset with img in the native request, where its type is MAIN.

logo Message field. See Notes. See Image.

May be populated if there is an Asset with img in the native request, where its type is LOGO.

app_icon Message field. See Notes. See Image.

May be populated if there is an Asset with img in the native request, where its type is ICON.

star_rating BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value Nearly Equivalent.

OpenRTB uses a string for the rating, while the Google RTB protocol uses a double.

May be populated if there is an Asset with data in the native request, where its type is RATING.

click_link_url BidResponse.seatbid.bid.{adm/adm_native}.link.url Equivalent.
DEPRECATED_click_tracking_url BidResponse.seatbid.bid.ext.click_tracking_urls Nearly Equivalent.

The OpenRTB field is a repeated field, allowing more than one URL to be specified.

DEPRECATED_click_tracking_urls BidResponse.seatbid.bid.ext.click_tracking_urls Equivalent.
price BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value Nearly Equivalent.

May be populated if there is an Asset with data in the native request, where its type is PRICE.

Image

Parent: NativeAd

Google RTB OpenRTB Notes
url BidResponse.seatbid.bid.{adm/adm_native}.assets.img.url Equivalent.
width BidResponse.seatbid.bid.{adm/adm_native}.assets.img.w Equivalent.
height BidResponse.seatbid.bid.{adm/adm_native}.assets.img.h Equivalent.

AdSlot

Parent: Ad

Google RTB OpenRTB Notes
id BidResponse.seatbid.bid.impid Nearly Equivalent.

Google RTB represents this as an integer, whereas the OpenRTB field uses a string to represent the same value.

max_cpm_micros BidResponse.seatbid.bid.price Nearly Equivalent.

OpenRTB uses CPM of currency units, whereas Google RTB uses micro CPM.

bid_price = max_cpm_micros / 1,000,000

min_cpm_micros N/A Unsupported.

This field isn't supported in Google's OpenRTB implementation.

currency BidResponse.cur Equivalent.
billing_id BidResponse.seatbid.bid.ext.billing_id Equivalent.

Note that BidResponse.seatbid.bid.cid can also be used to specify the billing ID. However, the use of BidResponse.seatbid.bid.cid field for specifying the billing ID is deprecated and will eventually be unsupported.

deal_id BidResponse.seatbid.bid.dealid Nearly equivalent.

Google RTB represents this as an integer, whereas the OpenRTB field uses a string to represent the same value.

exchange_deal_id BidResponse.seatbid.bid.dealid Equivalent.

OpenRTB's dealid can also be used to specify deal IDs for Open Bidding exchanges.

exchange_deal_type BidResponse.seatbid.bid.ext.exchange_deal_type Equivalent.
seat_id BidResponse.seatbid.seat Equivalent.
buyer_reporting_id BidResponse.seatbid.bid.ext.buyer_reporting_id Equivalent.
third_party_buyer_token BidResponse.seatbid.bid.ext.third_party_buyer_token Equivalent.
frequency_cap Message field. See Notes. See FrequencyCap.
position_in_pod BidResponse.seatbid.bid.slotinpod Nearly Equivalent.

Google RTB represents this as an enum, whereas OpenRTB represents this as an integer. Note that the integer value does not correspond to the Google protocol enum–see IAB's documentation for more details.

bid_group_id BidResponse.seatbid.bid.ext.bid_group_id Equivalent.

FrequencyCap

Parent: AdSlot

Google RTB OpenRTB Notes
frequency_cap_id BidResponse.seatbid.bid.ext.fcap.fcap_id Equivalent.
time_unit BidResponse.seatbid.bid.ext.fcap.time_unit Equivalent.
time_range BidResponse.seatbid.bid.ext.fcap.time_range Equivalent.
max_impressions BidResponse.seatbid.bid.ext.fcap.max_imp Equivalent.

ImpressionTrackingResource

Parent: Ad

Google RTB OpenRTB Notes
script_url N/A Unsupported.

This field isn't supported in Google's OpenRTB implementation.

context N/A Unsupported.

This field isn't supported in Google's OpenRTB implementation.

verification_parameters N/A Unsupported.

This field isn't supported in Google's OpenRTB implementation.

vendor_key N/A Unsupported.

This field isn't supported in Google's OpenRTB implementation.

SdkRenderedAd

Parent: Ad

Google RTB OpenRTB Notes
id BidResponse.seatbid.bid.ext.sdk_rendered_ad.id Equivalent.
rendering_data BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data Equivalent.
declared_ad Message field. See Notes. See DeclaredAd.

DeclaredAd

Parent: SdkRenderedAd

Google RTB OpenRTB Notes
html_snippet BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad.html_snippet Equivalent.
video_url BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad.video_url Equivalent.
video_vast_xml BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad.video_vast_xml Equivalent.
native_ad Message field. See Notes. See NativeAd.

SKAdNetworkResponse

Parent: Ad

Google RTB OpenRTB Notes
version BidResponse.seatbid.bid.ext.skadn.version Equivalent.
network BidResponse.seatbid.bid.ext.skadn.network Equivalent.
campaign BidResponse.seatbid.bid.ext.skadn.campaign Nearly equivalent.

OpenRTB represents this as a string rather than an integer.

source_identifier BidResponse.seatbid.bid.ext.skadn.sourceidentifier Nearly equivalent.

OpenRTB represents this as a string rather than an integer.

itunesitem BidResponse.seatbid.bid.ext.skadn.itunesitem Equivalent.
product_page_id BidResponse.seatbid.bid.ext.skadn.productpageid Equivalent.
fidelities Message field. See Notes. See Fidelity.
nonce BidResponse.seatbid.bid.ext.skadn.nonce Equivalent.

Note that this is deprecated. Use BidResponse.seatbid.bid.ext.skadn.fidelities.nonce instead.

sourceapp BidResponse.seatbid.bid.ext.skadn.sourceapp Equivalent.
timestamp BidResponse.seatbid.bid.ext.skadn.timestamp Nearly equivalent.

OpenRTB represents this as a string rather than an integer.

signature BidResponse.seatbid.bid.ext.skadn.signature Equivalent.

Note that this is deprecated. Use BidResponse.seatbid.bid.ext.skadn.fidelities.signature instead.

skoverlay Message field. See Notes. See SKOverlay.
skadn_options Message field. See Notes. See SKAdNetworkOptions.

Fidelity

Parent: SKAdNetworkResponse

Google RTB OpenRTB Notes
fidelity_type BidResponse.seatbid.bid.ext.skadn.fidelities.fidelity Equivalent.
nonce BidResponse.seatbid.bid.ext.skadn.fidelities.nonce Equivalent.
timestamp BidResponse.seatbid.bid.ext.skadn.fidelities.timestamp Nearly equivalent.

OpenRTB represents this as a string rather than an integer. Both are a UNIX timestamp in milliseconds.

signature BidResponse.seatbid.bid.ext.skadn.fidelities.signature Equivalent.

SKOverlay

Parent: SKAdNetworkResponse

Google RTB OpenRTB Notes
delay_seconds BidResponse.seatbid.bid.ext.skadn.skoverlay.delay Equivalent.
endcard_delay_seconds BidResponse.seatbid.bid.ext.skadn.skoverlay.endcarddelay Equivalent.
dismissible BidResponse.seatbid.bid.ext.skadn.skoverlay.dismissible Equivalent.

SKAdNetworkOptions

Parent: SKAdNetworkResponse

Google RTB OpenRTB Notes
always_open_appstore BidResponse.seatbid.bid.ext.skadn.skadn_opts.always_open_appstore Equivalent.