BidRequest Migration

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

Google RTB OpenRTB Notes
id BidRequest.id The Google RTB id has type bytes, while the OpenRTB id is a base64-encoded string.
ip BidRequest.device.ip
BidRequest.device.ipv6
Nearly equivalent.

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 Equivalent.
cookie_version N/A Unsupported.

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

cookie_age_seconds N/A Unsupported.

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

hosted_match_data BidRequest.user.buyeruid Nearly equivalent.

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 Equivalent.
publisher_provided_id BidRequest.user.eids.uids.id Nearly equivalent.

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.

publisher_first_party_id Message field. See Notes. See PublisherFirstPartyId.
user_agent BidRequest.device.ua Equivalent.

Note that this data is subject to generalization in both protocols.

privacy_treatments Message field. See Notes. See PrivacyTreatments.
segment_data Message field. See Notes. See SegmentData.
user_agent_data Message field. See Notes. See UserAgent.
publisher_country BidRequest.site.publisher.ext.country
BidRequest.app.publisher.ext.country
Equivalent.

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

Mapping depends on whether the bid request originates from an app or website.

inventory_partner_domain BidRequest.site.ext.inventorypartnerdomain
BidRequest.app.ext.inventorypartnerdomain
Equivalent.

Mapping depends on whether the bid request originates from an app or website.

geo_criteria_id BidRequest.device.geo.ext.geo_criteria_id Equivalent.
geo Message field. See Notes. See Geo.
postal_code BidRequest.device.geo.zip Equivalent.
postal_code_prefix N/A Unsupported.

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

encrypted_hyperlocal_set N/A Unsupported.

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 N/A Unsupported.

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 Equivalent.
user_list N/A Unsupported.

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

Mapping depends on whether the bid request originates from an app or website.

seller_network_id N/A Unsupported.

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

partner_id N/A Unsupported.

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

url BidRequest.app.content.url
BidRequest.site.page
Equivalent.

Mapping depends on whether the bid request originates from an app or website.

is_semi_transparent_request BidRequest.site.ext.is_semi_transparent_request Equivalent.
detected_language BidRequest.app.content.language
BidRequest.site.content.language
Equivalent.

Mapping depends on whether the bid request originates from an app or website.

detected_vertical N/A Unsupported.

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

detected_content_label N/A Unsupported.

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

production_quality BidRequest.app.content.prodq
BidRequest.site.content.prodq
Equivalent.

Mapping depends on whether the bid request originates from an app or website.

content_rating BidRequest.app.content.contentrating
BidRequest.site.content.contentrating
Nearly equivalent.

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 Equivalent.
auction_type BidRequest.at Equivalent.

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.

device Message field. See Notes. See Device.
key_value N/A Unsupported.

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

mobile Message field. See Notes. See Mobile.
video Message field. See Notes. See Video.
publisher_settings_list_id BidRequest.imp.ext.publisher_settings_list_id Nearly equivalent.

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 N/A Unsupported.

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

page_visibility BidRequest.site.ext.page_visibility Equivalent.
user_activation Message field. See Notes. See UserActivation.
navigation_type BidRequest.site.ext.ntype Equivalent.
adslot Message field. See Notes. See Adslot.
bid_response_feedback Message field. See Notes. See BidResponseFeedback.
response_deadline_ms BidRequest.tmax Equivalent.
is_test BidRequest.test Equivalent.
is_ping N/A Unsupported.

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

is_predicted_to_be_ignored N/A Unsupported.

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

supply_chain Message field. See Notes. See SupplyChain.
frequency_capping_scope BidRequest.ext.fcap_scope Equivalent.
dsa Message field. See Notes. See Dsa.

PublisherFirstPartyId

Parent: BidRequest

Google RTB OpenRTB Notes
id_type BidRequest.user.eids.uid.ext.stype Nearly equivalent.

The Google RTB protocol's id_type field only has a SITE_SCOPED_COOKIE value. OpenRTB's stype field is equivalent when set to "fpc".

id BidRequest.user.eids.uids.id Nearly equivalent.

The meaning of OpenRTB's field depends on the value of the stype extension. When set to "fpc", it refers to a publisher first-party (site-scoped) cookie.

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 BidRequest.user.data.id Equivalent.
segment Message field. See Notes. See Segment.
type

