Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenRTB v2.6-202309 #11

Merged
merged 6 commits into from
Nov 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions openrtb2/audio.go
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,15 @@ type Audio struct {
// Normalization Modes in AdCOM 1.0.
NVol *adcom1.VolumeNormalizationMode `json:"nvol,omitempty"`

// Attribute:
// durfloors
// Type:
// object array
// Description:
// An array of DurFloors objects (Section 3.2.35) indicating the floor
// prices for video creatives of various durations that the buyer may bid with.
DurFloors []DurFloors `json:"durfloors,omitempty"`

// Attribute:
// ext
// Type:
Expand Down
19 changes: 16 additions & 3 deletions openrtb2/bid_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

// 3.2.1 Object: BidRequest

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request Add AutoRefresh and AutoRefreshSettings to Bid Request of the openrtb2.x/2.6.md repository lists AutoRefresh and AutoRefreshSettings under the BidRequest list but, this fields, along with DurFlooors are not in the table depicted in the 3.2.1 - Object: BidRequest section. Are they getting added to the table, and eventually, as fields of the BidRequest struct eventually? Should we add them to the BidRequest object already?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious what pointed your attention to that specific commit? That was a commit to a develop branch. The location was moved to the Imp object before release.

Are they getting added to the table, and eventually, as fields of the BidRequest struct eventually?

No.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main branch correctly places the refresh object in the desired location.

//
// The top-level bid request object contains a globally unique bid request or auction ID.
// The top-level bid request object contains an exchange unique bid request or auction ID.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it's just me but I find the comment in line 25 below easier to understand than this one. At least upon first read. I realize this is the exact sentence found in the docs but, could we slightly reword?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to match the spec, but I can propose an update to the spec. What would sound better?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about: "The top-level bid request object contains an exchange-assigned unique bid request ID or auction ID.
"?

// This id attribute is required as is at least one impression object (Section 3.2.4).
// Other attributes in this top-level object establish rules and restrictions that apply to all impressions being offered.
//
Expand All @@ -22,7 +22,9 @@ type BidRequest struct {
// Type:
// string; required
// Description:
// Unique ID of the bid request, provided by the exchange.
// ID of the bid request, assigned by the exchange, and unique for the
// exchange’s subsequent tracking of the responses. The exchange may use
// different values for different recipients.
ID string `json:"id"`

// Attribute:
Expand Down Expand Up @@ -182,6 +184,17 @@ type BidRequest struct {
// should be present.
WLangB []string `json:"wlangb,omitempty"`

// Attribute:
// acat
// Type:
// string array
// Description:
// Allowed advertiser categories using the specified category taxonomy.
// The taxonomy to be used is defined by the cattax field. If no cattax
// field is supplied IAB Content Taxonomy 1.0 is assumed. Only one of
// acat or bcat should be present.
ACat []string `json:"acat,omitempty"`

// Attribute:
// bcat
// Type:
Expand All @@ -191,7 +204,7 @@ type BidRequest struct {
// category taxonomy.
// The taxonomy to be used is defined by the cattax field. If no
// cattax field is supplied IAB Content Category Taxonomy 1.0 is
// assumed.
// assumed. Only one of acat or bcat should be present.
BCat []string `json:"bcat,omitempty"`

// Attribute:
Expand Down
38 changes: 37 additions & 1 deletion openrtb2/deal.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ type Deal struct {
// Description:
// Currency specified using ISO-4217 alpha codes. This may be
// different from bid currency returned by bidder if this is
// allowed by the exchange.
// allowed by the exchange. This field does not inherit from
// imp.bidfloorcur; it is either explicitly specified or
// defaults to USD.
BidFloorCur string `json:"bidfloorcur,omitempty"`

// Attribute:
Expand Down Expand Up @@ -66,6 +68,40 @@ type Deal struct {
// bid on this deal. Omission implies no advertiser restrictions.
WADomain []string `json:"wadomain,omitempty"`

// Attribute:
// guar
// Type:
// integer, default 0
// Description:
// Indicates that the deal is of type guaranteed and the bidder must
// bid on the deal, where 0 = not a guaranteed deal, 1 = guaranteed deal.
Guar int8 `json:"guar,omitempty"`

// Attribute:
// mincpmpersec
// Type:
// float
// Definition:
// Minimum CPM per second. This is a price floor for video or audio
// impression opportunities, relative to the duration of bids an
// advertiser may submit.
MinCPMPerSec float64 `json:"mincpmpersec,omitempty"`

// Attribute:
// durfloors
// Type:
// object array
// Description:
// Container for floor price by duration information, to be used if a
// given deal is eligible for video or audio demand. An array of DurFloors
// objects (see Section 3.2.35).
DurFloors []DurFloors `json:"durfloors,omitempty"`

// Attribute:
// wadomain
// Type:
// string array
// Description:
// Attribute:
// ext
// Type:
Expand Down
53 changes: 53 additions & 0 deletions openrtb2/durfloors.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package openrtb2

import (
"encoding/json"
)

// Object: DurFloors
//
// This object allows sellers to specify price floors for video and audio creatives, whose price varies based on time.
// For example: 1-15 seconds at a floor of $5; 16-30 seconds at a floor of $10, > 31 seconds at a floor of $20.
// There are no explicit constraints on the defined ranges, nor guarantees that they don't overlap.
// In cases where multiple ranges may apply, it is up to the buyer and seller to coordinate on which floor is applicable.
type DurFloors struct {

// Attribute:
// mindur
// Type:
// integer
// Description:
// An integer indicating the low end of a duration range. If this
// value is missing, the low end is unbounded. Either mindur or maxdur
// is required, but not both.
MinDur int64 `json:"mindur,omitempty"`

// Attribute:
// maxdur
// Type:
// integer
// Description:
// An integer indicating the high end of a duration range. If this
// value is missing, the high end is unbounded. Either mindur or maxdur
// is required, but not both.
MaxDur int64 `json:"maxdur,omitempty"`

// Attribute:
// bidfloor
// Type:
// float; default 0
// Description:
// Minimum bid for a given impression opportunity, if bidding with a
// creative in this duration range, expressed in CPM. For any creatives
// whose durations are outside of the defined min/max, the bidfloor at
// the Imp level will serve as the default floor.
BidFloor float64 `json:"bidfloor,omitempty"`

// Attribute:
// ext
// Type:
// object
// Definition:
// Placeholder for vendor specific extensions to this object.
Ext json.RawMessage `json:"ext,omitempty"`
}
3 changes: 2 additions & 1 deletion openrtb2/imp.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ type Imp struct {
// Description:
// Currency specified using ISO-4217 alpha codes. This may be
// different from bid currency returned by bidder if this is
// allowed by the exchange.
// allowed by the exchange. This currency sets the default for
// all floors specified in the Imp object.
BidFloorCur string `json:"bidfloorcur,omitempty"`

// Attribute:
Expand Down
1 change: 1 addition & 0 deletions openrtb2/refresh.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import "encoding/json"

// Object: Refresh
type Refresh struct {

// Attribute:
// refsettings
// Type:
Expand Down
1 change: 1 addition & 0 deletions openrtb2/refsettings.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
//
// Information on how often and what triggers an ad slot being refreshed.
type RefSettings struct {

// Attribute:
// reftype
// Type:
Expand Down
2 changes: 1 addition & 1 deletion openrtb2/site.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ type Site struct {
// Attribute:
// cattax
// Type:
// integer
// integer; default 1
// Description:
// The taxonomy in use. Refer to the AdCOM list List: Category
// Taxonomies for values. If no cattax field is supplied IAB Content
Expand Down
9 changes: 9 additions & 0 deletions openrtb2/video.go
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,15 @@ type Video struct {
// attribute with the particular banner (Section 3.2.6).
CompanionType []adcom1.CompanionType `json:"companiontype,omitempty"`

// Attribute:
// durfloors
// Type:
// object array
// Description:
// An array of DurFloors objects (Section 3.2.35) indicating the floor
// prices for video creatives of various durations that the buyer may bid with.
DurFloors []DurFloors `json:"durfloors,omitempty"`

// Attribute:
// ext
// Type:
Expand Down
Loading