diff --git a/openrtb-core/src/main/protobuf/openrtb.proto b/openrtb-core/src/main/protobuf/openrtb.proto index f2d57ec6..475750f1 100644 --- a/openrtb-core/src/main/protobuf/openrtb.proto +++ b/openrtb-core/src/main/protobuf/openrtb.proto @@ -1,7 +1,7 @@ option java_outer_classname = "OpenRtb"; package com.google.openrtb; -// Copyright 2021 Google Inc. All Rights Reserved. +// Copyright 2022 Google Inc. All Rights Reserved. // OpenRTB extensions ("ext" fields in the spec & JSON representation) // are represented here by Protocol Buffer extensions. This proto only @@ -72,7 +72,7 @@ message BidRequest { // Flag to indicate if Exchange can verify that the impressions offered // represent all of the impressions available in context (e.g., all on the // web page, all video spots such as pre/mid/post roll) to support - // road-blocking. 0 = no or unknown, 1 = yes, the impressions offered + // road-blocking. false = no or unknown, true = yes, the impressions offered // represent all that are available. optional bool allimps = 10 [default = false]; @@ -94,7 +94,7 @@ message BidRequest { repeated string bapp = 16; // Indicator of test mode in which auctions are not billable, - // where 0 = live mode, 1 = test mode. + // where false = live mode, true = test mode. optional bool test = 15 [default = false]; // Block list of buyer seats (e.g., advertisers, agencies) restricted @@ -128,7 +128,7 @@ message BidRequest { // demand in decisioning. message Source { // Entity responsible for the final impression sale decision, - // where 0 = exchange, 1 = upstream source + // where false = exchange, true = upstream source // RECOMMENDED by the OpenRTB specification. optional bool fd = 1; @@ -185,7 +185,7 @@ message BidRequest { // to customize ad code by partner. Recommended for video and/or apps. optional string displaymanagerver = 5; - // 1 = the ad is interstitial or full screen, 0 = not interstitial. + // true = the ad is interstitial or full screen, false = not interstitial. optional bool instl = 6; // Identifier for specific ad placement or ad tag that was used to @@ -201,14 +201,14 @@ message BidRequest { optional string bidfloorcur = 9 [default = "USD"]; // Indicates the type of browser opened upon clicking the - // creative in an app, where 0 = embedded, 1 = native. + // creative in an app, where false = embedded, true = native. // Note that the Safari View Controller in iOS 9.x devices is considered // a native browser for purposes of this attribute. optional bool clickbrowser = 16; // Flag to indicate if the impression requires secure HTTPS URL creative - // assets and markup, where 0 = non-secure, 1 = secure. If omitted, - // the secure state is unknown, but non-secure HTTP support can be assumed. + // assets and markup. If omitted, the secure state is unknown, but + // non-secure HTTP support can be assumed. optional bool secure = 12; // Array of exchange-specific names of supported iframe busters. @@ -285,26 +285,34 @@ message BidRequest { // requirement. Otherwise it is a preferred height. optional int32 h = 2; - // Array of format objects representing the banner sizes permitted. - // If none are specified, then use of the h and w attributes - // is highly recommended. - repeated Format format = 15; + // OpenRTB 2.4: This object represents an allowed size (i.e., + // height and width combination) for a banner impression. + // These are typically used in an array for an impression where + // multiple sizes are permitted. + message Format { + // Width in device independent pixels (DIPS). + optional int32 w = 1; - // NOTE: Deprecated in favor of the format array. - // Maximum width in device independent pixels (DIPS). - optional int32 wmax = 11 [deprecated = true]; + // Height in device independent pixels (DIPS). + optional int32 h = 2; - // NOTE: Deprecated in favor of the format array. - // Maximum height in device independent pixels (DIPS). - optional int32 hmax = 12 [deprecated = true]; + // Relative width when expressing size as a ratio. + optional int32 wratio = 3; - // NOTE: Deprecated in favor of the format array. - // Minimum width in device independent pixels (DIPS). - optional int32 wmin = 13 [deprecated = true]; + // Relative height when expressing size as a ratio. + optional int32 hratio = 4; - // NOTE: Deprecated in favor of the format array. - // Minimum height in device independent pixels (DIPS). - optional int32 hmin = 14 [deprecated = true]; + // The minimum width in device independent pixels (DIPS) at + // which the ad will be displayed when the size is expressed as a ratio. + optional int32 wmin = 5; + + // Extensions. + extensions 100 to 9999; + } + // Array of format objects representing the banner sizes permitted. + // If none are specified, then use of the h and w attributes + // is highly recommended. + repeated Format format = 15; // Unique identifier for this banner object. Recommended when Banner // objects are used with a Video object (Section 3.2.4) to represent @@ -340,36 +348,27 @@ message BidRequest { // Relevant only for Banner objects used with a Video object // (Section 3.2.7) in an array of companion ads. Indicates the // companion banner rendering mode relative to the associated - // video, where 0 = concurrent, 1 = end-card. + // video, where false = concurrent, true = end-card. optional bool vcm = 16; - // Extensions. - extensions 100 to 9999; - - // OpenRTB 2.4: This object represents an allowed size (i.e., - // height and width combination) for a banner impression. - // These are typically used in an array for an impression where - // multiple sizes are permitted. - message Format { - // Width in device independent pixels (DIPS). - optional int32 w = 1; - - // Height in device independent pixels (DIPS). - optional int32 h = 2; + // DEPRECATED in OpenRTB 2.4+. Prefer the field format. + // Maximum width in device independent pixels (DIPS). + optional int32 wmax = 11 [deprecated = true]; - // Relative width when expressing size as a ratio. - optional int32 wratio = 3; + // DEPRECATED in OpenRTB 2.4+. Prefer the field format. + // Maximum height in device independent pixels (DIPS). + optional int32 hmax = 12 [deprecated = true]; - // Relative height when expressing size as a ratio. - optional int32 hratio = 4; + // DEPRECATED in OpenRTB 2.4+. Prefer the field format. + // Minimum width in device independent pixels (DIPS). + optional int32 wmin = 13 [deprecated = true]; - // The minimum width in device independent pixels (DIPS) at - // which the ad will be displayed when the size is expressed as a ratio. - optional int32 wmin = 5; + // DEPRECATED in OpenRTB 2.4+. Prefer the field format. + // Minimum height in device independent pixels (DIPS). + optional int32 hmin = 14 [deprecated = true]; - // Extensions. - extensions 100 to 9999; - } + // Extensions. + extensions 100 to 9999; } // OpenRTB 2.0: This object represents an in-stream video impression. @@ -393,20 +392,19 @@ message BidRequest { // REQUIRED by the OpenRTB specification: at least 1 element. repeated string mimes = 1; - // Indicates if the impression must be linear, nonlinear, etc. - // If none specified, assume all are allowed. - optional VideoLinearity linearity = 2; - // Minimum video ad duration in seconds. // RECOMMENDED by the OpenRTB specification. - optional int32 minduration = 3; + optional int32 minduration = 3 [default = 0]; // Maximum video ad duration in seconds. // RECOMMENDED by the OpenRTB specification. optional int32 maxduration = 4; - // Deprecated; use protocols. - optional Protocol protocol = 5 [deprecated = true]; + // Indicates the start delay in seconds for pre-roll, mid-roll, or + // post-roll ad placements. + // Refer to enum StartDelay for generic values. + // RECOMMENDED by the OpenRTB specification. + optional int32 startdelay = 8; // Array of supported video bid response protocols. // At least one supported protocol must be specified. @@ -420,14 +418,14 @@ message BidRequest { // RECOMMENDED by the OpenRTB specification. optional int32 h = 7; - // Indicates the start delay in seconds for pre-roll, mid-roll, or - // post-roll ad placements. - // Refer to enum StartDelay for generic values. - // RECOMMENDED by the OpenRTB specification. - optional int32 startdelay = 8; + // Placement type for the impression. + optional VideoPlacementType placement = 26; - // Indicates if the player will allow the video to be skipped, - // where 0 = no, 1 = yes. + // Indicates if the impression must be linear, nonlinear, etc. + // If none specified, assume all are allowed. + optional VideoLinearity linearity = 2; + + // Indicates if the player will allow the video to be skipped. // If a bidder sends markup/creative that is itself skippable, the // Bid object should include the attr array with an element of // 16 indicating skippable video. @@ -463,7 +461,7 @@ message BidRequest { optional int32 maxbitrate = 13; // Indicates if letter-boxing of 4:3 content into a 16:9 window is - // allowed, where 0 = no, 1 = yes. + // allowed. optional bool boxingallowed = 14 [default = true]; // Playback methods that may be in use. If none are specified, any @@ -473,6 +471,9 @@ message BidRequest { // the first element of this array in preparation for this change. repeated PlaybackMethod playbackmethod = 15 [packed = true]; + // The event that causes playback to end. + optional PlaybackCessationMode playbackend = 27; + // Supported delivery methods (e.g., streaming, progressive). // If none specified, assume all are supported. repeated ContentDeliveryMethod delivery = 16 [packed = true]; @@ -483,10 +484,6 @@ message BidRequest { // Array of Banner objects (Section 3.2.3) if companion ads are available. repeated Banner companionad = 18; - // Companion ads in OpenRTB 2.1 format. (Or to be precise, interpretations - // based on the buggy sample message in 5.1.4, fixed later in 2.2.) - optional CompanionAd companionad_21 = 22 [deprecated = true]; - // List of supported API frameworks for this impression. // If an API is not explicitly listed, it is assumed not to be supported. repeated APIFramework api = 19 [packed = true]; @@ -495,20 +492,20 @@ message BidRequest { // objects are included via the companionad array. repeated CompanionType companiontype = 20 [packed = true]; - // Placement type for the impression. - optional VideoPlacementType placement = 26; - - // The event that causes playback to end. - optional PlaybackCessationMode playbackend = 27; - - // Extensions. - extensions 100 to 9999; + // DEPRECATED in OpenRTB 2.3+. Prefer the field protocols. + // Video bid response protocol. + optional Protocol protocol = 5 [deprecated = true]; // OpenRTB 2.1 compatibility. message CompanionAd { repeated Banner banner = 1; extensions 100 to 9999; } + // REMOVED in OpenRTB 2.2+. Prefer the field companionad. + optional CompanionAd companionad_21 = 22 [deprecated = true]; + + // Extensions. + extensions 100 to 9999; } // This object represents an audio type impression. Many of the fields @@ -531,7 +528,7 @@ message BidRequest { // Minimum audio ad duration in seconds. // RECOMMENDED by the OpenRTB specification. - optional int32 minduration = 2; + optional int32 minduration = 2 [default = 0]; // Maximum audio ad duration in seconds. // RECOMMENDED by the OpenRTB specification. @@ -590,7 +587,7 @@ message BidRequest { optional FeedType feed = 22; // Indicates if the ad is stitched with audio content or delivered - // independently, where 0 = no, 1 = yes. + // independently. optional bool stitched = 23; // Volume normalization mode. @@ -654,8 +651,8 @@ message BidRequest { // Deal objects. Refer to Section 7.2 for more details. message Pmp { // Indicator of auction eligibility to seats named in the Direct Deals - // object, where 0 = all bids are accepted, 1 = bids are restricted to - // the deals specified and the terms thereof. + // object, where false = all bids are accepted, true = bids are restricted + // to the deals specified and the terms thereof. optional bool private_auction = 1 [default = false]; // Array of Deal (Section 3.2.18) objects that convey the specific deals @@ -737,7 +734,7 @@ message BidRequest { // URL of the page where the impression will be shown. optional string page = 7; - // Indicates if the site has a privacy policy, where 0 = no, 1 = yes. + // Indicates if the site has a privacy policy. optional bool privacypolicy = 8; // Referrer URL that caused navigation to the current page. @@ -760,7 +757,7 @@ message BidRequest { optional string keywords = 13; // Indicates if the site has been programmed to optimize layout - // when viewed on mobile devices, where 0 = no, 1 = yes. + // when viewed on mobile devices. optional bool mobile = 15; // Extensions. @@ -809,10 +806,10 @@ message BidRequest { // TVs), it can be provided by the publisher directly in the request. optional string bundle = 8; - // Indicates if the app has a privacy policy, where 0 = no, 1 = yes. + // Indicates if the app has a privacy policy. optional bool privacypolicy = 9; - // 0 = app is free, 1 = the app is a paid version. + // false = app is free, true = the app is a paid version. optional bool paid = 10; // Details about the Publisher (Section 3.2.8) of the app. @@ -895,6 +892,9 @@ message BidRequest { // International Standard Recording Code conforming to ISO-3901. optional string isrc = 24; + // Details about the content Producer (Section 3.2.10). + optional Producer producer = 15; + // URL of the content, for buy-side contextualization or review. optional string url = 6; @@ -905,16 +905,8 @@ message BidRequest { // Production quality. optional ProductionQuality prodq = 25; - // NOTE: Deprecated in favor of prodq. - // Video quality per IAB's classification. - optional ProductionQuality videoquality = 8 [deprecated = true]; - - // Comma separated list of keywords describing the content. - // Note: OpenRTB 2.2 allowed an array-of-strings as alternate implementation - // but this was fixed in 2.3+ where it's definitely a single string with CSV - // content again. Compatibility with some OpenRTB 2.2 exchanges that adopted - // the alternate representation may require custom handling of the JSON. - optional string keywords = 9; + // Type of content (game, video, text, etc.). + optional ContentContext context = 20; // Content rating (e.g., MPAA). optional string contentrating = 10; @@ -922,33 +914,41 @@ message BidRequest { // User rating of the content (e.g., number of stars, likes, etc.). optional string userrating = 11; - // Type of content (game, video, text, etc.). - optional ContentContext context = 20; + // Media rating per QAG guidelines. + optional QAGMediaRating qagmediarating = 17; - // OpenRTB <= 2.2 compatibility; use context for 2.3+. - optional string context_22 = 12; + // Comma separated list of keywords describing the content. + // Note: OpenRTB 2.2 allowed an array-of-strings as alternate implementation + // but this was fixed in 2.3+ where it's definitely a single string with CSV + // content again. Compatibility with some OpenRTB 2.2 exchanges that adopted + // the alternate representation may require custom handling of the JSON. + optional string keywords = 9; - // 0 = not live, 1 = content is live (e.g., stream, live blog). + // false = not live, true = content is live (e.g., stream, live blog). optional bool livestream = 13; - // 0 = indirect, 1 = direct. + // false = indirect, true = direct. optional bool sourcerelationship = 14; - // Details about the content Producer (Section 3.2.10). - optional Producer producer = 15; - // Length of content in seconds; appropriate for video or audio. optional int32 len = 16; - // Media rating per QAG guidelines. - optional QAGMediaRating qagmediarating = 17; + // Content language using ISO-639-1-alpha-2. + optional string language = 19; // Indicator of whether or not the content is embeddable (e.g., an - // embeddable video player), where 0 = no, 1 = yes. + // embeddable video player). optional bool embeddable = 18; - // Content language using ISO-639-1-alpha-2. - optional string language = 19; + // Additional content data. Each object represents a different data source. + repeated Data data = 28; + + // DEPRECATED in OpenRTB 2.4+. Prefer the field prodq. + // Video quality per IAB's classification. + optional ProductionQuality videoquality = 8 [deprecated = true]; + + // REMOVED in OpenRTB 2.3+. Prefer the field context. + optional string context_22 = 12 [deprecated = true]; // Extensions. extensions 100 to 9999; @@ -982,11 +982,22 @@ message BidRequest { // hardware, platform, location, and carrier data. The device can refer to a // mobile handset, a desktop computer, set top box, or other digital device. message Device { + // Location of the device assumed to be the user's current location defined + // by a Geo object (Section 3.2.12). + // RECOMMENDED by the OpenRTB specification. + optional Geo geo = 4; + // Standard "Do Not Track" flag as set in the header by the browser, - // where 0 = tracking is unrestricted, 1 = do not track. + // where false = tracking is unrestricted, true = do not track. // RECOMMENDED by the OpenRTB specification. optional bool dnt = 1; + // "Limit Ad Tracking" signal commercially endorsed (e.g., iOS, Android), + // where false = tracking is unrestricted, true = tracking must be limited + // per commercial guidelines. + // RECOMMENDED by the OpenRTB specification. + optional bool lmt = 23; + // Browser user agent string. Certain data may be redacted or replaced. // RECOMMENDED by the OpenRTB specification. optional string ua = 2; @@ -995,32 +1006,11 @@ message BidRequest { // RECOMMENDED by the OpenRTB specification. optional string ip = 3; - // Location of the device assumed to be the user's current location defined - // by a Geo object (Section 3.2.12). - // RECOMMENDED by the OpenRTB specification. - optional Geo geo = 4; - - // Hardware device ID (e.g., IMEI); hashed via SHA1. - optional string didsha1 = 5; - - // Hardware device ID (e.g., IMEI); hashed via MD5. - optional string didmd5 = 6; - - // Platform device ID (e.g., Android ID); hashed via SHA1. - optional string dpidsha1 = 7; - - // Platform device ID (e.g., Android ID); hashed via MD5. - optional string dpidmd5 = 8; - // IPv6 address closest to device. optional string ipv6 = 9; - // Carrier or ISP (e.g., "VERIZON") using exchange curated string - // names which should be published to bidders a priori. - optional string carrier = 10; - - // Browser language using ISO-639-1-alpha-2. - optional string language = 11; + // The general type of device. + optional DeviceType devicetype = 18; // Device make (e.g., "Apple"). optional string make = 12; @@ -1049,36 +1039,22 @@ message BidRequest { // The ratio of physical pixels to device independent pixels. optional double pxratio = 28; - // Support for JavaScript, where 0 = no, 1 = yes. + // Support for JavaScript. optional bool js = 16; // Indicates if the geolocation API will be available to JavaScript - // code running in the banner, where 0 = no, 1 = yes. + // code running in the banner. optional bool geofetch = 29; - // Network connection type. - optional ConnectionType connectiontype = 17; - - // The general type of device. - optional DeviceType devicetype = 18; - // Version of Flash supported by the browser. optional string flashver = 19; - // ID sanctioned for advertiser use in the clear (i.e., not hashed). - optional string ifa = 20; - - // MAC address of the device; hashed via SHA1. - optional string macsha1 = 21; - - // MAC address of the device; hashed via MD5. - optional string macmd5 = 22; + // Browser language using ISO-639-1-alpha-2. + optional string language = 11; - // "Limit Ad Tracking" signal commercially endorsed (e.g., iOS, Android), - // where 0 = tracking is unrestricted, 1 = tracking must be limited per - // commercial guidelines. - // RECOMMENDED by the OpenRTB specification. - optional bool lmt = 23; + // Carrier or ISP (e.g., "VERIZON") using exchange curated string + // names which should be published to bidders a priori. + optional string carrier = 10; // Mobile carrier as the concatenated MCC-MNC code (e.g., // "310-005" identifies Verizon Wireless CDMA in the USA). @@ -1087,6 +1063,30 @@ message BidRequest { // and MNC parts is required to remove parsing ambiguity. optional string mccmnc = 30; + // Network connection type. + optional ConnectionType connectiontype = 17; + + // ID sanctioned for advertiser use in the clear (i.e., not hashed). + optional string ifa = 20; + + // Hardware device ID (e.g., IMEI); hashed via SHA1. + optional string didsha1 = 5; + + // Hardware device ID (e.g., IMEI); hashed via MD5. + optional string didmd5 = 6; + + // Platform device ID (e.g., Android ID); hashed via SHA1. + optional string dpidsha1 = 7; + + // Platform device ID (e.g., Android ID); hashed via MD5. + optional string dpidmd5 = 8; + + // MAC address of the device; hashed via SHA1. + optional string macsha1 = 21; + + // MAC address of the device; hashed via MD5. + optional string macmd5 = 22; + // Extensions. extensions 100 to 9999; } @@ -1252,7 +1252,7 @@ message BidRequest { // ("COPPA"). Refer to Section 7.1 for more information. message Regs { // Flag indicating if this request is subject to the COPPA regulations - // established by the USA FTC, where 0 = no, 1 = yes. + // established by the USA FTC. optional bool coppa = 1; // Extensions. @@ -1281,7 +1281,19 @@ message BidResponse { // Bidder generated response ID to assist with logging/tracking. optional string bidid = 3; - // Bid currency using ISO-4217 alpha codes. + // Bid currency using ISO-4217 alpha codes. This field will be required + // starting in Q4 2022. If this field is populated and differs from the + // bidding currency, the bid will be filtered. If this field is not populated, + // the currency will be assumed to be the bidding currency. The bidding + // currency is determined by: + // 1. The bidder-level currency, if configured in RTB account settings. + // 2. Otherwise, the currency of the buyer account indicated by the + // billing ID in the cid field of the bid response. + // 3. Otherwise, if cid is not populated in the bid response, the + // currency of the buyer account indicated by the sole billing ID in the + // bid request. + // The currency of the buyer account is set on account creation and can be + // checked by contacting a Technical Account Manager. optional string cur = 4; // Optional feature to allow a bidder to set data in the exchange's cookie. @@ -1313,8 +1325,8 @@ message BidResponse { // IVT transparency reporting, given that it is no longer than 64 bytes. optional string seat = 2; - // 0 = impressions can be won individually; 1 = impressions must be won or - // lost as a group. + // false = impressions can be won individually; + // true = impressions must be won or lost as a group. optional bool group = 3 [default = false]; // Extensions. @@ -1340,13 +1352,24 @@ message BidResponse { // REQUIRED by the OpenRTB specification. required double price = 3; - // ID of a preloaded ad to be served if the bid wins. - optional string adid = 4; - // Win notice URL called by the exchange if the bid wins; optional means // of serving ad markup. optional string nurl = 5; + // Billing notice URL called by the exchange when a winning bid + // becomes billable based on exchange-specific business policy + // (e.g., typically delivered, viewed, etc.). Substitution macros + // (Section 4.4) may be included. + optional string burl = 22; + + // Loss notice URL called by the exchange when a bid is known to + // have been lost. Substitution macros (Section 4.4) may be + // included. Exchange-specific policy may preclude support for + // loss notices or the disclosure of winning clearing prices + // resulting in ${AUCTION_PRICE} macros being removed (i.e., + // replaced with a zero-length string). + optional string lurl = 23; + oneof adm_oneof { // Optional means of conveying ad markup in case the bid wins; // supersedes the win notice if markup is included in both. @@ -1360,6 +1383,9 @@ message BidResponse { NativeResponse adm_native = 50; } + // ID of a preloaded ad to serve if the bid wins. + optional string adid = 4; + // Advertiser domain for block list checking (e.g., "ford.com"). This can // be an array of for the case of rotating creatives. Exchanges can // mandate that only one domain is allowed. @@ -1382,6 +1408,12 @@ message BidResponse { // Creative ID to assist with ad quality checking. optional string crid = 10; + // Tactic ID to enable buyers to label bids for reporting to the + // exchange the tactic through which their bid was submitted. + // The specific usage and meaning of the tactic ID should be + // communicated between buyer and exchanges a priori. + optional string tactic = 24; + // IAB content categories of the creative. repeated string cat = 15; @@ -1397,6 +1429,11 @@ message BidResponse { // Creative media rating per QAG guidelines. optional QAGMediaRating qagmediarating = 20; + // Language of the creative using ISO-639-1-alpha-2. The nonstandard + // code "xx" may also be used if the creative has no + // linguistic content (e.g., a banner with just a company logo). + optional string language = 25; + // Reference to the deal.id from the bid request if this bid pertains to a // private marketplace direct deal. optional string dealid = 13; @@ -1407,35 +1444,6 @@ message BidResponse { // Height of the creative in device independent pixels (DIPS). optional int32 h = 17; - // Advisory as to the number of seconds the bidder is willing to - // wait between the auction and the actual impression. - optional int32 exp = 21; - - // Billing notice URL called by the exchange when a winning bid - // becomes billable based on exchange-specific business policy - // (e.g., typically delivered, viewed, etc.). Substitution macros - // (Section 4.4) may be included. - optional string burl = 22; - - // Loss notice URL called by the exchange when a bid is known to - // have been lost. Substitution macros (Section 4.4) may be - // included. Exchange-specific policy may preclude support for - // loss notices or the disclosure of winning clearing prices - // resulting in ${AUCTION_PRICE} macros being removed (i.e., - // replaced with a zero-length string). - optional string lurl = 23; - - // Tactic ID to enable buyers to label bids for reporting to the - // exchange the tactic through which their bid was submitted. - // The specific usage and meaning of the tactic ID should be - // communicated between buyer and exchanges a priori. - optional string tactic = 24; - - // Language of the creative using ISO-639-1-alpha-2. The nonstandard - // code "xx" may also be used if the creative has no - // linguistic content (e.g., a banner with just a company logo). - optional string language = 25; - // Relative width of the creative when expressing size as a ratio. // Required for Flex Ads. optional int32 wratio = 26; @@ -1444,6 +1452,10 @@ message BidResponse { // Required for Flex Ads. optional int32 hratio = 27; + // Advisory as to the number of seconds the bidder is willing to + // wait between the auction and the actual impression. + optional int32 exp = 21; + // Extensions. extensions 100 to 9999; } @@ -1454,25 +1466,12 @@ message BidResponse { // opportunity available for bid via this bid request. It must be included // directly in the impression object if the impression offered for auction // is a native ad format. -// Note: Prior to VERSION 1.1, the specification could be interpreted as -// requiring the native request to have a root node with a single field "native" -// that would contain the NativeRequest as its value. -// In 1.2 The NativeRequest Object specified here is now the root object. message NativeRequest { // Version of the Native Markup version in use. optional string ver = 1; - // The Layout ID of the native ad unit. - // RECOMMENDED by OpenRTB Native 1.0; optional in 1.1, DEPRECATED in 1.2. - optional LayoutId layout = 2; - - // The Ad unit ID of the native ad unit. - // This corresponds to one of IAB Core-6 native ad units. - // RECOMMENDED by OpenRTB Native 1.0; optional in 1.1, DEPRECATED in 1.2. - optional AdUnitId adunit = 3; - // The context in which the ad appears. - // RECOMMENDED in 1.2. + // RECOMMENDED by the OpenRTB Native specification. optional ContextType context = 7; // A more detailed context in which the ad appears. @@ -1497,28 +1496,32 @@ message NativeRequest { repeated Asset assets = 6; // Whether the supply source / impression supports returning an assetsurl - // instead of an asset object. 0 or the absence of the field indicates no such - // support. - // Implemented in 1.2 + // instead of an asset object. false or the absence of the field indicates no + // such support. optional bool aurlsupport = 11; // Whether the supply source / impression supports returning a DCO URL - // instead of an asset object. 0 or the absence of the field indicates no such - // support. - // Implemented in 1.2 - // Beta feature. + // instead of an asset object. false or the absence of the field indicates no + // such support. Beta feature. optional bool durlsupport = 12; // Specifies what type of event tracking is supported. - // Implemented in 1.2 repeated EventTrackers eventtrackers = 13; - // Set to 1 when the native ad supports buyer-specific privacy notice. - // Set to 0 (or field absent) when the native ad doesn't support custom + // Set to true when the native ad supports buyer-specific privacy notice. + // Set to false (or field absent) when the native ad doesn't support custom // privacy links or if support is unknown. - // RECOMMENDED and implemented in 1.2 + // RECOMMENDED by the OpenRTB Native specification. optional bool privacy = 14; + // DEPRECATED in OpenRTB Native 1.1, REMOVED in 1.2+. + // Use field plcmttype. + optional LayoutId layout = 2 [deprecated = true]; + + // DEPRECATED in OpenRTB Native 1.1, REMOVED in 1.2+. + // Use fields context and contextsubtype. + optional AdUnitId adunit = 3 [deprecated = true]; + // Extensions. extensions 100 to 9999; @@ -1648,13 +1651,9 @@ message NativeRequest { // OpenRTB Native 1.0: The native response object is the top level JSON object // which identifies an native response. -// Note: Prior to VERSION 1.1, the native response's root node was an object -// with a single field "native" that would contain the object above as its -// value. -// In 1.2 The NativeResponse Object specified here is now the root object. message NativeResponse { // Version of the Native Markup version in use. - // RECOMMENDED in 1.2 + // RECOMMENDED by the OpenRTB Native specification. optional string ver = 1; // List of native ad's assets. @@ -1666,7 +1665,6 @@ message NativeResponse { // JSON object mirroring the asset object in the bid response, subject to // certain requirements as specified in the individual objects. // Where present, overrides the assets object in the response. - // Implemented in 1.2 optional string assetsurl = 6; // URL where a dynamic creative specification may be found for populating this @@ -1676,7 +1674,6 @@ message NativeResponse { // the scope of this spec and must be agreed offline between parties or as may // be specified in a future revision of the Dynamic Content Ads spec. // Where present, overrides the assets object in the response. - // Implemented in 1.2 optional string dcourl = 7; // Destination Link. This is default link object for the ad. @@ -1687,25 +1684,23 @@ message NativeResponse { // REQUIRED by the OpenRTB Native specification. required Link link = 3; + // DEPRECATED in OpenRTB Native 1.2+. Prefer object EventTracker. // Array of impression tracking URLs, expected to return a 1x1 image or // 204 response - typically only passed when using 3rd party trackers. - // To be deprecated in 1.2 - Replaced with EventTracker. - repeated string imptrackers = 4; + repeated string imptrackers = 4 [deprecated = true]; + // DEPRECATED in OpenRTB Native 1.2+. Prefer object EventTracker. // Optional javascript impression tracker. Contains