BidRequest.user.data.ext.segtax
BidRequest.site.content.data.ext.segtax
BidRequest.app.content.data.ext.segtax

Equivalent.

Segment

Parent: SegmentData

Google RTB OpenRTB Notes
id

BidRequest.user.data.segment.id
BidRequest.site.content.data.segment.id
BidRequest.app.content.data.segment.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.geo.lat Equivalent.
lon BidRequest.geo.lon Equivalent.
country BidRequest.geo.country Equivalent.
region BidRequest.geo.region Equivalent.
metro BidRequest.geo.metro Equivalent.
city BidRequest.geo.city Equivalent.
zip BidRequest.geo.zip Equivalent.
accuracy BidRequest.geo.accuracy Equivalent.
utcoffset BidRequest.geo.utcoffset Equivalent.

Device

Parent: BidRequest

Google RTB OpenRTB Notes
device_type BidRequest.device.devicetype Nearly equivalent.

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

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 Equivalent.
model BidRequest.device.model Equivalent.
os_version Message field. See Notes. See OsVersion.
carrier_id BidRequest.device.carrier Nearly equivalent.

OpenRTB uses a string for the carrier ID, while the Google RTB protocol uses an integer.

screen_width BidRequest.device.w Equivalent.
screen_height BidRequest.device.h Equivalent.
screen_pixel_ratio_millis BidRequest.device.pxratio Nearly equivalent.

pxratio = screen_pixel_ratio_millis / 1,000

screen_orientation N/A Unsupported.

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 Equivalent
limit_ad_tracking BidRequest.device.lmt Equivalent.
app_tracking_authorization_status BidRequest.device.ext.atts Nearly equivalent.

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

OsVersion

Parent: Device

Google RTB OpenRTB Notes
major BidRequest.device.osv Nearly equivalent.

OpenRTB concatenates the major, minor, and micro version numbers into a single string. For example, if the string were "1.0.2", major would be set to 1.

minor BidRequest.device.osv Nearly equivalent.

OpenRTB concatenates the major, minor, and micro version numbers into a single string. For example, if the string were "1.0.2", minor would be set to 0.

micro BidRequest.device.osv Nearly equivalent.

OpenRTB concatenates the major, minor, and micro version numbers into a single string. For example, if the string were "1.0.2", micro would be set to 2.

Mobile

Parent: BidRequest

Google RTB OpenRTB Notes
is_app BidRequest.app Nearly equivalent.

OpenRTB's BidRequest.app field is an object providing information about the publisher's app. Its presence is equivalent to is_app being set to True.

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 BidRequest.device.ifa instead.

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 BidRequest.device.dpimd5 instead.

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

Google RTB OpenRTB Notes
placement BidRequest.imp.video.placement Nearly equivalent.

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 Equivalent.
inferred_plcmt BidRequest.imp.video.ext.inferredplcmt Equivalent.
description_url BidRequest.site.content.producer.domain
BidRequest.app.content.producer.domain
Nearly equivalent.

OpenRTB only includes the domain, not the full URL.

is_embedded_offsite N/A Unsupported.

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

Note that this can still be determined if the domain in BidRequest.{app/site}.content.producer.domain differs from the domain in BidRequest.{app/site}.content.url.

playback_method BidRequest.imp.video.playbackmethod Nearly Equivalent.

The OpenRTB PlaybackMethod enum contains an additional (currently) unused CONTINUOUS enum name. Otherwise, the enum names and values are identical.

is_clickable N/A Unsupported.

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

The Google RTB protocol represents this in milliseconds, whereas OpenRTB uses seconds.

max_ad_duration Non-native video:
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.

Nearly equivalent.

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 Non-native video:
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.

Nearly equivalent.

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 Equivalent.
max_pod_duration_seconds BidRequest.imp.video.poddur Equivalent.
video_ad_skippable BidRequest.imp.video.skip Nearly equivalent.

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 Non-trivial updates required.

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 Non-native video:
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.

Nearly equivalent.

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 Non-native video:
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.

Nearly equivalent.

The Google RTB protocol represents these with an enum, whereas OpenRTB uses a string.

companion_slot Message field. See Notes. See CompanionSlot.
end_cap_support BidRequest.imp.{video/audio}.companionad.vcm Nearly equivalent.

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_ENABLEDFalse
  • END_CAP_OPTIONALTrue
