mirror of
https://github.com/prebid/openrtb.git
synced 2026-06-16 06:56:34 +03:00
4574bb1724
http://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf Squashed commit of the following: commit 40ffaaa76654096ff0a91101421cc36d54ef5968 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 25 12:01:12 2017 +0300 README: slight cosmetics commit 5eb0358060f355dd120f66912de1e1b93f0f8772 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 25 12:00:09 2017 +0300 README: preparing for release commit d62bda4a2d03462ed2b65a2f2600d13c88a43009 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 25 11:59:23 2017 +0300 README: review done commit 7ba05ea615088fd6f284f1a9964291600bfa0b5c Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 25 11:57:23 2017 +0300 Review: added missing Audio.stitched property commit be722248b554647522ce460fca2059d34def1dd8 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 16:15:35 2017 +0300 Travis: actually, better stick with 1.9 betas commit d0b0c16a4539cc3bcc2bcbfd8946820788f05023 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 16:14:16 2017 +0300 Travis: master builds till 1.9 is out commit 62635330272d14300a4240de984c45337680af65 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 16:11:07 2017 +0300 Travis: try Go 1.9beta1 commit 23e97c18636669930da5dbfe516faf29ed3a70a8 Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 16:06:18 2017 +0300 Travis commit d5c7d013c510ce3220a8ba8cd0d355ec5765491d Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 15:57:08 2017 +0300 README: v4.0.0 release date commit 14d8158820032b11822f3b2cd981c16f5ccf2dfa Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 15:55:55 2017 +0300 Copied examples from OpenRTB 2.5, reformatted commit e1fc9ebdc8a44d93b5aa48f7e61a7c9fdcdcc3dd Author: Max Cherry <mxmCherry@gmail.com> Date: Sun Jun 18 15:30:22 2017 +0300 README - TODOs commit 0d014dea1020f02db82488a848bdbbf8fadcdc52 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:45:01 2017 +0300 README commit 0d43a00d827670d39d83dfdab556a4153dfba1bb Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:43:15 2017 +0300 More README cosmetics commit ce476e32eff212079e3732a5ec316beb7fe9790d Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:42:38 2017 +0300 README cosmetics commit 8a78e95b19f31be264222e917c5672a8740d6475 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:41:56 2017 +0300 Minor renames commit de717476525c2f91cdd7bcd11c292161f605c28d Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:41:33 2017 +0300 Minor comment fix commit dc35a1d7bac2c8c26bf1e3d04c898ba7cab2ba96 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:41:08 2017 +0300 No more OpenRTB 2.3 references commit 38de47098f2a57a93015ca71264afaa02d11d64b Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:39:28 2017 +0300 More README improvs, switch everything to OpenRTB 2.5 commit a739f31497a24467900af2980859c7c6ebcdd457 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:36:11 2017 +0300 AT - use int64; rewrite README - stricter numeric types usage + drop gopkg.in, recommend package manager commit 56adc1a89d74ccf30df1acea40b298395cd10dbf Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:10:57 2017 +0300 AuctionType - uint64, can be > 500 commit da45c3e8995152d06e777ed8bfc3ef83493633a6 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:04:00 2017 +0300 README: more TODOs commit 931a2b07a693104a3387d6558d56ef996bb82dba Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 17:00:41 2017 +0300 Make sure everything time-related is int64 commit 720c1ce0b5aa48af58c7306c9f7369d60a2865fc Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:46:12 2017 +0300 README: more TODOs - copy more recent tests commit b658fab7365772f2ba3a9ee55ba1616f842732b1 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:44:56 2017 +0300 More TODO commit e5185fa5dc6958cbc5f49d5d9bb61b568da5e1f4 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:43:10 2017 +0300 Reviewed time/duration attributes - to use int64 commit cbb560af3063d10a95b5a26230b26ee25918dcfd Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:37:08 2017 +0300 README: Current TODO commit b7d3f701884892a3e667b3f8c26ca7e2fbeb46bf Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:35:54 2017 +0300 OpenRTB 2.5: Video commit 8d4824b8b8005fe8d67133493dd0b393a7416945 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:26:10 2017 +0300 OpenRTB 2.5: Native commit d40367062fe4f4009bea0697dc2a77a7549b03f4 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:23:51 2017 +0300 OpenRTB 2.5: Banner commit 18962c3c1ebdfc604ae564808ef4141d67fd90ed Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:16:42 2017 +0300 OpenRTB 2.5: Content commit 58a840d97f7e16a447c065b5b7465367459baf0f Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:07:35 2017 +0300 OpenRTB 2.5: Device commit 4a072229b874a93922eabfd003148b6186c2f1d4 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 14:00:51 2017 +0300 OpenRTB 2.5: Geo commit 41d50bc6d2b760daecdb2296ad83bf4750a39ca6 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 13:55:28 2017 +0300 OpenRTB 2.5: Bid commit f20f2a038580abe7a47d0285430140147af9bc38 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 13:41:50 2017 +0300 OpenRTB 2.5: SeatBid commit cfd46a38a7f330853fd07e5fe5bf87c8aedc82f2 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 13:40:40 2017 +0300 OpenRTB 2.5: BidResponse commit 8c165bb20ba9ff4bf237d5cf89a74db05495378a Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 13:38:44 2017 +0300 OpenRTB 2.5: Segment commit 610a4ee4a799934bba1d5678b3acebfae6390cd2 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 13:37:44 2017 +0300 OpenRTB 2.5: Data commit ac37bd4310a12c6e8311a62591cd8059c55e6390 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:47:52 2017 +0300 OpenRTB 2.5: User commit 8a63daa5d6caea5677b7df304f40fd83c073bc9d Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:44:06 2017 +0300 OpenRTB 2.5: Producer commit 8ad8a1880b970044d3312efa0482b9136fab2abf Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:42:54 2017 +0300 OpenRTB 2.5: Publisher commit 59c859c7249238c56a571183376aadd1adbe8394 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:41:39 2017 +0300 OpenRTB 2.5: App commit 14756ddf66fd0fc42d89ddaa521cd6054c39bd21 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:39:10 2017 +0300 OpenRTB 2.5: Site commit 9bbb35253de1d1df21165b8d320c2bebfbc01542 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:36:25 2017 +0300 OpenRTB 2.5: Deal commit 8f88319a83b472c92f3ddc13fa2dabc9c7319c4c Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:33:41 2017 +0300 OpenRTB 2.5: PMP commit 3be39a13e1c480b1ca1462a526d9e041631773a9 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:31:43 2017 +0300 OpenRTB 2.5: Imp, Audio commit 36c9487ad5255dbd027e10b7379663e643b2b50c Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:12:32 2017 +0300 Added OpenRTB 2.5 Metric and Format objects commit e1205cf8701e91c782e3397e8f780be872544780 Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:04:25 2017 +0300 README update commit 325778b755bc9e3ba084a726dae5e9c622c1f2fc Author: Max Cherry <mxmCherry@gmail.com> Date: Sat Jun 17 12:03:33 2017 +0300 Started working on OpenRTB 2.5 compliance - BidRequest, Source, Regs updated
211 lines
6.3 KiB
Go
211 lines
6.3 KiB
Go
package openrtb
|
||
|
||
// 3.2.1 Object: BidRequest
|
||
//
|
||
// The top-level bid request object contains a globally unique bid request 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.
|
||
//
|
||
// There are also several subordinate objects that provide detailed data to potential buyers. Among these
|
||
// are the Site and App objects, which describe the type of published media in which the impression(s)
|
||
// appear. These objects are highly recommended, but only one applies to a given bid request depending
|
||
// on whether the media is browser-based web content or a non-browser application, respectively.
|
||
type BidRequest struct {
|
||
|
||
// Attribute:
|
||
// id
|
||
// Type:
|
||
// string; required
|
||
// Description:
|
||
// Unique ID of the bid request, provided by the exchange.
|
||
ID string `json:"id"`
|
||
|
||
// Attribute:
|
||
// imp
|
||
// Type:
|
||
// object array; required
|
||
// Description:
|
||
// Array of Imp objects (Section 3.2.4) representing the
|
||
// impressions offered. At least 1 Imp object is required.
|
||
Imp []Imp `json:"imp"`
|
||
|
||
// Attribute:
|
||
// site
|
||
// Type:
|
||
// object; recommended
|
||
// Description:
|
||
// Details via a Site object (Section 3.2.13) about the publisher’s
|
||
// website. Only applicable and recommended for websites.
|
||
Site *Site `json:"site,omitempty"`
|
||
|
||
// Attribute:
|
||
// app
|
||
// Type:
|
||
// object; recommended
|
||
// Description:
|
||
// Details via an App object (Section 3.2.14) about the publisher’s
|
||
// app (i.e., non-browser applications). Only applicable and
|
||
// recommended for apps.
|
||
App *App `json:"app,omitempty"`
|
||
|
||
// Attribute:
|
||
// device
|
||
// Type:
|
||
// object; recommended
|
||
// Description:
|
||
// Details via a Device object (Section 3.2.18) about the user’s
|
||
// device to which the impression will be delivered.
|
||
Device *Device `json:"device,omitempty"`
|
||
|
||
// Attribute:
|
||
// user
|
||
// Type:
|
||
// object; recommended
|
||
// Description:
|
||
// Details via a User object (Section 3.2.20) about the human
|
||
// user of the device; the advertising audience.
|
||
User *User `json:"user,omitempty"`
|
||
|
||
// Attribute:
|
||
// test
|
||
// Type:
|
||
// integer; default 0
|
||
// Description:
|
||
// Indicator of test mode in which auctions are not billable,
|
||
// where 0 = live mode, 1 = test mode.
|
||
Test int8 `json:"test,omitempty"`
|
||
|
||
// Attribute:
|
||
// at
|
||
// Type:
|
||
// integer; default 2
|
||
// Description:
|
||
// Auction type, where 1 = First Price, 2 = Second Price Plus.
|
||
// Exchange-specific auction types can be defined using values
|
||
// greater than 500.
|
||
AT int64 `json:"at,omitempty"`
|
||
|
||
// Attribute:
|
||
// tmax
|
||
// Type:
|
||
// integer
|
||
// Description:
|
||
// Maximum time in milliseconds the exchange allows for bids to
|
||
// be received including Internet latency to avoid timeout. This
|
||
// value supersedes any a priori guidance from the exchange.
|
||
TMax int64 `json:"tmax,omitempty"`
|
||
|
||
// Attribute:
|
||
// wseat
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// White list of buyer seats (e.g., advertisers, agencies) allowed
|
||
// to bid on this impression. IDs of seats and knowledge of the
|
||
// buyer’s customers to which they refer must be coordinated
|
||
// between bidders and the exchange a priori. At most, only one
|
||
// of wseat and bseat should be used in the same request.
|
||
// Omission of both implies no seat restrictions.
|
||
WSeat []string `json:"wseat,omitempty"`
|
||
|
||
// Attribute:
|
||
// bseat
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// Block list of buyer seats (e.g., advertisers, agencies) restricted
|
||
// from bidding on this impression. IDs of seats and knowledge
|
||
// of the buyer’s customers to which they refer must be
|
||
// coordinated between bidders and the exchange a priori. At
|
||
// most, only one of wseat and bseat should be used in the
|
||
// same request. Omission of both implies no seat restrictions.
|
||
BSeat []string `json:"bseat,omitempty"`
|
||
|
||
// Attribute:
|
||
// allimps
|
||
// Type:
|
||
// integer; default 0
|
||
// Description:
|
||
// 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 represent all that are available.
|
||
AllImps int8 `json:"allimps,omitempty"`
|
||
|
||
// Attribute:
|
||
// cur
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// Array of allowed currencies for bids on this bid request using
|
||
// ISO-4217 alpha codes. Recommended only if the exchange
|
||
// accepts multiple currencies.
|
||
Cur []string `json:"cur,omitempty"`
|
||
|
||
// Attribute:
|
||
// wlang
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// White list of languages for creatives using ISO-639-1-alpha-2.
|
||
// Omission implies no specific restrictions, but buyers would be
|
||
// advised to consider language attribute in the Device and/or
|
||
// Content objects if available.
|
||
WLang []string `json:"wlang,omitempty"`
|
||
|
||
// Attribute:
|
||
// bcat
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// Blocked advertiser categories using the IAB content
|
||
// categories. Refer to List 5.1.
|
||
BCat []string `json:"bcat,omitempty"`
|
||
|
||
// Attribute:
|
||
// badv
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// Block list of advertisers by their domains (e.g., “ford.com”).
|
||
BAdv []string `json:"badv,omitempty"`
|
||
|
||
// Attribute:
|
||
// bapp
|
||
// Type:
|
||
// string array
|
||
// Description:
|
||
// Block list of applications by their platform-specific exchangeindependent
|
||
// application identifiers. On Android, these should
|
||
// be bundle or package names (e.g., com.foo.mygame). On iOS,
|
||
// these are numeric IDs.
|
||
BApp []string `json:"bapp,omitempty"`
|
||
|
||
// Attribute:
|
||
// source
|
||
// Type:
|
||
// object
|
||
// Description:
|
||
// A Sorce object (Section 3.2.2) that provides data about the
|
||
// inventory source and which entity makes the final decision.
|
||
Source *Source `json:"source,omitempty"`
|
||
|
||
// Attribute:
|
||
// regs
|
||
// Type:
|
||
// object
|
||
// Description:
|
||
// A Regs object (Section 3.2.3) that specifies any industry, legal,
|
||
// or governmental regulations in force for this request.
|
||
Regs *Regs `json:"regs,omitempty"`
|
||
|
||
// Attribute:
|
||
// ext
|
||
// Type:
|
||
// object
|
||
// Description:
|
||
// Placeholder for exchange-specific extensions to OpenRTB.
|
||
Ext RawJSON `json:"ext,omitempty"`
|
||
}
|