AI-generated Key Takeaways
- 
          This page provides a catalog of fields and messages in the Google RTB Protocol's BidResponsemessage and their closest equivalents in OpenRTB.
- 
          It offers instructions to assist with the migration process from the Google RTB protocol to OpenRTB. 
- 
          Tables are used to show the mapping between Google RTB fields and their corresponding OpenRTB fields, along with relevant notes. 
- 
          Specific sections detail the mapping and notes for key components like Ad,NativeAd,Image,AdSlot, and SKAdNetwork-related messages.
- 
          Some Google RTB fields have no direct equivalent in OpenRTB or are not supported in Google's OpenRTB implementation. 
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. | 
Ad
    Parent: BidResponse
| Google RTB | OpenRTB | Notes | 
|---|---|---|
| event_notification_token | BidResponse.seatbid.bid.ext.event_notification_token.payload | The Google RTB protocol uses a bytesdata type whereas OpenRTB usesstring. Google RTB bidders using rawbytestokens must migrate
          to usingstringtokens. | 
| 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 | 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.burlBidResponse.seatbid.bid.ext.impression_tracking_url | Nearly equivalent. You can use  | 
| click_tracking_urls | BidResponse.seatbid.bid.{adm/adm_native}.link.clicktrackersBidResponse.seatbid.bid.ext.click_tracking_urls | Equivalent. Use  | 
| ad_choices_destination_url | BidResponse.seatbid.bid.{adm/adm_native}.privacy | 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.apistoVPAID_1, orVPAID_2. | 
| 32 | MraidType: MRAID | This is indicated by setting BidResponse.seatbid.bid.apistoMRAID_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.attrtoRESPONSIVE. | 
| 155 | Rendering: Playable | This is indicated by setting BidResponse.seatbid.bid.attrtoUSER_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  May be populated if there is an  | 
| video_vast_xml | BidResponse.seatbid.bid.{adm/adm_native}.assets.video.vasttag | Nearly Equivalent. The  May be populated if there is an  | 
| headline | BidResponse.seatbid.bid.{adm/adm_native}.assets.title.text | Nearly Equivalent. May be populated if there is an  | 
| body | BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value | Nearly Equivalent. May be populated if there is an  | 
| call_to_action | BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value | Nearly Equivalent. May be populated if there is an  | 
| advertiser | BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value | Nearly Equivalent. May be populated if there is an  | 
| image | Message field. See Notes. | See Image. May be populated if there is an  | 
| logo | Message field. See Notes. | See Image. May be populated if there is an  | 
| app_icon | Message field. See Notes. | See Image. May be populated if there is an  | 
| 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  | 
| click_link_url | BidResponse.seatbid.bid.{adm/adm_native}.link.url | Equivalent. | 
| DEPRECATED_click_tracking_url | BidResponse.seatbid.bid.{adm/adm_native}.link.clicktrackers | Nearly Equivalent. The OpenRTB field is a repeated field, allowing more than one URL to be specified. | 
| DEPRECATED_click_tracking_urls | BidResponse.seatbid.bid.{adm/adm_native}.link.clicktrackers | Equivalent. | 
| price | BidResponse.seatbid.bid.{adm/adm_native}.assets.data.value | Nearly Equivalent. May be populated if there is an  | 
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. 
 | 
| 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  | 
| 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  | 
| 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
             | 
| 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
             | 
| 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. |