content_attributes.duration_seconds BidRequest.{site/app}.content.len Equivalent.
is_livestream BidRequest.{site/app}.content.livestream Equivalent.
playback_cessation_mode BidRequest.imp.video.playbackend Equivalent.

CompanionSlot

Parent: Video

Google RTB OpenRTB Notes
height BidRequest.imp.{video/audio}.companionad.h
BidRequest.imp.{video/audio}.companionad.format.h
Nearly equivalent.

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

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

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.

Google RTB OpenRTB Notes
id BidRequest.imp.id Nearly equivalent.

The Google RTB protocol represents this as an integer, whereas OpenRTB uses string.

ad_block_key BidRequest.imp.tagid Equivalent.
width BidRequest.imp.banner.w
BidRequest.imp.banner.format.w
BidRequest.imp.native.{request/request_native}.assets.video.w
BidRequest.imp.video.w
Nearly equivalent.

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

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.

flexible_adslot_settings Message field. See Notes. See FlexibleAdSlotSettings.
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
Non-trivial updates required.

See Excluded Attributes for more details.

allowed_vendor_type BidRequest.imp.ext.allowed_vendor_type Equivalent.
consented_providers_settings Message field. See Notes. See ConsentedProvidersSettings.
regs_gdpr BidRequest.regs.ext.gdpr Equivalent.
regs_lgpd BidRequest.regs.ext.lgpd Equivalent.
gpp_consent_string BidRequest.regs.gpp Equivalent.
gpp_section_ids BidRequest.regs.gpp_sid Nearly equivalent.

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 Non-trivial updates required.

See Ad Categories for more details.

allowed_restricted_category BidRequest.imp.ext.allowed_restricted_category Equivalent.
allowed_restricted_category_for_deals BidRequest.imp.ext.allowed_restricted_category Equivalent.

Note that allowed restricted categories for deals and the open auction are identical.

allowed_languages BidRequest.user.wlang Nearly equivalent.

Google RTB Protocol refers to languages differently than OpenRTB, which uses ISO 639-1.

excluded_product_category BidRequest.bcat Non-trivial updates required.

See Ad Categories for more details.

excluded_app_ids BidRequest.bapp Equivalent.
excluded_creatives Message field. See Notes. See ExcludedCreative.
only_deal_bids_accepted BidRequest.imp.pmp.private_auction Equivalent.
matching_ad_data Message field. See Notes. See MatchingAdData.
blocked_seat_ids BidRequest.wseat Equivalent.
allowed_seat_ids BidRequest.bseat Equivalent.
publisher_settings_list_id BidRequest.imp.ext.publisher_settings_list_id Nearly equivalent.

In OpenRTB, this is the concatenation of Google protocol's BidRequest.publisher_settings_list_id and BidRequest.adslot.publisher_settings_list_id.

exchange_bidding Message field. See Notes.

Unsupported.

The ExchangeBidding message and its contents have no equivalents in OpenRTB.

open_bidding Message field. See Notes. See OpenBidding.
ad_unit_mapping Message field. See Notes. See AdUnitMapping.
creative_enforcement_settings Message field. See Notes. See CreativeEnforcementSettings.
dfp_ad_unit_code BidRequest.imp.ext.dfp_ad_unit_code Equivalent.

This field will only be populated for Open Bidding partners.

slot_visibility BidRequest.imp.banner.pos
BidRequest.imp.video.pos
Nearly equivalent for banner and video ads.

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

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

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

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

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 N/A Unsupported.

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

native_ad_template Message field. See Notes. See NativeAdTemplate.
native_placement_type BidRequest.imp.native.{request/request_native}.plcmttype Nearly equivalent.

The Google RTB Protocol and OpenRTB use identical integer values, however the Protobuf OpenRTB format uses shortened enum names.

mediation_status N/A Unsupported.

This field has been deprecated and is no longer populated. It won't be supported in Google's OpenRTB implementation.

auto_refresh Message field. See Notes. See AutoRefresh.
sticky_settings Message field. See Notes. See StickySettings.
non_browser_slot_source N/A Unsupported.

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

renderer BidRequest.imp.displaymanager Nearly equivalent.

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 N/A Unsupported.

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

is_amp_page BidRequest.site.ext.amp Nearly equivalent.

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

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 Equivalent.
allowed_ad_types N/A Unsupported.

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

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

