View raw content Back to Reference page
// Open beta protocol version : v .203 import "openrtb.proto" ; option java_outer_classname = "AdxExt" ; package com . google . doubleclick ; import "google/protobuf/struct.proto" ; // Protocol buffer for Ad Exchange OpenRTB specification . message ImpExt { // The eligible billing IDs to which a billable impression can be attributed . // A billing ID for attributing an impression resulting from a winning bid can // be specified in ` BidResponse . seatbid . bid . ext . billing_id ` . These billing IDs // can represent the bidder 's matching pretargeting configurations, the // bidder 's deal billing ID, or eligible child seats. // [ AdX : BidRequest . AdSlot . MatchingAdData . billing_id ] repeated int64 billing_id = 1 ; // [ AdX : BidRequest . publisher_settings_list_id ] // [ AdX : BidRequest . AdSlot . publisher_settings_list_id ] repeated fixed64 publisher_settings_list_id = 2 ; // [ AdX : BidRequest . AdSlot . allowed_vendor_type ] repeated int32 allowed_vendor_type = 3 [ packed = true ]; // A creative that is disallowed to bid on this impression due to Ad // Exchange policies or creative disapproval , excluded creative attributes , // excluded product or sensitive categories , allowed vendor types , // restricted categories or languages applicable to the bid request . message ExcludedCreative { // Buyer creative ID of the disallowed creative . optional string buyer_creative_id = 1 ; } // Creatives that are disallowed for the impression . Submitting a bid with // one of the creatives in this list will result in such bid being filtered // before the auction . Contact your account manager if you would like // to enable this feature . repeated ExcludedCreative excluded_creatives = 10 ; // [ AdX : BidRequest . AdSlot . dfp_ad_unit_code ] optional string dfp_ad_unit_code = 6 ; // Deprecated . This will be removed in July 2023. Use the standard field // BidRequest . imp . rwdd instead . // [ AdX : BidRequest . AdSlot . is_rewarded ] optional bool is_rewarded_inventory = 7 [ deprecated = true ]; // Possible requirement types for AMP ads . enum AmpAdRequirementType { // AMP ad requirements unknown . UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 1 ; // AMP ads are not allowed . AMP_AD_NOT_ALLOWED = 2 ; // Either AMP ads or non - AMP ads are allowed ; // AMP ads are not early rendered . AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED = 3 ; // Either AMP ads or non - AMP ads are allowed ; // AMP ads are early rendered . AMP_AD_ALLOWED_AND_EARLY_RENDERED = 4 ; // AMP ads are required . // Ads that are non - AMP may be rejected by the publisher . AMP_AD_REQUIRED = 5 ; } optional AmpAdRequirementType ampad = 8 [ default = UNKNOWN_AMP_AD_REQUIREMENT_TYPE ]; // Secure signals passed by the publisher . message BuyerGeneratedRequestData { // The source ( provider ) of the signal . oneof source { SourceApp source_app = 1 ; } // The source of the signal when this request is from an app . message SourceApp { // Identifier for the SDK that generated this data . It will match the id // in BidRequest . app . ext . installed_sdk . id . optional string id = 1 ; } // The secure signal . optional string data = 2 ; } repeated BuyerGeneratedRequestData buyer_generated_request_data = 9 ; // Deprecated . This will be removed in Q1 2024. This field has been // deprecated in favor of the repeated field // ` billable_event_rate_bid_adjustment ` below . // For ads rendered using a custom SDK only : multiplier applied to bid in // the auction . The adjustment reflects the likelihood that your bid would // generate a billable event ( meaning the ad renders successfully ) if it // won the auction , relative to the probability that other bids generate a // billable event if they won the auction . This adjustment can be larger or // smaller than 1. This affects the final ranking in the auction only ; in // particular , this multiplier does not affect the payment . optional double billable_event_rate_adjustment = 16 [ deprecated = true , default = 1 ]; // The billable event rate bid adjustment of an ad and the dependent // features of the ad the adjustment applies to , such as the format or the // SDK used to render the ad . Each feature combination may have a unique // adjustment , each adjustment therefore specifies which SDK or creative // format it applies to . message BillableEventRateBidAdjustment { // A multiplier to your bid to adjust for the likelihood that your bid // would result in a billable event ( namely , the ad renders successfully ) // if it won the auction , relative to the average probability that bids // from other buyers would result in a billable event if they won the // auction . This adjustment can be larger or smaller than 1. This affects // the final ranking in the auction only ; in particular , this multiplier // does not affect the payment or whether the bid clears any floor price . optional float bid_adjustment = 1 [ default = 1 ]; // The types of creative the bid adjustments can apply to . enum CreativeType { CREATIVE_TYPE_UNKNOWN = 0 ; // Banner ads HTML_SNIPPET = 1 ; // VAST video or audio ads VIDEO_VAST = 2 ; // Native ads NATIVE = 3 ; // SDK rendered ad SDK_RENDERED = 4 ; } // The type of ads to which the above bid adjustment applies to . Each type // corresponds to different ways of how the ad 's creative is specified, as // described in // https : // developers . google . com / authorized - buyers / rtb / response - guide #specify-creative. // If the ad is SDK - rendered , this will be set to SDK_RENDERED regardless // of the actual creative type . optional CreativeType creative_type = 2 [ default = CREATIVE_TYPE_UNKNOWN ]; // The SDK used to render the ad with . The SDK ID will match the one sent // in BidRequest . app . ext . installed_sdk . id . This field is not set for Google // SDK . optional AppExt . InstalledSdk sdk = 3 ; } // A list of billable event rate bid adjustments applicable to the request // and the ad features associated to the adjustment . Bid adjustments are // listed here only if they are not equal to 1.0 , which is equivalent to // having no adjustment . This field replaces the deprecated field // billable_event_rate_adjustment . repeated BillableEventRateBidAdjustment billable_event_rate_bid_adjustment = 65 ; // Parameters related to Open Bidding . message OpenBidding { // This field is set to true if the publisher set up a yield group or a // mediation group that targets this adslot and this bidder . See // https : // support . google . com / admanager / answer / 7128453 for information on // Open Bidding and its effects on the bidding process . optional bool is_open_bidding = 2 ; } optional OpenBidding open_bidding = 12 ; // The allowed restricted ad categories . See // https : // storage . googleapis . com / adx - rtb - dictionaries / ad - restricted - categories . txt // for a list of ids . If you bid with an ad in a restricted category , you MUST // ALWAYS declare the category in the bid response regardless of the values in // this field . repeated int32 allowed_restricted_category = 13 ; // Publisher 's SKAdNetwork information to support app installation // attribution for iOS 14 and later . Apple 's SKAdNetwork API helps // advertisers measure ad - driven app installation by sending a postback // to the ad network after a successful install . Publishers will need // to configure supported ad networks in their app 's property list // ( Info . plist ) to allow an install to be attributed to the ad impression . // For more info visit : // https : // developer . apple . com / documentation / storekit / skadnetwork message SKAdNetworkRequest { // List of all SKAdNetwork versions supported by the request , depending on // the OS version and the SDK version . repeated string versions = 4 ; // ID of publisher app in Apple 's App Store. optional string sourceapp = 2 ; // SKAdNetworkIdentifier entries in the publisher app 's Info.plist. repeated string skadnetids = 3 ; // List of fidelity types supported , depending on the SKAdNetwork API // version supported by the operating system and SDK as well as ad slot // properties . repeated SKAdNetworkFidelityType fidelities = 5 [ packed = true ]; // Indicates if this request supports SKOverlay . optional bool skoverlay = 6 ; } // [ AdX : BidRequest . Mobile . skadn ] optional SKAdNetworkRequest skadn = 14 ; // Indicates the creative policy and publisher blocks that applies to this // request . message CreativeEnforcementSettings { // Creative policy enforcement level that applies to this request . // Creatives that don 't adhere to the specified policy will be filtered // before the auction . The status of the creatives with their respective // policies can be retrieved through Creative API . // https : // developers . google . com / authorized - buyers / apis / guides / rtb - api / creatives // Bids on deals may override the policy enforcement applicable to the // request . enum PolicyEnforcement { POLICY_ENFORCEMENT_UNKNOWN = 0 ; // Baseline policy for all ads serving through any of Google 's ads // platform products . Learn more at : // https : // support . google . com / platformspolicy / answer / 3013851. // The status of the creatives with platform policies can be found at // the platformPolicyCompliance field through the Creative API . POLICY_ENFORCEMENT_PLATFORM_POLICY = 1 ; // Policy for ads serving through Google 's ad network. This includes the // baseline policy for all ads serving through any of Google 's ads // platform products . Learn more at : // https : // support . google . com / authorizedbuyers / answer / 1325008. // The status of the creatives with platform policies can be found at // the platformPolicyCompliance field through the Creative API . POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY = 2 ; } optional PolicyEnforcement policy_enforcement = 1 ; // Creative publisher blocks enforcement level that applies to this // request . Publisher blocks allow publishers to control which creatives // can be shown on their properties . // Deals may also override publisher blocks . Refer to // Deals . ext . publisher_blocks_overridden field . enum PublisherBlocksEnforcement { PUBLISHER_BLOCKS_ENFORCEMENT_UNKNOWN = 0 ; // The publisher 's blocking controls are enforced on creatives // submitted . Publisher blocks enforcement settings are provided in the // following fields : // - Imp . ext . publisher_settings_list_id // - bcat // - Imp . ext . allowed_restricted_category // - Imp . ext . allowed_vendor_type // - Audio . battr // - Video . battr // - Banner . battr // - Native . battr PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES = 1 ; // The publisher 's blocking controls are not enforced on creatives // submitted . PUBLISHER_BLOCKS_ENFORCEMENT_OVERRIDDEN = 2 ; } optional PublisherBlocksEnforcement publisher_blocks_enforcement = 3 ; } optional CreativeEnforcementSettings creative_enforcement_settings = 15 ; // Describes the environment where the ad auction is run . enum AuctionEnvironment { // The auction determining the winning ad is held server - side . SERVER_SIDE_AUCTION = 0 ; // The contextual auction that determines a winning contextual bid is held // server - side , and bidding functions are run on the device to determine // interest group bids . Both the winning contextual bid and interest // group bids are entered into a final auction held on the device to // select the winning ad . For more information regarding the Protected // Audience API on device bidding and auction , see : // https : // github . com / WICG / turtledove and // https : // github . com / WICG / turtledove / blob / main / FLEDGE . md ON_DEVICE_INTEREST_GROUP_AUCTION = 1 ; // The contextual auction that determines a top - ranked contextual bid is // held server - side , and the bidding logic to determine interest group // bids and the scoring logic to determine the final winning ad among // interest group bids and the top contextual bid runs are executed in // Bidding and Auction servers . See more detail in // https : // github . com / privacysandbox / fledge - docs / blob / main / bidding_auction_services_api . md SERVER_SIDE_INTEREST_GROUP_AUCTION = 3 ; } // Specifies where the ad auction runs . // Deprecated . This will be removed in November , 2023. Use ae instead . optional AuctionEnvironment auction_environment = 18 [ deprecated = true , default = SERVER_SIDE_AUCTION ]; // The supported auction environment for this impression . For inventory // which does not support interest group bidding , this will always be set to // SERVER_SIDE_AUCTION . For inventory which does support interest group // bidding , this will be set to ON_DEVICE_INTEREST_GROUP_AUCTION . Note that // this only indicates that the interest group auction is supported , not // that it is guaranteed to execute . If no buyer chooses to participate in // the interest group auction , then the interest group auction will be // skipped and the winner of the contextual auction , if any , will be // served instead . optional AuctionEnvironment ae = 66 [ default = SERVER_SIDE_AUCTION ]; // Indicates whether interest group bidding is allowed for the bidder . // Depending on account settings and other factors , a bidder might be // disallowed from submitting interest group bids , even though an interest // group auction may ultimately decide the winning ad . optional bool igbid = 21 ; // Experimental feature ; may be subject to change . // Reach out to your account manager to use Protected Audience API . // // When interest group bidding is allowed for the bidder ( igbid = true ), // this object contains information about the on - device auction . message InterestGroupAuction { // The adslot size ( width and height in pixels ) for the Protected Audience // API on - device interest group bids . The on - device interest group winning // bid will be expected to fill this slot size . // // Note that this size may be different from the sizes for the contextual // request ( described by imp . banner . w and imp . banner . h or by // imp . banner . format ) . The contextual request may allow multiple sizes ; // however , the on - device auction is expected to fill only a single fixed // slot size . optional int32 w = 1 ; optional int32 h = 2 ; // Indicates whether the winner of the interest group auction will be // rendered . If true , then the on - device auction winner will be rendered // and the impression can be billable . If false , the top - ranked contextual // bid will be rendered , and the on - device auction winner will be ignored // and not result in a rendered , billable impression . optional bool render_interest_group_ads = 3 ; // Indicates whether the on - device auction for the current request was // parallelized . // // To learn more about parallelized auctions , see // https : // developers . google . com / authorized - buyers / rtb / protected - audience - api #parallelization optional bool parallelized = 4 ; // Interest group buyer - specific information related to parallelized // Protected Audience API auctions . message ParallelAuctionBuyer { // The origin of the interest group buyer which was included // in the parallelized auction . // // If a ParallelAuctionBuyer entry for a particular origin is // included in the ` pbuyer ` list , then that origin was // included in the parallelized auction and a corresponding buyer // trusted server call was made for that origin . If a buyer // origin is not included but ` parallelized ` is true , then it cannot // participate in the current client - side auction . However , bidders can // indicate interest in participating in future Protected Audience API // auctions by including valid InterestGroupBuyer ( s ) in // ` BidResponse . ext . igbid . igbuyer ` . Those interest group buyers will be // eligible for future parallelized requests from the same browser // instance and domain . optional string origin = 1 ; } // Parallel auction data for each of the bidder 's interest group buyer(s) // that was included in the current request 's parallel auction. repeated ParallelAuctionBuyer pbuyer = 5 ; // Allowed creative markup types for interest group bids . This may be a // subset of the allowed creative markup types for contextual bids , as // indicated by the presence of the Banner , Native , Video , or Audio bid // request objects , because interest group bidding may support fewer ad // formats than contextual bidding in some cases . repeated . com . google . openrtb . CreativeMarkupType mtypes = 6 [ packed = true ]; } optional InterestGroupAuction interest_group_auction = 20 ; // Indicates whether a mobile app bid request is for an app open ad . // See App open ad guidance at // https : // support . google . com / admob / answer / 9341964 for more information . // [ AdX : BidRequest . Mobile . is_app_open_ad ] optional bool is_app_open_ad = 19 ; // AdUnitMapping is used to identify publisher inventory units in the // bidder 's namespace. The mappings are only populated when // the bidder works directly with a publisher , and provides the mapping // from Google 's ad unit namespace to the bidder' s inventory namespace . // The ad unit mapping is only applicable for requests that use a custom // SDK . https : // support . google . com / admanager / answer / 9601810. message AdUnitMapping { // Key - value pair used to specify the inventory unit in the bidder 's // namespace . message Keyval { // The key is the name of the bidder 's inventory unit identifier for the // SDK . optional string key = 1 ; // The value of the bidder 's inventory unit identifier for the given // format . optional string value = 2 ; } // Multiple key - value pairs can be specified in order to support // bidders whose inventory unit space is hierarchical and has multiple // identifiers . The key - value pairs for the chosen AdUnitMapping should be // sent back in the bid response as // BidResponse . seatbid . bid . ext . sdk_rendered_ad . sdk_params . This is passed to // the bidder 's SDK. repeated Keyval keyvals = 1 ; // Possible ad unit formats that can be used for the mapping . Corresponds // to the adapter that will be used on the SDK . enum FormatType { FORMAT_UNKNOWN = 0 ; // Display banner ads for web or mobile apps . For example , a 320 x50 // leaderboard slot . This includes out - stream video . FORMAT_BANNER = 1 ; // A full - screen ad to be displayed inside a mobile app . FORMAT_INTERSTITIAL = 2 ; // Custom display or video ads for web or mobile apps that match the // user experience of the site or app in which they ’ re placed . FORMAT_NATIVE = 3 ; // Video ads that appear before , during , or after video content // streams . FORMAT_VIDEO_VAST = 4 ; // Video ads for mobile apps that allow users to voluntarily watch an // ad in exchange for an in - app reward . FORMAT_REWARDED = 5 ; // Interstitial ads that allow users to watch an ad in exchange for // an in - app reward . Does not require opt - in . // https : // support . google . com / admanager / answer / 7386053 FORMAT_REWARDED_INTERSTITIAL = 6 ; // App open ads shows at app load screens . App open ads can be closed // at any time , and are designed to be shown when the users bring the // app to the foreground . FORMAT_APP_OPEN = 7 ; } // The mappings are targeted through a format , which is expressed in the // Google - defined taxonomy . Format is populated in the bid request since // Google supports targeting multiple formats with a single ad // unit , and Google 's definition of the format may not match the bidder' s // definition . In order for the bidder to differentiate which format // matched , it is sent in the bid request . optional FormatType format = 2 ; } // Ad unit mappings that match the given adslot . repeated AdUnitMapping ad_unit_mapping = 64 ; // Global placement ID ( GPID ) is a distinct , persistent ID , specified by the // publisher , which is consistent across supply paths for each ad unit on a // page . See // https : // github . com / InteractiveAdvertisingBureau / openrtb / blob / main / extensions / community_extensions / gpid . md . // If you are interested in receiving GPID , contact your account manager . optional string gpid = 67 ; // The version of the JavaScript library used by the Mobile Ads SDK to // serve the ad . Only set for mobile app inventory . optional string jsver = 68 ; // Whether this request enables ad experiences that drive user engagement for // mobile app interstitial and rewarded ads . Examples of such experiences // include increasing the required viewing time , requiring more steps to close // the ads , adding the required viewing time for endcards , or showing a // Google - generated endcard after the ads . See // https : // support . google . com / admob / answer / 15525707 for more information . optional bool highengagement = 70 ; // Possible placements of the ad in an over - the - top streaming request . // See // https : // support . google . com / admanager / answer / 10678356 ? #ott_placement&zippy=%2Csee-a-clickable-alphabetical-index-of-all-parameters%2Cott-placement-ott-placement enum OttPlacement { OTT_PLACEMENT_UNKNOWN = 0 ; // Out - stream format that appears using an overlay on top of video content // when a user pauses content playback . OTT_PLACEMENT_PAUSE = 1 ; // Ad that appears on the homescreen of a CTV device or OTT app . This // includes masthead , banner , and tile implementations on a homescreen . OTT_PLACEMENT_HOMESCREEN = 2 ; // In - stream video ad played in a separate ad video player beside video // content . Typically requires squeezing back video content and loading a // second video player . OTT_PLACEMENT_PICTURE_IN_PICTURE = 3 ; // In - stream banner ad that involves squeezing back video content and // creating an ad around the video . Typically , but not limited to , an // L - shaped ad content box . OTT_PLACEMENT_L_BANNER = 4 ; // Any in - stream ad format that appears on top of video content but does not // take up the full screen . Can be a display or video ad . OTT_PLACEMENT_OVERLAY = 5 ; // Any over - the - top placement that isn 't one of the above. OTT_PLACEMENT_CUSTOM = 99 ; } // The placement of the ad in an over - the - top streaming request . optional OttPlacement ottplacement = 71 ; } message AppExt { // Identification of and information about an SDK installed in the // publisher 's app that the bidder has access to, often because it' s the // bidder 's SDK. message InstalledSdk { // Identifier for the installed SDK . optional string id = 1 ; // Semantic version of the installed SDK and the adapter that communicates // between the installed SDK and Google 's SDK. message Version { optional int32 major = 1 [ default = - 1 ]; optional int32 minor = 2 [ default = - 1 ]; optional int32 micro = 3 [ default = - 1 ]; } // The version of the installed SDK . optional Version sdk_version = 2 ; // The version of the adapter that communicates with the installed SDK . optional Version adapter_version = 3 ; } repeated InstalledSdk installed_sdk = 1 ; // The domain of the partner ( of the site / app owner ) with ownership of some // portion of ad inventory on the site / app . The partner 's ads.txt or // app - ads . txt file will be hosted here . More detail at // http : // iabtechlab . com / wp - content / uploads / 2021 / 03 / ctv - app - ads - explainer - guide . pdf optional string inventorypartnerdomain = 2 ; } message BannerExt { // Describes collapsible banner inventory // ( https : // support . google . com / admanager / answer / 14002717 ) . // // A buyer can bid into a collapsible banner slot with either a // traditional banner ad or a collapsible banner ad . A traditional banner // ad needs to match one of the allowed sizes specified in // BidRequest . imp . banner . format . { w , h } . // // A collapsible banner ad needs to support two sized layouts , one for // collapsed state , one for expanded state . The final ad experience // is rendered by Google , including a collapse / expand button . The ad always // starts in the expanded state and can be collapsed by the user afterwards . // Specify BidResponse . seatbid . bid . ext . clpad when returning // a collapsible banner ad in the response . message CollapsibleAdSlot { // Maximum width of the collapsible banner ad in device independent // pixels ( DIPS ) . If a collapsible creative in the response has a greater // width in the expanded state , it will be filtered before the auction . optional int32 wmax = 1 ; // Maximum height of the collapsible banner ad in device independent // pixels ( DIPS ) . If a collapsible creative in the response has a greater // height in the expanded state , it will be filtered before the auction . optional int32 hmax = 2 ; } // Contains information about a banner ad slot 's collapsibility, // if supported , and is unset otherwise . optional CollapsibleAdSlot clpadslot = 1 ; // Indicates the acceptable ad width and height ranges for impressions which // support flexible ad sizes . message FlexSlot { // The minimum acceptable ad width in device - independent pixels ( DIPS ) . optional int32 wmin = 1 ; // The maximum acceptable ad width in device - independent pixels ( DIPS ) . optional int32 wmax = 2 ; // The minimum acceptable ad height in device - independent pixels ( DIPS ) . optional int32 hmin = 3 ; // The maximum acceptable ad height in device - independent pixels ( DIPS ) . optional int32 hmax = 4 ; } // This field contains information about a banner impression 's flexible ad // size ranges , if supported , and is unset otherwise . optional FlexSlot flexslot = 2 ; } message BidResponseExt { // [ AdX : BidResponse . processing_time_ms ] optional int32 processing_time_ms = 1 ; // Experimental feature ; may be subject to change . // // Reach out to your account manager to use Protected Audience API . // // Contains information that needs to be specified for participating in the // interest group auction for a given ad slot . message InterestGroupBidding { // ID of ad slot represented by the corresponding Imp object in the bid // request to link information to be used in the interest group auction to // the specific ad slot . optional string impid = 1 ; // Buyer - level information to use in the interest group auction . message InterestGroupBuyer { // Origin of the interest group buyer to participate in the // in - browser auction . For more info regarding the origin see : // https : // developer . mozilla . org / en - US / docs / Glossary / Origin optional string origin = 1 ; // Optional buyer - specific signals to pass into the buyer 's // ` generateBid () ` function as the ` perBuyerSignals ` argument . This // object can be in any bidder - defined format that will be transformed // into a JSON object following Proto3 JSON representation // ( https : // developers . google . com / protocol - buffers / docs / proto3 #json). // Can be left empty if no perBuyerSignals signals are required by the // bidding function . optional . google . protobuf . Value buyerdata = 2 ; // Optional maximum interest group bid price expressed in CPM currency // that a bidder agrees to pay if they win an in - browser interest group // auction . Actual winning bid in the in - browser auction that determines // the amount a bidder pays for the impression may be lower than this // amount . This constraint allows to reduce the risks from in - browser // auction bids submitted in error or reported due to fraud and abuse . optional double maxbid = 3 ; // Currency used for the maxbid value . optional string maxbidcur = 4 [ default = "USD" ]; // Modes by which the cost of a winning Protected Audience impression can // be attributed to a billing ID . enum BillingAttributionMode { // Unspecified attribution mode . This value should never be used . BILLING_ATTRIBUTION_MODE_UNSPECIFIED = 0 ; // The cost of the impression will be attributed to the billing ID // indicated by the ` billing_id ` field . If this mode is chosen and the // ` billing_id ` field doesn 't contain one of the available billing IDs // from the bid request , then the interest group buyer won 't be // eligible to participate in the on - device auction . BID_RESPONSE = 1 ; // The billing ID will be specified by the ` GoogleBillingId ` HTTP query // parameter in the ad 's render URL. If the render URL for the bid // returned from ` generateBid () ` doesn 't contain a billing ID present on // the bid request in the query parameter , the submitted bid will be // filtered from the Protected Audience API auction . RENDER_URL_PARAMETER = 2 ; } // Specifies the method by which the interest group buyer will select the // billing ID to attribute spend . optional BillingAttributionMode billattr = 10 ; // Billing ID that the interest group impression will be attributed to . // If set , the value must be in the set of billing IDs for this impression // that were sent in BidRequest . imp . ext . billing_id . If this // field is not set , the interest group buyer will be unable to // participate in the Protected Audience API auction . optional int64 billing_id = 5 ; // Indicates the currency in which interest group bids will be placed . The // value must be a three digit ISO 4217 alpha currency code ( e . g . "USD" ) . optional string cur = 6 ; // Buyer experiment group ID ( EGID ) to be specified in the trusted // bidding signals request URL . This experiment ID will be added to the // ` perBuyerExperimentGroupIds ` map , keyed by the interest group owner , // in the ` auctionConfig ` . See // https : // github . com / WICG / turtledove / blob / main / FLEDGE . md #31-fetching-real-time-data-from-a-trusted-server optional uint32 buyer_experiment_group_id = 7 ; // Render - time buyer signals that will be expanded into the winning // interest group ad render URL using the // ` deprecatedRenderURLReplacements ` auction configuration field for macro // expansion . // // To be eligible for macro replacement , render URLs must contain a macro // in the form of `$ { RENDER_DATA_buyer . origin . example_OPTIONAL_SUFFIX } ` , // where ` buyer . origin . example ` is the origin of the interest group buyer // specified by the ` InterestGroupBuyer . origin ` field , and // ` OPTIONAL_SUFFIX ` is an optional suffix that can be specified by the // ` RenderingSignals . suffix ` field for distinguishing different // signals . If the ` suffix ` is omitted , then the macro name will be // `$ { RENDER_DATA_buyer . origin . example } ` . // // See specification in // https : // wicg . github . io / turtledove / #dom-auctionadconfig-deprecatedrenderurlreplacements message RenderingSignals { // URL - safe string according to RFC 3986 section 2.3 which will replace // the macro in the render URL . Each ` InterestGroupBuyer ` with a non - URL // safe ` data ` string will not be allowed to participate in the interest // group auction . optional string data = 1 ; // Optional macro suffix that will be appended to RENDER_DATA macro // name to distinguish different signals . optional string suffix = 2 ; } // List of rendering signals for macro expansion on the winning interest // group ad render URL , limited to 3 macros per buyer . Each // ` InterestGroupBuyer ` with more than 3 rendering signals will not be // allowed to participate in the interest group auction . repeated RenderingSignals rsig = 8 ; // Indicates that the buyer will render their own DSA transparency // information inside the creative delivered through the Protected // Audience API . See https : // support . google . com / admanager / answer / 14335032. optional bool dsaadrender = 9 ; } // Interest group buyers that the bidder requests to enter into the // interest group auction . Interest groups that are owned by a buyer // without a corresponding entry here will not participate in the auction . repeated InterestGroupBuyer igbuyer = 2 ; } // Contains information that needs to be specified for participating in the // interest group auctions . repeated InterestGroupBidding igbid = 4 ; } message BidExt { // [ AdX : BidResponse . Ad . impression_tracking_url ] repeated string impression_tracking_url = 1 ; // [ AdX : BidResponse . Ad . ad_choices_destination_url ] optional string ad_choices_destination_url = 2 ; // The URLs to call when the user clicks on the ad . Currently supported only // for Programmatic Guaranteed deals with publisher - managed creatives , where // these click trackers will be sent to the bidder server to server . For more // information on publisher - managed creatives , see // https : // support . google . com / admanager / answer / 9243220. // [ AdX : BidResponse . Ad . click_tracking_urls ] repeated string click_tracking_urls = 22 ; // [ AdX : BidResponse . Ad . AdSlot . exchange_deal_type ] enum ExchangeDealType { OPEN_AUCTION = 0 ; PRIVATE_AUCTION = 1 ; PREFERRED_DEAL = 2 ; EXCHANGE_AUCTION_PACKAGE = 3 ; } optional ExchangeDealType exchange_deal_type = 4 [ default = OPEN_AUCTION ]; // [ AdX : BidResponse . Ad . attribute ] // See buyer - declarable - creative - attributes . txt in the technical documentation // for a list of ids . Note that not all declarable attributes come through in // the BidRequest in the various ` battr ` fields . repeated int32 attribute = 5 [ packed = true ]; // The URL to fetch an AMPHTML ad . Only one of the following should be set : // html_snippet , video_url , amp_ad_url , native_ad . optional string amp_ad_url = 6 ; // An ad that will be rendered by an SDK known to the buyer . This can only // be used when the BidRequest included a // BidRequest . app . ext . installed_sdk submessage . message SdkRenderedAd { // The identifier for the SDK that will render the ad . Must match a // BidRequest . app . ext . installed_sdk . id sent in the corresponding bid // request . optional string id = 1 ; // Data to pass to the SDK in order to render the ad . This data is opaque // to the publisher and to Google . optional string rendering_data = 2 ; // Declared ad assets to support creative scanning , classification , and // enforcement of ad policy and publisher blocks for ads rendered with a // custom SDK . message DeclaredAd { // Ad content used by SDK to render ad . oneof content { // The HTML snippet representative of the SDK - rendered ad . string html_snippet = 1 ; // The URL to the VAST asset used in the SDK - rendered ad . string video_url = 2 ; // The VAST document used to render custom SDK - rendered ad . This // document should conform to the VAST 2.0 or 3.0 standard . string video_vast_xml = 4 ; // The content of a native ad . Native ads consist of multiple building // blocks ( such as image and text ), which are rendered by the buyer SDK . // This field is only required for creative scanning . The assets you // include don 't need to match assets specified in a native request // object ( if any ) in the bid request . NativeResponse . assets . id is // optional and doesn 't need to match an asset on the native request // object . NativeResponse . assets . img . type is required . . com . google . openrtb . NativeResponse native_response = 5 ; } // The final landing pages of the SDK - rendered ad . repeated string click_through_url = 3 ; } optional DeclaredAd declared_ad = 6 ; } optional SdkRenderedAd sdk_rendered_ad = 7 ; message EventNotificationToken { // The content of the token , which will be ignored if longer than 128 // bytes . optional string payload = 1 ; } // A token set by bidders for troubleshooting which will be included in the // real - time feedback for the Bid it is sent in . The contents of the token // will not be logged . optional EventNotificationToken event_notification_token = 8 ; // All restricted categories for the ads that may be shown from this snippet . // See ad - restricted - categories . txt in the technical documentation for a list // of ids . If you are bidding with ads in restricted categories , you must // always declare them here . repeated int32 restricted_category = 9 ; // The billing ID to attribute this impression to . The value must be in the // repeated BidRequest . imp . ext . billing_id field sent for this impression . // If the length of BidRequest . imp . ext . billing_id is exactly 1 // and the bidder does not have any active child seats , this field // is not required and its contents will be ignored . optional int64 billing_id = 10 ; // Token used to identify end third party buyer information if an // exchange as an open bidder is an intermediary . This is obtained from the // third party buyer and must be passed to Google unaltered in the bid // response . optional string third_party_buyer_token = 14 ; // Buyer declared ID which will be used to break down cost transparency // metrics in Reporting . Note that IDs with fewer than 1000 impressions will // not be used to break down metrics . IDs longer than 64 bytes will be // ignored . optional string buyer_reporting_id = 17 ; // Experimental feature ; may be subject to change . See // https : // support . google . com / authorizedbuyers / answer / 10890762 for more // information . // // Specifies frequency capping to be applied to the bid . Impressions for each // user are capped at the level specified by fcap_id . A bid will not // participate in the auction if an additional impression for the user would // violate any of the specified caps . Multiple frequency caps can be specified // for the same fcap_id . // // A bid is filtered before the auction if the frequency cap is malformed . // Instances where the cap is malformed include : // - fcap_id is empty or is very long // - max_mpressions or time_range are non - positive // - there are a large number of frequency caps for a single bid // - time_unit is not specified // // Note that if a subsequent bid with the same fcap_id uses a different // duration ( represented by time_unit and time_range ) then impressions counted // against the old frequency cap will not count against the new one and vice // versa . message FrequencyCap { // An ID that can represent a bidder 's use-case for frequency capping; for // example , it could represent their campaign , ad , line item , or some // other entity . It should not contain any user - specific information or // identifiers and should not be longer than 64 characters . optional string fcap_id = 1 ; // The time units for which frequency caps can be enforced . enum TimeUnit { UNKNOWN_TIME_UNIT = 0 ; MINUTE = 1 ; DAY = 2 ; WEEK = 3 ; MONTH = 4 ; // When INDEFINITE is used , time_range will be ignored . INDEFINITE means // the frequency cap will be applied for a long period of time , ( longer // than a month ) but not necessarily forever . INDEFINITE = 5 ; } // The unit of time used to specify the time window for which a frequency // cap applies . optional TimeUnit time_unit = 2 ; // The length of the time window , in units specified by time_unit , for which // the frequency cap applies . For instance , if time_unit = WEEK and // time_range = 3 , then capping is applied for a three week period . If the // time_unit = INDEFINITE , this will be ignored . optional int32 time_range = 3 [ default = 1 ]; // The maximum number of impressions allowed to be shown to a user for // the provided frequency_cap_id within the time window described by // time_unit and time_range . optional int32 max_imp = 4 ; } repeated FrequencyCap fcap = 18 ; // Advertiser 's SKAdNetwork information to support app installation // attribution for iOS 14 and later . Apple 's SKAdNetwork API helps // advertisers measure ad - driven app installation by sending a postback // to the ad network after a successful install . Ad networks will need // to send their network ID and signed advertiser information to allow // an install to be attributed to the ad impression . // For more info visit : // https : // developer . apple . com / documentation / storekit / skadnetwork message SKAdNetworkResponse { // Version of SKAdNetwork supported by the advertiser . Also used to // specify how the signature was generated by the advertiser . This // should match the version from BidRequest.imp.ext.skad.version. optional string version = 1 ; // Ad network identifier used in signature . This should match one of the // items in BidRequest . imp . ext . skad . skadnetids . optional string network = 2 ; // Campaign ID compatible with Apple 's spec. Used in SKAdNetwork 3.0 and // below . Replaced by Source Identifier ( ` sourceidentifier ` field ) in // SKAdNetwork 4.0 and above . optional string campaign = 3 ; // A four - digit integer that ad networks define to represent the ad // campaign . Used in SKAdNetwork 4.0 + and replaces the ` campaign ` field . optional string sourceidentifier = 11 ; // ID of advertiser 's app in Apple' s app store . optional string itunesitem = 4 ; // ID of custom product page to display ( for iOS 15 or later ) . // If not specified , default product page will be displayed . // See https : // developer . apple . com / app - store / custom - product - pages / // for more details about custom product pages . optional string productpageid = 12 ; // SKAdNetwork API starting from version 2.2 supports multiple ad // presentation options specified by the ` fidelity - type ` parameter of the // SKAdNetwork signature . This holds parameters used to generate the // signature that would be different for each fidelity type supported . // For more info visit : // https : // developer . apple . com / documentation / storekit / skadnetwork / signing_and_providing_ads message Fidelity { // The fidelity type of the attribution to track . optional SKAdNetworkFidelityType fidelity = 1 [ default = STOREKIT_RENDERED_ADS ]; // A unique all - lowercase UUID generated by the advertiser to use for // generating the signature . optional string nonce = 2 ; // Unix time in millis used at the time of signature generation . optional string timestamp = 3 ; // SKAdNetwork signature as specified by Apple . optional string signature = 4 ; } repeated Fidelity fidelities = 9 ; // A unique all - lowercase UUID generated by the advertiser to use for // generating the signature . // Note : This field will be deprecated in favor of the // BidResponse . bid . ext . skadn . fidelities . nonce field to support multiple // fidelity types . optional string nonce = 5 ; // ID of publisher 's app in Apple' s app store . This should match the ID // from BidRequest.imp.ext.skad.sourceapp. optional string sourceapp = 6 ; // Unix time in millis used at the time of signature generation . // Note : This field will be deprecated in favor of the // BidResponse . bid . ext . skadn . fidelities . timestamp field to support multiple // fidelity types . optional string timestamp = 7 ; // SKAdNetwork signature as specified by Apple . // Note : This field will be deprecated in favor of the // BidResponse . bid . ext . skadn . fidelities . signature field to support multiple // fidelity types . optional string signature = 8 ; // These options indicate how to present SKOverlay recommending the // advertised app . // Supported by iOS 14 and later . // // For more info visit : // https : // developer . apple . com / documentation / storekit / skoverlay message SKOverlay { // Delay in seconds after the ad begins before presenting the overlay . // If this field is set to 0 , the overlay will be shown immediately // after the ad begins . If this field is unset , the overlay will not // be shown for the ad . optional int32 delay = 1 ; // Delay in seconds after the endcard shows before presenting the // overlay . ( This field only applies to rewarded or interstitial video // creatives . ) If this field is set to 0 , the overlay will be shown // immediately after the endcard shows . If this field is unset , // the overlay will not be shown for the endcard . // If both ` delay ` and ` endcarddelay ` are set , the overlay will be // automatically dismissed when the ad ends , and shown again after // the endcard shows . optional int32 endcarddelay = 2 ; // Whether this overlay can be dismissed by the user . optional bool dismissible = 3 [ default = true ]; } optional SKOverlay skoverlay = 13 ; // Deprecated . This message will be removed in July 2025. // Google Mobile Ads SDK options for SKAdNetwork handling . message SKAdNetworkOptions { // Deprecated . This field will be removed in July 2025. // By default , SKAdNetwork attribution will only be initiated if the // click - through URL lands on the app store , either as a direct link to // the app store or as the final destination of a server - side redirect // chain . This option enables GMA SDK to always initiate SKAdNetwork // attribution on - click regardless of the detected click 's final // destination URL . Note that enabling this will launch the app store // even for clicks that are not meant to open the app store , for example // clicks on Ad Choices icon . For more info , see : // https : // developers . google . com / authorized - buyers / rtb / skadnetwork optional bool always_open_appstore = 1 [ deprecated = true , default = false ]; } // Deprecated . This field will be removed in July 2025. // [ AdX : BidResponse . Ad . skadn_options ] optional SKAdNetworkOptions skadn_opts = 10 [ deprecated = true ]; } // [ AdX : BidResponse . Ad . skadn ] optional SKAdNetworkResponse skadn = 19 ; // Possible types of app promotion . enum AppPromotionType { UNKNOWN_APP_PROMOTION_TYPE = 0 ; // For encouraging new users to download and install the advertised app . // Clicking this ad will show the app store listing as an overlay ( for // supported formats ), without leaving the publisher app . // Click through URL for this ad points to the app store listing . INSTALLS = 1 ; // For re - engaging existing users who have installed the advertised app . // Click through URL for this ad points to the installed app directly . ENGAGEMENT = 2 ; // Other types of app promotion that do not fall into the categories // above . No features specific to app promotion types will apply . OTHER = 3 ; } // [ AdX : BidResponse . Ad . app_promotion_type ] // Type of the app promotion corresponding to the advertised app specified // in the seatbid . bid . bundle field . // If the advertised app is not specified , this field will be ignored . // // Setting BidResponse . seatbid . bid . bundle field without this field will be // treated as if this field were set to OTHER . optional AppPromotionType app_promotion_type = 28 ; // Whether to show the full app store listing for // BidResponse . seatbid . bid . bundle field ( or skadn . itunesitem field on iOS ) // within the publisher app , after the video playback completes and before the // endcard ( if any ) appears . This field only applies to rewarded or // interstitial video ads . // Contact your account manager if you would like to enable this feature . optional bool auto_inline_install = 29 ; // All bids with the same bid_group_id will be won or lost as a group . // Bids must have a non - empty bid_group_id to allow an ad to be played // as part of a pod . // This field is currently only supported for rewarded video pods requests . // Note that if there are multiple bids for the same ad , each bid must have // different bid_group_id . For example , if a bidder wants to bid creative_1 // for first position and last position in the pod and creative_2 for any // position and want to ensure either both win at the same time or neither // of those wins , bidder needs to submit : // { // "seatbid" : [ // { // "bid" : [ // { // "crid" : "creative_1" , // "slotinpod" : 1 , // "ext" : { // "bid_group_id" : "group1" // } // }, // { // "crid" : "creative_1" , // "slotinpod" : - 1 , // "ext" : { // "bid_group_id" : "group2" // } // }, // { // "crid" : "creative_2" , // "slotinpod" : 0 , // "ext" : { // "bid_group_id" : "group1" // } // }, // { // "crid" : "creative_2" , // "slotinpod" : 0 , // "ext" : { // "bid_group_id" : "group2" // } // } // ] // } // ] // } optional string bid_group_id = 26 ; // The Digital Services Act ( DSA ) transparency declarations . See // https : // support . google . com / admanager / answer / 14335032. message Dsa { // Free text string describing the name of the advertiser on whose behalf // the ad is shown . Bids will not be accepted if this value is longer // than 100 characters . optional string behalf = 1 ; // Free text string describing the advertiser who paid for the ad . Must // always be included even if it 's the same as what is listed in the // displayed_on_behalf attribute . Bids will not be accepted if this value // is longer than 100 characters . optional string paid = 2 ; // Indicates that the buyer will render their own DSA transparency // information inside the creative . optional bool adrender = 3 ; } // DSA Ad Transparency information provided by the buyer . optional Dsa dsa = 30 ; // Collapsible banner ad information . In collapsible banner format , the // ad will start in an expanded state and can be manually collapsed by // the user . To learn more about collapsible banner ads , see : // https : // support . google . com / admanager / answer / 14002717 ? hl = en . message CollapsibleAd { // Width of the creative in the expanded state in device independent // pixels ( DIPS ) . The width of the creative in the collapsed state // is represented by BidResponse . seatbid . bid . w . If wexp is greater // than BidRequest . imp . banner . ext . clpadslot . wmax , the ad will be // filtered before the auction . optional int32 wexp = 1 ; // Height of the creative in the expanded state in device independent // pixels ( DIPS ) . The height of the creative in the collapsed state // is represented by BidResponse . seatbid . bid . h . If hexp is greater than // BidRequest . imp . banner . ext . clpadslot . hmax , the ad will be filtered before // the auction . optional int32 hexp = 2 ; } // If bidding on a collapsible banner ad slot // ( see : BidRequest . imp . banner . ext . clpadslot ), you may populate this // if you want to place a bid with a collapsible banner ad . If not set , // the bid will be rendered as a traditional banner ad . optional CollapsibleAd clpad = 31 ; // The URLs that the user could be directed to when clicking on this ad . Do // not include URLs for intermediate calls to an ad server that are unrelated // to the final landing page . 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 instance so that your // bid is not incorrectly filtered . // This field maps to BidResponse . ad . click_through_url . repeated string clickurl = 32 ; } message NativeRequestExt { // [ AdX : BidRequest . AdSlot . native_ad_template [ 0 ] . style_id ] optional int32 style_id = 1 ; // [ AdX : BidRequest . AdSlot . native_ad_template [ 0 ] . style_height ] optional int32 style_height = 2 ; // [ AdX : BidRequest . AdSlot . native_ad_template [ 0 ] . style_width ] optional int32 style_width = 3 ; // [ AdX : BidRequest . AdSlot . native_ad_template [ 0 ] . style_layout_type ] enum LayoutType { PIXEL = 0 ; FLUID = 1 ; } optional LayoutType style_layout_type = 4 [ default = PIXEL ]; // Ad position on screen . optional . com . google . openrtb . AdPosition pos = 6 ; } message EventTrackerExt { // Parameters associated with the resource that will be passed to the // resource when it is loaded . The format of the parameters is dependent // on the script vendor . optional string verification_parameters = 2 ; // Used to uniquely identify the verification script provider . optional string vendorKey = 3 ; } message PublisherExt { // The billing address country code of the publisher . This may be different // from the hosting country of the website . For a complete list of country // codes , refer to // https : // developers . google . com / adwords / api / docs / appendix / codes - formats #country-codes optional string country = 1 ; // The ID of the host publisher . When populated , indicates that the host // publisher participated in revenue sharing , and the ID can be used to // authorize ads . txt . optional string host_publisher_id = 2 ; // If true , the bidder is responsible for paying the publisher directly for // this impression . optional bool directpay = 3 ; } message SiteExt { enum AmpPage { // This is not an AMP page . DIALECT_HTML = 0 ; // This is an Amp page . DIALECT_HTML_AMP = 1 ; } // Whether this is an AMP page or not . Omitted if unknown . optional AmpPage amp = 1 ; enum VisibilityState { VISIBILITY_STATE_UNKNOWN = 0 ; // The page is at least partially visible . For example , in the foreground // tab of a non - minimized window . VISIBILITY_STATE_VISIBLE = 1 ; // The page is not visible to users . For example , when the page is in a // background browser tab , or in a minimized window . VISIBILITY_STATE_HIDDEN = 2 ; } // The visibility state of the web page containing the ad slot . // See https : // www . w3 . org / TR / page - visibility /. // [ AdX : BidRequest . page_visibility ] optional VisibilityState page_visibility = 2 [ default = VISIBILITY_STATE_UNKNOWN ]; // Information about a browser window 's user activation state. See // https : // html . spec . whatwg . org / multipage / interaction . html #the-useractivation-interface. message UserActivation { // Indicates whether a user has completed an interaction since page load . optional bool wasact = 1 ; // Indicates whether a user is currently interacting with the page . optional bool isact = 2 ; } // User activation information from the browser for the current request , if // the request is for a web page . optional UserActivation uact = 5 ; // The set of possible web navigation types that predicate a page load . Each // of these types may have different performance characteristics . For example , // users going back and forth might experience a faster site than users // performing navigation for the first time or submitting forms . See // https : // w3c . github . io / navigation - timing / #dom-performancenavigationtiming-type. enum NavigationType { NAVIGATION_TYPE_UNKNOWN = 0 ; // Navigation started by clicking a link , entering the URL in the browser 's // address bar , form submission , or initializing through a script operation // other than reload and back_forward . NAVIGATION_TYPE_NAVIGATE = 1 ; // Navigation is through the browser 's reload operation, location.reload(), // or a Refresh pragma directive like // < meta http - equiv = "refresh" content = "300" > . NAVIGATION_TYPE_RELOAD = 2 ; // Navigation is through the browser 's history traversal operation. NAVIGATION_TYPE_BACK_FORWARD = 3 ; // Navigation is initiated by a prerender hint ( deprecated ) . See // https : // developer . mozilla . org / en - US / docs / Web / HTML / Attributes / rel / prerender . NAVIGATION_TYPE_PRERENDER = 4 ; } // The type of browser navigation that led to the current page . Unset for // non - web ad requests . optional NavigationType ntype = 6 ; // Indicates that the request is using semi - transparent branding , // which means only a truncated version of the request URL will // be provided . This decision is made by the publisher , see // https : // support . google . com / admanager / answer / 4584891 #urls for context. optional bool is_semi_transparent_request = 3 ; // The domain of the partner ( of the site owner ) with ownership // of some portion of ad inventory on the site . The partner 's ads.txt file // will be hosted here . More detail at // http : // iabtechlab . com / wp - content / uploads / 2021 / 03 / ctv - app - ads - explainer - guide . pdf optional string inventorypartnerdomain = 4 ; } message BidRequestExt { // Feedback on bids submitted in previous responses . This is only set if // real - time feedback is enabled for your bidder . Contact your // account manager if you want to enable real - time feedback . message BidFeedback { // The unique id from BidRequest.id. optional string request_id = 1 ; // The status code for the ad . See creative - status - codes . txt in the // technical documentation for a list of ids . optional int32 creative_status_code = 2 ; // Deprecated . This field is not populated and will be removed after March , // 2025. If the bid won the auction , this is the price paid in your account // currency . If the bid participated in the auction but was out - bid , this // is the CPM that should have been exceeded in order to win . This is not // set if the bid was filtered prior to the auction , if the publisher or // winning bidder has opted out of price feedback or if your account has // opted out of sharing winning prices with other bidders . For first - price // auctions , minimum_bid_to_win is populated instead of this field . optional double price = 3 [ deprecated = true ]; // The minimum bid value necessary to have won the auction , in your account // currency . If your bid won the auction , this is the second highest bid // that was not filtered ( including the floor price ) . If your bid didn 't win // the auction , this is the winning candidate 's bid. This field will only be // populated if your bid participated in a first - price auction , and will not // be populated if your bid was filtered prior to the auction . optional double minimum_bid_to_win = 6 ; // The minimum bid value necessary to have won the server - side component of // the overall auction given that there was also an interest group bidding // component to the overall auction which ran using the Protected Audience // API . The value is expressed in CPM of the buyer account currency . The // minimum bid to win for the overall auction , including bids from the // server - side and the on - device interest group components , is populated in // the minimum_bid_to_win field of the same BidFeedback object . optional double sscminbidtowin = 14 ; // Billable event rate multiplier that was applied to this bid during // ranking . The adjustment reflects the likelihood that your bid would // generate a billable event ( namely , the ad renders successfully ) if it won // the auction , relative to the probability that other bids generate a // billable event if they won the auction . This adjustment can be larger or // smaller than 1. This affects the final ranking in the auction only ; in // particular , this multiplier does not affect the payment or whether the // bid clears any floor price . optional float billable_event_rate_bid_adjustment = 13 [ default = 1 ]; // When a publisher uses an RTB auction and waterfall - based SDK mediation on // the same query , the winner of the real - time auction must also compete in // a mediation waterfall ( which is ordered by price ) to win the impression . // If the bid participated in the auction and there was no waterfall , the // value of this field is 0. If the bid participated in the auction and // there was a waterfall , the value of this field is a price representing a // sample bid from the eligible mediation networks that were higher than the // auction winner , weighted by expected fill rate . This field can be used // in conjunction with minimum_bid_to_win to train bidding models . The CPM // is in your account currency . optional double sampled_mediation_cpm_ahead_of_auction_winner = 8 ; message EventNotificationToken { // The contents of the token . optional string payload = 1 ; } // The token included in the corresponding bid . optional EventNotificationToken event_notification_token = 4 ; // The creative ID included in the corresponding bid . optional string buyer_creative_id = 5 ; // Possible types of bid response feedback objects . enum FeedbackType { FEEDBACK_TYPE_UNSPECIFIED = 0 ; // Feedback for a bid that was submitted on a bid response . BID_FEEDBACK = 1 ; // Feedback for an interest group buyer submitted on a bid response to // particpate in an interest group bidding component of the auction run // using the Protected Audience API . INTEREST_GROUP_BUYER_FEEDBACK = 2 ; } // The type of the BidFeedback message . Google will send separate // BidFeedback objects for : // a ) Each bid submitted on a bid response // b ) Each buyer submitted on a bid response to particpate in an interest // group bidding component of the auction run using the Protected Audience // API . optional FeedbackType feedbacktype = 15 ; // Origin of an interest group buyer that was included in the bid response . // This field is populated only for feedback where a bidder opted in an // interest group buyer to participate in the interest group bidding // component of the overall auction run using the Protected Audience API . // To learn more about origins , see https : // www . rfc - editor . org / rfc / rfc6454 . // To learn more about interest group bidding and the Protected Audience // API , see // https : // developers . google . com / authorized - buyers / rtb / fledge - origin - trial . optional string buyerorigin = 16 ; // The status code for the submitted interest group buyer . This field is // only populated in the feedback for an interest group buyer that a bidder // requested to enter into the interest group auction through the bid // response . Individual creative status codes of bids submitted by the buyer // in the on - device interest group auction are not available . See // https : // storage . googleapis . com / adx - rtb - dictionaries / interest - group - buyer - status - codes . txt // for a list of interest group buyer status codes . optional int32 igbuyerstatus = 17 ; } repeated BidFeedback bid_feedback = 1 ; // This represents a unique ID for the overall query . In the event // that there are multiple callouts for a query , all callout requests for that // query will contain the same google_query_id . optional string google_query_id = 2 ; // Experimental feature ; may be subject to change . See // https : // support . google . com / authorizedbuyers / answer / 10890762 for more // information . // // Describes the scope of frequency cap enforcement available for this // request . Frequency caps to be enforced for a bid can be specified in the // Bid . ext . fcap field . enum FrequencyCappingScope { // Default value which should not be used , or which can indicate that // frequency cap scope could not be reliably determined . FREQUENCY_CAPPING_SCOPE_UNKNOWN = 0 ; // Frequency capping based on bid response specifications is not available // for this request . A frequency - capped bid for a bid request with no // frequency cap availability will be filtered prior to the auction . FREQUENCY_CAPPING_SCOPE_NONE = 1 ; // Frequency capping enforcement is available across multiple sites within // the same browser . FREQUENCY_CAPPING_SCOPE_BROWSER = 2 ; // Frequency capping enforcement is available across multiple apps on the // device , excluding browsers . FREQUENCY_CAPPING_SCOPE_DEVICE = 3 ; // Frequency capping enforcement is available within a single app . FREQUENCY_CAPPING_SCOPE_APP = 4 ; // Frequency capping enforcement is available within a single site . FREQUENCY_CAPPING_SCOPE_SITE = 5 ; } optional FrequencyCappingScope fcap_scope = 4 ; // Privacy treatments . Some fields in the bid request can be coarsened or // redacted in order to protect user privacy . This message provides // information about privacy treatments that apply to an ad opportunity // offered through this request . message PrivacyTreatments { // Generalization that can be applied to an IP address field . enum IpGeneralization { // The IP address field is truncated : IPv4 to / 24 or IPv6 to / 48. // The truncated octets are replaced by zeros so the field still parses // as a valid IP address , for example "xxx.yyy.zzz.0" for IPv4 . IP_TRUNCATED = 0 ; // The IP address field is redacted . IP_REDACTED = 2 ; } // Generalization applied to the IP address field populated in the request // ( either BidRequest . device . ip or BidRequest . device . ipv6 ) . optional IpGeneralization ip = 1 ; // Generalization that can be applied to the BidRequest . device . ua and // BidRequest . device . sua fields . enum UserAgentGeneralization { // The BidRequest . device . ua and BidRequest . device . sua fields are provided // in full . USER_AGENT_FULL = 0 ; // The BidRequest . device . ua and BidRequest . device . sua fields are // generalized , which can include limiting browser and OS version // information to major versions only and other changes to protect user // privacy . USER_AGENT_COARSE = 1 ; } // Generalization that was applied to the BidRequest . device . ua and // BidRequest . device . sua fields , if any . optional UserAgentGeneralization user_agent = 2 ; // Specifies the reasons that ads returned in response to this request // should not be personalized . This signal does not reflect user decisions // on surfaces including iOS App Tracking Transparency // ( https : // developer . apple . com / documentation / apptrackingtransparency ) or // Android advertising ID // ( https : // support . google . com / googleplay / android - developer / answer / 6048248 ) . // See BidRequest . device . lmt and BidRequest . device . ext . atts fields for more // information . enum NonPersonalizedAdsReason { UNKNOWN = 0 ; // The publisher has declared that this request should serve // non - personalized ads independent of other signals . // https : // support . google . com / admanager / answer / 9005435 #npa PUBLISHER_DECLARED_NPA = 1 ; // The publisher has requested restricted data processing for this // request . https : // support . google . com / authorizedbuyers / answer / 11121285 RESTRICT_DATA_PROCESSING = 2 ; // The user has opted out of ads personalization . USER_OPT_OUT = 3 ; } repeated NonPersonalizedAdsReason non_personalized_ads_reason = 6 [ packed = true ]; // True if publisher grants the permission to allow the bidder to use bid // request data to build user profiles for uses such as interest - based ads // and remarketing . To use this data to build user profiles , a bidder must // also win a given impression . // Learn more about data collection controls : // https : // support . google . com / admanager / answer / 11956152 optional bool allow_user_data_collection = 7 ; // Reasons why on - device storage access could be restricted during the // delivery of a winning ad . enum DeviceStorageRestrictionReason { DEVICE_STORAGE_RESTRICTION_UNKNOWN = 0 ; // This request is subject to user consent requirements to allow for // device storage access for advertising use cases such as ads // measurement , frequency capping , or profiling , but consent was // insufficient or not provided . INSUFFICIENT_USER_CONSENT = 1 ; } // Indicates the reason why access of local device storage during winning ad // rendering and measurement is restricted . optional DeviceStorageRestrictionReason storagerestrict = 8 ; } optional PrivacyTreatments privacy_treatments = 5 ; // Contains labels indicating the experiment or control groups that are // active for this request . Work with your account manager to opt in to an // experiment . The exact set of experiments available , their meaning , and // whether there is any action required from the bidder varies from experiment // to experiment and will be communicated separately . // // If empty , then this request is not part of any experiment or control group , // or your bidder is not participating in any experiments . repeated string expids = 6 ; } message UserExt { message ConsentedProvidersSettings { // Set of IDs corresponding to ad tech providers ( ATPs ) for whom the // publisher has specified to Google that its EEA users have given legally // valid consent to : 1 ) the use of cookies or other local storage where // legally required ; and 2 ) the collection , sharing , and use of personal // data for personalization of ads by an ATP in accordance with Google 's EU // User Consent Policy . // // If a publisher is using the IAB Transparency and Consent Framework ( TCF ) // v2 to manage user consent , this is the set of ATPs consented through the // Additional Consent string ( see // https : // support . google . com / admanager / answer / 9681920 for details about // Google 's Additional Consent mode). ATPs consented through the TCF v2 // consent string are represented in the UserExt . consent field . // // A mapping of ATP ID to ATP name is posted at providers . csv . repeated int64 consented_providers = 2 [ packed = true ]; // The raw Additional Consent string , which contains a list of certain // Google Ad Tech Providers ( ATPs ) . These ATPs are not registered with IAB // TCF v2 , but publishers or their Consent Management Providers ( CMPs ) have // ensured that certain disclosures are given to , and consents are obtained // from , end users , as required by Google 's EU User Consent Policy. This // field is only populated with the use of CMPs that are integrated with IAB // TCF v2 . Such CMPs use the raw Additional Consent string to indicate // vendors that are not registered with IAB , and communicate end users ' CMP // choices to those vendors . The consented_providers field contains the set // of vendors that mirrors the one represented by the additional_consent // field , which is in the raw form . Vendors or any other third - party service // providers must not create AC strings themselves . // // See https : // support . google . com / admanager / answer / 9681920 for more details // about this field . optional string additional_consent = 3 ; } // Information about the ad tech providers for whom the publisher has // specified to Google that its EEA user has consented to the use of their // personal data for ads personalization in accordance with Google 's EU User // Consent Policy . This field will only be populated when RegsExt . gdpr is // true . optional ConsentedProvidersSettings consented_providers_settings = 1 ; // The web - safe base64 - encoded IAB Transparency and Consent Framework ( TCF ) v2 // consent string fetched from the publisher 's IAB Consent Management Platform // ( CMP ) . The structure of the string is defined by the IAB TCF v2 . This field // will be populated if the publisher has integrated with a CMP for TCF v2 and // that CMP indicates that GDPR applies to this ad request and provides a // valid consent string . See // https : // support . google . com / authorizedbuyers / answer / 9789378 for additional // information about the Google TCF v2 integration . // // See the IAB Global Vendor List at // https : // vendor - list . consensu . org / v2 / vendor - list . json for details about the // vendors listed in the consent string . optional string consent = 2 ; // Data made available by the publisher , such as secure signals . // https : // github . com / InteractiveAdvertisingBureau / openrtb / blob / master / extensions / 2. x_official_extensions / eids . md repeated . com . google . openrtb . BidRequest . User . EID eids = 5 ; // Describes a user session in a given app or site . The session is reset after // a sufficiently long break in user activity . message Session { // Time in seconds since the first ad request in the session . Currently the // session duration is only supported for mobile app requests . optional int32 duration = 1 ; // Previous number of total user ad requests made during the session . Scoped // to the app and resets at the same time as duration . Currently , available // on mobile app requests and webview requests , where webview is configured // with WebView API for Ads . See // https : // developers . google . com / admob / android / browser / webview / api - for - ads optional int32 depth = 2 ; // Previous number of total user ad requests since the time the current app // was last started . Scoped to the app and resets on app open . Currently , // available on mobile app requests and webview requests , where webview is // configured with WebView API for Ads . See // https : // developers . google . com / admob / android / browser / webview / api - for - ads optional int32 requestssinceappopen = 3 ; // Prior number of clicks within the app as measured by Google Mobile Ads // SDK from the time the current app was last started . optional int32 priorclicks = 4 ; } // The current user session . optional Session session = 6 ; // The amount of time , in seconds , since the ID in ` BidRequest . user . id ` was // created . optional int32 idage = 7 ; } message UIDExt { // The source type of the UID . See details at // https : // developers . google . com / authorized - buyers / rtb / openrtb - guide #uid-stype optional string stype = 1 ; } message DataExt { // Identifies the taxonomy that the segment IDs belong to . // Google supports the following taxonomies : // https : // github . com / InteractiveAdvertisingBureau / Taxonomies / blob / main / Audience % 20 Taxonomies / Audience % 20 Taxonomy % 201.1 . tsv // IAB Tech Lab Audience Taxonomy 1.1 = 4 // https : // github . com / InteractiveAdvertisingBureau / Taxonomies / blob / main / Content % 20 Taxonomies / Content % 20 Taxonomy % 202.2 . tsv // IAB Tech Lab Content Taxonomy 2.2 = 6 // https : // github . com / InteractiveAdvertisingBureau / Taxonomies / blob / main / Content % 20 Taxonomies / Content % 20 Taxonomy % 203.0 . tsv // IAB Tech Lab Content Taxonomy 3.0 = 7 // https : // github . com / patcg - individual - drafts / topics / blob / main / taxonomy_v1 . md // Chromium Topics API = 600 // https : // github . com / patcg - individual - drafts / topics / blob / main / taxonomy_v2 . md // Chromium Topics API V2 = 601 optional int32 segtax = 1 ; // The version of the classifier which produced the segment IDs within the // taxonomy . For example , in the case of Chrome Topics API ( segtax = 600 ), this // is the version of the classifier used by the browser to map hostnames to // topics in the taxonomy . optional string segclass = 2 ; } message DeviceExt { // Represents a short - lived user session on CTV / OTT devices , // with a maximum session duration of 6 hours . // The use of session_id is never allowed for ads personalization . // session_id may only be used for frequency capping , competitive exclusions // or related purposes . This field is populated with web - safe base64 alphabet . optional string session_id = 1 ; // ( iOS Only ) An integer passed to represent the app 's app tracking // authorization status , where 0 = not determined , 1 = restricted , 2 = denied , // 3 = authorized . This value is retrieved from ATTrackingManager and // provided as is . See // https : // github . com / InteractiveAdvertisingBureau / openrtb / blob / master / extensions / community_extensions / skadnetwork . md #bid-request-1 // // For more information about iOS 's app tracking authorization status, see: // https : // developer . apple . com / documentation / apptrackingtransparency / attrackingmanager / authorizationstatus optional int32 atts = 3 ; // Indicates whether the user 's device is on a metered connection. // // Currently only available for Android app and WebView requests , and is // determined by the isActiveNetworkMetered () function on // ConnectivityManager : // https : // developer . android . com / reference / android / net / ConnectivityManager #isActiveNetworkMetered() optional bool metereddata = 6 ; // Chrome - facilitated cookie deprecation testing label as received from // Chrome . // https : // developer . chrome . com / en / docs / privacy - sandbox / chrome - testing / optional string cdep = 7 ; // The remaining battery life of the device represented as a float , where 1 // indicates a fully charged battery and 0 means the device is on reserve // capacity and is about to shut down . Currently only available for Android // mobile app and webview requests . optional float chargelevel = 8 ; // Indicates whether the device is currently being charged . // Currently only available for Android mobile app and webview requests . optional bool charging = 9 ; // The remaining disk space , in megabytes , in the data partition available for // application installation , rounded to the nearest 100 MB to protect user // privacy ( https : // source . android . com / docs / core / architecture / partitions ) . // Currently only available for Android mobile app and webview requests . optional int32 diskspace = 10 ; // Describes the state of the device audio output . enum AudioOutputMethod { AUDIO_UNKNOWN = 0 ; // Audio is playing through the device 's speakers. AUDIO_SPEAKER = 1 ; // Audio is playing through a device plugged into the headphone // jack . AUDIO_HEADPHONE = 2 ; // Device is set to silent . AUDIO_SILENT = 3 ; // Any other output such as playing from a docking station or Bluetooth . AUDIO_OTHER = 5 ; } // The device audio state . Available for both Android and iOS . optional AudioOutputMethod audioout = 11 [ default = AUDIO_UNKNOWN ]; // DOOH device information . message Dooh { // The venue type ID of the DOOH device . // Uses the OpenOOH venue type taxonomy // ( https : // github . com / openooh / venue - taxonomy / blob / main / specification - 1.1 . md ) . // For more information , see : // https : // support . google . com / admanager / answer / 10678356 ? #venuetype&zippy=%2Cvenuetype-venue-type optional int64 venuetypeid = 1 ; } // If present , describes a DOOH device that will render the impression . optional Dooh dooh = 12 ; } message RegsExt { // This field will be set to true in either of the two following cases : // 1. Google receives a valid IAB Transparency and Consent Framework ( TCF ) // v2 consent string and the Consent Management Platform indicates that // GDPR applies to this ad request . // 2. Google does not receive an IAB TCF v2 consent string and , based on // information available to Google , this impression will serve to an // EEA user . // It does not constitute legal guidance on GDPR . optional bool gdpr = 1 ; // This field will be set to true when , based on information available to // Google , this impression will serve to a user in Brazil . See // https : // storage . googleapis . com / adx - rtb - dictionaries / lgpd - providers . csv for // the list of ad tech providers that are allowed to serve on LGPD - enforced // requests . // // See https : // support . google . com / authorizedbuyers / answer / 9928204 for more // information on LGPD . optional bool lgpd = 2 ; // The Digital Services Act ( DSA ) transparency requirements . See // https : // support . google . com / admanager / answer / 14335032. message Dsa { // Values indicating whether DSA declarations should be included in the bid // response and , if so , whether or not the publisher is an Online Platform // ( OP ) or Very Large Online Platform ( VLOP ), as defined by the DSA . enum DsaSupport { // DSA declarations are not required in the bid response . NOT_REQUIRED = 0 ; // DSA declarations are supported , but not required in the bid response . SUPPORTED = 1 ; // DSA declarations are required in the bid response . REQUIRED = 2 ; // DSA declarations are required in the bid response and the publisher is // an OP or VLOP . REQUIRED_BY_ONLINE_PLATFORM = 3 ; } // Indicates if DSA declarations should be included in the bid response . // Bids where DSA declarations are required but not included will not be // accepted . optional DsaSupport dsarequired = 1 ; // Options describing a publisher 's ability to render DSA transparency // declarations . enum PublisherRenderingSupport { // Publisher can 't render. PUBLISHER_UNABLE_TO_RENDER = 0 ; // Publisher could render depending on the buyer 's rendering capability as // described in the Bid . ext . dsa . adrender field . PUBLISHER_CAN_RENDER = 1 ; // Publisher will render regardless of the buyer 's rendering capability as // described in the Bid . ext . dsa . adrender field . PUBLISHER_WILL_RENDER = 2 ; } // Indicates if the publisher will render the DSA Transparency info . This // will signal if the publisher is able to and intends to render the icon // or other appropriate user - facing symbol and display the DSA transparency // info to the end user . optional PublisherRenderingSupport pubrender = 2 ; // Options describing if a publisher requires DSA transparency declarations . enum DataToPublisher { // Do not send transparency data . DO_NOT_SEND = 0 ; // Optional to send transparency data . OPTIONAL = 1 ; // Send transparency data . SEND = 2 ; } // Indicates whether the bidder should provide DSA transparency declarations // in the bid response . A publisher may need this information for audit or // other purposes , even if they will not render the transparency // declarations themselves . optional DataToPublisher datatopub = 3 ; } // The Digital Services Act ( DSA ) transparency information requirements . optional Dsa dsa = 3 ; } message DealExt { // The type of the deal . Note that Authorized Buyers policy overrides apply to // all Programmatic Guaranteed and Preferred Deal bids , and do not apply to // bids for other deal types . enum DealType { UNKNOWN_DEAL_TYPE = 0 ; // Bids are fixed - price and evaluated before the Open Auction . Bidders are // not required to bid with Preferred Deals when they are present on the bid // request . See https : // support . google . com / authorizedbuyers / answer / 2604595 // for more information . PREFERRED_DEAL = 1 ; // Bids participate in a Private Auction against a select list of buyers // with specific floors . See // https : // support . google . com / authorizedbuyers / answer / 2839853 for more // information . PRIVATE_AUCTION = 2 ; // Bids are fixed - price and evaluated before the Open Auction . Bidders are // expected to bid with Programmatic Guaranteed deals whenever they are // present on a bid request and the must_bid field is true in order to // ensure that the number of impressions agreed upon for a given deal are // served . See https : // support . google . com / authorizedbuyers / answer / 7174589 // for more information . PROGRAMMATIC_GUARANTEED = 3 ; // The deal ID is an identifier for a collection of Open Auction inventory // matching a given set of targeting criteria . See // https : // support . google . com / authorizedbuyers / answer / 7516884 for more // information . AUCTION_PACKAGE = 4 ; // Package of inventory that a publisher makes available to either all // buyers or selected bidders . Bids participate in auction in the same way // as private auction candidates . See // https : // support . google . com / authorizedbuyers / answer / 12817370 for more // information . MARKETPLACE_PACKAGE = 5 ; } optional DealType deal_type = 1 [ default = UNKNOWN_DEAL_TYPE ]; // This field is only applicable to Programmatic Guaranteed deals . The // buyer is allowed to skip bidding on the impression if this field is // false . When it is true , the buyer is required to bid on this deal for // this impression opportunity . This field will always be filled explicitly // for the JSON wire format . optional bool must_bid = 2 [ default = true ]; // Whether the publisher has exempted this deal from configured blocks . This // setting does not override AdX policies or Ad Review Center decisions . See // https : // support . google . com / authorizedbuyers / answer / 6114194 for more // information . optional bool publisher_blocks_overridden = 3 ; // Experimental field ; subject to change . // An enum declaring the host of the creative , which will only be // populated for Programmatic Guaranteed deals . // Currently , this field should only ever be set to // CREATIVE_SOURCE_ADVERTISER . enum CreativeSourceType { CREATIVE_SOURCE_UNKNOWN = 0 ; // The creative is hosted by the advertiser , which means the bidder is // required to provide a creative in the bid response . CREATIVE_SOURCE_ADVERTISER = 1 ; // The creative is hosted by the publisher , which means the bidder // does not need to include a creative in the bid response . // For more information on publisher - hosted creatives , see // https : // support . google . com / admanager / answer / 9243220. // This feature isn 't currently supported for RTB bidders. CREATIVE_SOURCE_PUBLISHER = 2 ; } optional CreativeSourceType creative_source = 4 [ default = CREATIVE_SOURCE_ADVERTISER ]; // Constraints for creatives that can apply when bidding on a deal . message CreativeConstraints { // The allowed ad types of the deal . If empty , there are no deal - specific // allowed ad type restrictions for the deal . In that case , bidders should // refer to the presence of Banner , Video , Audio or Native objects in the // BidRequest to check the allowed formats . repeated . com . google . openrtb . CreativeMarkupType mtypes = 1 [ packed = true ]; // Possible creative skippability requirements . enum SkippabilityConstraint { // Skippable and non - skippable creatives are allowed . ALLOW_SKIPPABLE = 0 ; // Only skippable creatives are allowed . REQUIRE_SKIPPABLE = 1 ; // Only non - skippable creatives are allowed . BLOCK_SKIPPABLE = 2 ; } // Whether skippable creatives are allowed . For PROGRAMMATIC_GUARANTEED or // PREFERRED_DEAL deals that specifically allow video or audio ad types , it // is always set . For the skippability setting of other deal types or open // auction bidding , refer to the corresponding BidRequest - level field // video . skip . optional SkippabilityConstraint skippability = 2 [ default = ALLOW_SKIPPABLE ]; // Maximum video ad duration in seconds . For PROGRAMMATIC_GUARANTEED or // PREFERRED_DEAL deals that specifically allow video or audio ad types , it // is always set . For the allowed max duration of other deal types or open // auction bidding , refer to the corresponding BidRequest - level field // video . maxduration . optional int32 maxduration = 3 ; } // Creative constraints for this deal . If this is not set , bidders should // refer to the BidRequest - level setting of each field . optional CreativeConstraints creative_constraints = 5 ; // Indicates the eligible billing IDs for this deal . If this list is not // empty , the billing ID selected in ` BidResponse . seatbid . bid . ext . billing_id ` // must be one of these IDs when submitting a bid on this deal . If this list // is empty , then the bid on this deal can be attributed to any of the billing // IDs in ` BidRequest . imp . ext . billing_id ` . repeated int64 billing_id = 6 [ packed = true ]; } message SourceExt { // Identifier of the OM SDK integration . Equivalent to // BidRequest . AdSlot . omidpn in the Google protocol . For more info , // see the OpenRTB Advisory for Open Measurement SDK : // https : // github . com / InteractiveAdvertisingBureau / AdCOM / blob / master / OpenRTB % 20 support % 20 for % 20 OMSDK . md #openrtb-and-adcom. optional string omidpn = 1 ; // Version of the OM SDK integration . Equivalent to BidRequest . AdSlot . omidpv // in the Google protocol . For more info , see the OpenRTB Advisory for // Open Measurement SDK : // https : // github . com / InteractiveAdvertisingBureau / AdCOM / blob / master / OpenRTB % 20 support % 20 for % 20 OMSDK . md #openrtb-and-adcom. optional string omidpv = 2 ; } message GeoExt { // The device 's approximate geographic location. See the geo-table.csv table // available at https : // developers . google . com / authorized - buyers / rtb / data for // a list of IDs . This field is provisional , intended only to help with // migration from the Google Authorized Buyers protocol to OpenRTB ; it will // be removed in the future . The standard fields in BidRequest . device . geo // should be used instead ; they contain the same location as the // geo_criteria_id and both are subject to the same privacy treatments . // See Geotargeting Guide : // https : // developers . google . com / authorized - buyers / rtb / geotargeting optional int32 geo_criteria_id = 1 ; } message VideoExt { // Video placement type inferred by Google for this impression . This field // is always filled and can be different from BidRequest.imp.video.plcmt ( the // publisher - declared placement type ) . optional . com . google . openrtb . Plcmt inferredplcmt = 3 [ default = PLCMT_UNKNOWN ]; // If true , the video is embedded on a page outside the publisher 's domain. // When this is set , BidRequest . { app / site } . content . producer . domain points to // the domain of the content producer , and the BidRequest . { app / site } . page // field is the page in which the video is embedded . optional bool embeddedoffsite = 4 ; // Indicates that this bid request is fetching impressions in advance of a // future ad break in a live video stream . The impression may not be rendered // if , for example , the user closes the video player before the ad break // begins . The bid request for the same opportunity may also be retried in // some cases , such as updated publisher settings . optional bool prefetch = 5 ; } // SKAdNetwork API starting from version 2.2 supports multiple ad // presentation options specified by the ` fidelity - type ` parameter of the // SKAdNetwork signature . The following are the fidelity types supported by // Apple . For more info visit : // https : // developer . apple . com / documentation / storekit / skadnetwork / signing_and_providing_ads enum SKAdNetworkFidelityType { // Attribution for app installs within 24 hours of viewing an ad for at least // 3 seconds . Supported for SKAdnetwork version 2.2 and up . For more info see : // https : // developer . apple . com / documentation / storekit / skadnetwork / generating_the_signature_to_validate_view - through_ads VIEW_THROUGH_ADS = 0 ; // Attribution for app installs initiated from the StoreKit - rendered App Store // product page driven by ad clicks . Supported for all SKAdNetwork versions . // For more info see : // https : // developer . apple . com / documentation / storekit / skadnetwork / generating_the_signature_to_validate_storekit - rendered_ads STOREKIT_RENDERED_ADS = 1 ; } extend . com . google . openrtb . BidRequest . Imp { optional ImpExt imp = 1009 ; } extend . com . google . openrtb . BidRequest . App { optional AppExt app = 1011 ; } extend . com . google . openrtb . BidRequest . Imp . Banner { optional BannerExt banner_ext = 1014 ; } extend . com . google . openrtb . BidResponse { optional BidResponseExt bid_response = 1005 ; } extend . com . google . openrtb . BidResponse . SeatBid . Bid { optional BidExt bid = 1014 ; } extend . com . google . openrtb . NativeRequest { optional NativeRequestExt native_ext = 1001 ; } extend . com . google . openrtb . NativeResponse . EventTracker { optional EventTrackerExt eventtrackers = 1000 ; } extend . com . google . openrtb . BidRequest . Publisher { optional PublisherExt publisher = 1002 ; } extend . com . google . openrtb . BidRequest . Site { optional SiteExt site = 1010 ; } extend . com . google . openrtb . BidRequest { optional BidRequestExt bid_request = 1018 ; } extend . com . google . openrtb . BidRequest . User { optional UserExt user = 1007 ; } extend . com . google . openrtb . BidRequest . User . EID . UID { optional UIDExt uids = 1001 ; } extend . com . google . openrtb . BidRequest . Data { optional DataExt data = 1000 ; } extend . com . google . openrtb . BidRequest . Device { optional DeviceExt device = 1066 ; } extend . com . google . openrtb . BidRequest . Regs { optional RegsExt regs = 1001 ; } extend . com . google . openrtb . BidRequest . Imp . Pmp . Deal { optional DealExt deal = 1010 ; } extend . com . google . openrtb . BidRequest . Source { optional SourceExt source = 1059 ; } extend . com . google . openrtb . BidRequest . Geo { optional GeoExt geo = 1004 ; } extend . com . google . openrtb . BidRequest . Imp . Video { optional VideoExt video = 1031 ; }