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