secure_signals Message field. See Notes. See SecureSignal.
api BidRequest.imp.{banner/video/audio/native}.api Nearly equivalent.

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

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.

billable_event_rate_bid_adjustment Message field. See Notes. See BillableEventRateBidAdjustment.
omidpn BidRequest.source.ext.omidpn Equivalent.
omidpv BidRequest.source.ext.omidpv Equivalent.
auction_environment BidRequest.imp.ext.auction_environment Equivalent.

Both the Google RTB protocol and OpenRTB fields are deprecated. Use BidRequest.imp.ext.ae instead.

supported_auction_environment BidRequest.imp.ext.ae Equivalent.
impression_expiration_seconds BidRequest.imp.exp Equivalent.
display_manager BidRequest.imp.displaymanager Equivalent.
display_manager_version BidRequest.imp.displaymanagerver Equivalent.

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:

.
Google RTB Attribute ID Meaning OpenRTB equivalent / notes
7 Tagging: IsTagged Not supported.
8 Remarketing: IsRemarketing Not supported.
9 UserInterestTargeting: IsUserInterestTargeted Not supported.
13 - 20 ExpandingDirection:
ExpandingUp,
ExpandingDown,
ExpandingLeft,
ExpandingRight.
ExpandingUpLeft,
ExpandingUpRight,
ExpandingDownLeft,
ExpandingDownRight
Not supported.
21 CreativeType: Html In cases where Google RTB protocol sets excluded_attribute to 21, OpenRTB wouldn't populate BidRequest.imp.banner.
22 CreativeType: VastVideo In cases where Google RTB protocol sets excluded_attribute to 22, OpenRTB wouldn't populate BidRequest.imp.video.
25 - 27 ExpandingDirection:
ExpandingUpOrDown,
ExpandingLeftOrRight,
ExpandingAnyDiagonal
Not supported.
28 ExpandingAction: RolloverToExpand Not supported.
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 Not supported.

Flash is not a supported creative format.

39 RichMediaCapabilityType: RichMediaCapabilityHTML5 Not supported.
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 In cases where Google RTB protocol sets excluded_attribute to 70, OpenRTB wouldn't populate BidRequest.imp.native.
72 NativeEligibility: Native Not Eligible In cases where Google RTB protocol sets 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_width BidRequest.imp.banner.hmax Equivalent.

The OpenRTB field is supported, but considered deprecated. We recommend using BidRequest.imp.banner.format instead.

max_height BidRequest.imp.banner.wmax Equivalent.

The OpenRTB field is supported, but considered deprecated. We recommend using BidRequest.imp.banner.format instead.

min_width BidRequest.imp.banner.hmin Equivalent.

The OpenRTB field is supported, but considered deprecated. We recommend using BidRequest.imp.banner.format instead.

min_height BidRequest.imp.banner.banner.wmin Equivalent.

The OpenRTB field is supported, but considered deprecated. We recommend using BidRequest.imp.banner.format instead.

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

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 BidRequest.imp.bidfloorcur, which is applied to all buyers.

bidfloor = minimum_cpm_micros / 1,000,000

direct_deal Message field. See Notes. See DirectDeal.

DirectDeal

Parent: MatchingAdData

Google RTB OpenRTB Notes
direct_deal_id BidRequest.imp.pmp.deal.id Nearly equivalent.

The Google RTB protocol represents this as an integer, whereas OpenRTB uses string.

fixed_cpm_micros BidRequest.imp.pmp.deal.bidfloor 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.

bidfloor = fixed_cpm_micros / 1,000,000

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.

deal_type BidRequest.imp.pmp.deal.ext.deal_type Equivalent.
publisher_blocks_overridden BidRequest.imp.pmp.deal.ext.publisher_blocks_overridden Equivalent.
creative_source BidRequest.imp.pmp.deal.ext.creative_source Nearly equivalent.

The Google RTB protocol and OpenRTB fields are represented with an identical enum.

must_bid BidRequest.imp.pmp.deal.ext.must_bid Equivalent.
creative_constraints Message field. See Notes. See CreativeConstraints.

CreativeConstraints

Parent: DirectDeal

Google RTB OpenRTB Notes
allowed_ad_types BidRequest.imp.pmp.deal.ext.creative_constraints.mtypes Nearly equivalent.

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.deal.ext.creative_constraints.skippability Equivalent.
max_ad_duration_ms BidRequest.imp.pmp.deal.ext.creative_constraints.maxduration Nearly equivalent.

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 assets, which are required if its required field is set to True.

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 assets, which are recommended if its required field is set to False.

headline_max_safe_length BidRequest.imp.native.{request/request_native}.assets.title.len Equivalent.

The Google RTB protocol's HEADLINE component is equivalent to OpenRTB's Title asset.

body_max_safe_length BidRequest.imp.native.{request/request_native}.assets.data.len Equivalent.

The Google RTB protocol's BODY component is equivalent to OpenRTB's Data asset with its type set to DESC.

call_to_action_max_safe_length BidRequest.imp.native.{request/request_native}.assets.data.len Equivalent.

The Google RTB protocol's CALL_TO_ACTION component is equivalent to OpenRTB's Data asset with its type set to CTATEXT.

advertiser_max_safe_length BidRequest.imp.native.{request/request_native}.assets.data.len Equivalent.

The Google RTB protocol's ADVERTISER component is equivalent to OpenRTB's Data asset with its type set to SPONSORED.

price_max_safe_length BidRequest.imp.native.{request/request_native}.assets.data.len Equivalent.

The Google RTB protocol's PRICE component is equivalent to OpenRTB's Data asset with its type set to PRICE.

image_width BidRequest.imp.native.{request/request_native}.assets.img.width Equivalent.

The Google RTB protocol's IMAGE component is equivalent to OpenRTB's Image asset with its type set to MAIN.

image_height BidRequest.imp.native.{request/request_native}.assets.img.height Equivalent.

The Google RTB protocol's IMAGE component is equivalent to OpenRTB's Image asset with its type set to MAIN.

logo_width BidRequest.imp.native.{request/request_native}.assets.img.width Equivalent.

The Google RTB protocol's LOGO component is equivalent to OpenRTB's Image asset with its type set to LOGO.

logo_height BidRequest.imp.native.{request/request_native}.assets.img.height Equivalent.

The Google RTB protocol's LOGO component is equivalent to OpenRTB's Image asset with its type set to LOGO.

app_icon_width BidRequest.imp.native.{request/request_native}.assets.img.width Equivalent.

The Google RTB protocol's APP_ICON component is equivalent to OpenRTB's Image asset with its type set to APP_ICON.

app_icon_height BidRequest.imp.native.{request/request_native}.assets.img.height Equivalent.

The Google RTB protocol's APP_ICON component is equivalent to OpenRTB's Image asset with its type set to APP_ICON.

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.
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 N/A Unsupported.

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

AutoRefreshSettings

Parent: AutoRefresh

Google RTB OpenRTB Notes
refresh_type N/A Unsupported.

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

min_refresh_interval_seconds N/A Unsupported.

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

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 SIDEBAR it is equivalent to when vertical_stickiness is True.

OpenRTB's pos field also maps to Google RTB protocol's BidRequest.adslot.slot_visibility.

top_horizontal_stickiness BidRequest.imp.banner.pos Nearly equivalent.

The OpenRTB field is an enum that represents several possible ad positions. When set to HEADER it is equivalent to when top_horizontal_stickiness is True.

OpenRTB's pos field also maps to Google RTB protocol's BidRequest.adslot.slot_visibility.

bottom_horizontal_stickiness BidRequest.imp.banner.pos Nearly equivalent.

The OpenRTB field is an enum that represents several possible ad positions. When set to FOOTER it is equivalent to when bottom_horizontal_stickiness is True.

OpenRTB's pos field also maps to Google RTB protocol's BidRequest.adslot.slot_visibility.

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.
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 dsa extension more closely matches the IAB spec, so it doesn't include the DSA_SUPPORT_UNKNOWN enum value. As a result, integer mappings for the remaining enum names are different.

publisher_rendering_support BidRequest.regs.ext.dsa.pubrender Nearly equivalent.

The OpenRTB dsa extension more closely matches the IAB spec, so it doesn't include the PUBLISHER_RENDERING_SUPPORT_UNKNOWN enum value. As a result, integer mappings for the remaining enum names are different.

data_to_publisher BidRequest.regs.ext.dsa.datatopub Nearly equivalent.

The OpenRTB dsa extension more closely matches the IAB spec, so it doesn't include the DATA_TO_PUBLISHER_UNKNOWN enum value. As a result, integer mappings for the remaining enum names are different.