mirror of
https://github.com/prebid/openrtb.git
synced 2026-06-14 05:56:34 +03:00
AdCOM Fields Added For OpenRTB 2.6 Parity
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package adcom1
|
||||
|
||||
// AgentType identifies the user agent types a user identifier is from.
|
||||
type AgentType int
|
||||
|
||||
// Agent types dewscribing where the user agent is from.
|
||||
//
|
||||
// Values of 500+ hold vendor-specific codes.
|
||||
const (
|
||||
ATypeWeb AgentType = 1 // An ID which is tied to a specific web browser or device (cookie-based, probabilistic, or other).
|
||||
ATypeApp AgentType = 2 // In-app impressions, which will typically contain a type of device ID (or rather, the privacy-compliant versions of device IDs).
|
||||
ATypePerson AgentType = 3 // A person-based ID, i.e., that is the same across devices.
|
||||
)
|
||||
@@ -7,11 +7,13 @@ type APIFramework int
|
||||
//
|
||||
// Values of 500+ hold vendor-specific codes.
|
||||
const (
|
||||
APIVPAID1 APIFramework = 1 // VPAID 1.0
|
||||
APIVPAID2 APIFramework = 2 // VPAID 2.0
|
||||
APIMRAID1 APIFramework = 3 // MRAID 1.0
|
||||
APIORMMA APIFramework = 4 // ORMMA
|
||||
APIMRAID2 APIFramework = 5 // MRAID 2.0
|
||||
APIMRAID3 APIFramework = 6 // MRAID 3.0
|
||||
APIOMID1 APIFramework = 7 // OMID 1.0
|
||||
APIVPAID1 APIFramework = 1 // VPAID 1.0
|
||||
APIVPAID2 APIFramework = 2 // VPAID 2.0
|
||||
APIMRAID1 APIFramework = 3 // MRAID 1.0
|
||||
APIORMMA APIFramework = 4 // ORMMA
|
||||
APIMRAID2 APIFramework = 5 // MRAID 2.0
|
||||
APIMRAID3 APIFramework = 6 // MRAID 3.0
|
||||
APIOMID1 APIFramework = 7 // OMID 1.0
|
||||
APISIMID10 APIFramework = 8 // SIMID 1.0
|
||||
APISIMID11 APIFramework = 9 // SIMID 1.1
|
||||
)
|
||||
|
||||
@@ -64,6 +64,14 @@ type App struct {
|
||||
// Comma separated list of keywords about the app.
|
||||
Keywords string `json:"keywords,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// kwarray
|
||||
// Type:
|
||||
// string array
|
||||
// Definition:
|
||||
// Array of keywords about the site. Only one of 'keywords' or 'kwarray' may be present.
|
||||
KwArray []string `json:"kwarray,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// bundle
|
||||
// Type:
|
||||
|
||||
@@ -117,6 +117,17 @@ type AudioPlacement struct {
|
||||
// Maximum creative duration in seconds.
|
||||
MaxDur int64 `json:"maxdur,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// rqddurs
|
||||
// Type:
|
||||
// integer array
|
||||
// Definition:
|
||||
// Precise acceptable durations for video creatives in seconds. This field specifically
|
||||
// targets the Live TV use case where non-exact ad durations would result in undesirable
|
||||
// 'dead air'. This field is mutually exclusive with mindur and maxdur; if rqddurs is
|
||||
// specified, mindur and maxdur must not be specified and vice versa.
|
||||
RqdDurs []in64 `json:"rqddurs,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// maxext
|
||||
// Type:
|
||||
@@ -162,6 +173,57 @@ type AudioPlacement struct {
|
||||
// The maximum number of ads that can be played in an ad pod.
|
||||
MaxSeq int64 `json:"maxseq,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// poddur
|
||||
// Type:
|
||||
// integer
|
||||
// Definition:
|
||||
// Indicates the total amount of time in seconds that advertisers may fill
|
||||
// for a “dynamic” video ad pod, or the dynamic portion of a “hybrid” ad pod.
|
||||
// This field is required only for the dynamic portion(s) of video ad pods.
|
||||
// This field refers to the length of the entire ad break, whereas
|
||||
// mindur/maxdur/rqddurs are constraints relating to the slots that make up the pod.
|
||||
PodDur int64 `json:"poddur,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// podid
|
||||
// Type:
|
||||
// integer
|
||||
// Definition:
|
||||
// Unique identifier indicating that an impression opportunity belongs to a
|
||||
// video ad pod. If multiple impression opportunities within a bid request
|
||||
// share the same podid, this indicates that those impression opportunities
|
||||
// belong to the same video ad pod.
|
||||
PodID int64 `json:"podid,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// podseq
|
||||
// Type:
|
||||
// integer; default 0
|
||||
// Definition:
|
||||
// The sequence (position) of the video ad pod within a content stream.
|
||||
// Refer to List: List: Pod Sequence for guidance on the use of this field.
|
||||
PodSeq PodSequence `json:"podseq,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// slotinpod
|
||||
// Type:
|
||||
// integer; default 0
|
||||
// Definition:
|
||||
// For video ad pods, this value indicates that the seller can guarantee delivery
|
||||
// against the indicated slot position in the pod.
|
||||
// Refer to List: List: Slot Position in Pod for guidance on the use of this field.
|
||||
SlotInPod SlotPositionInPod `json:"slotinpod,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// mincpmpersec
|
||||
// Type:
|
||||
// float
|
||||
// Definition:
|
||||
// Minimum CPM per second. This is a price floor for the “dynamic” portion of a
|
||||
// video ad pod, relative to the duration of bids an advertiser may submit.
|
||||
MinCPMPerSec float64 `json:"mincpmpersec,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// comp
|
||||
// Type:
|
||||
@@ -180,6 +242,16 @@ type AudioPlacement struct {
|
||||
// Refer to List: Companion Types.
|
||||
CompType []CompanionType `json:"comptype,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// overlayexpdir
|
||||
// Type:
|
||||
// integer array
|
||||
// Definition:
|
||||
// Directions in which the creative (video overlay) is permitted to expand.
|
||||
// This is primarily used for non-linear videos.
|
||||
// Refer to List: Expandable Directions.
|
||||
OverlayExpDir []ExpandableDirection `json:"overlayexpdir,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package adcom1
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// BrandVersion provides further identification based on User-Agent Client Hints.
|
||||
// The BrandVersion object is used to identify a device’s browser or similar software component, and the user agent’s execution platform or operating system.
|
||||
type BrandVersion struct {
|
||||
// Attribute:
|
||||
// brand
|
||||
// Type:
|
||||
// string; recommended
|
||||
// Definition:
|
||||
// A brand identifier, for example, “Chrome” or “Windows”.
|
||||
// The value may be sourced from the User-Agent Client Hints headers, representing either the user agent brand (from the Sec-CH-UA-Full-Version header) or the platform brand (from the Sec-CH-UA-Platform header).
|
||||
Brand string `json:"brand,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// version
|
||||
// Type:
|
||||
// string array
|
||||
// Definition:
|
||||
// A sequence of version components, in descending hierarchical order (major, minor, micro, …).
|
||||
Version []string `json:"name,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Optional vendor-specific extensions.
|
||||
Ext json.RawMessage `json:"ext,omitempty"`
|
||||
}
|
||||
@@ -7,7 +7,10 @@ type CategoryTaxonomy int
|
||||
//
|
||||
// Values of 500+ hold vendor-specific codes.
|
||||
const (
|
||||
CatTaxIABContent1 CategoryTaxonomy = 1 // 1 IAB Content Category Taxonomy 1.0.
|
||||
CatTaxIABContent2 CategoryTaxonomy = 2 // 2 IAB Content Category Taxonomy 2.0: www.iab.com/guidelines/taxonomy
|
||||
CatTaxIABProduct1 CategoryTaxonomy = 3 // 3 IAB Ad Product Taxonomy 1.0.
|
||||
CatTaxIABContent1 CategoryTaxonomy = 1 // 1 IAB Content Category Taxonomy 1.0.
|
||||
CatTaxIABContent20 CategoryTaxonomy = 2 // 2 IAB Content Category Taxonomy 2.0: www.iab.com/guidelines/taxonomy
|
||||
CatTaxIABProduct1 CategoryTaxonomy = 3 // 3 IAB Ad Product Taxonomy 1.0.
|
||||
CatTaxIABAudience11 CategoryTaxonomy = 4 // 4 IAB Audience Taxonomy 1.1.
|
||||
CatTaxIABContent21 CategoryTaxonomy = 5 // 5 IAB Content Category Taxonomy 2.1.
|
||||
CatTaxIABContent22 CategoryTaxonomy = 6 // 6 IAB Content Category Taxonomy 2.2
|
||||
)
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package adcom1
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// Channel describes the channel an ad will be displayed on.
|
||||
// A Channel is defined as the entity that curates a content library, or stream within a brand name for viewers.
|
||||
// Examples are specific view selectable ‘channels’ within linear and streaming television (MTV, HGTV, CNN, BBC One, etc) or a specific stream of audio content commonly called ‘stations.’
|
||||
// Name is human-readable field while domain and id can be used for reporting and targeting purposes.
|
||||
type Channel struct {
|
||||
// Attribute:
|
||||
// id
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// A unique identifier assigned by the publisher.
|
||||
// This may not be a unique identifier across all supply sources.
|
||||
ID string `json:"id,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// name
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Channel the content is on (e.g., a local channel like "WABC-TV").
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// domain
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// The primary domain of the channel (e.g., “abc7ny.com” in the case of the local channel WABC-TV).
|
||||
// It is recommended to include the top private domain (PSL+1) for DSP targeting normalization purposes.
|
||||
Domain string `json:"domain,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Optional vendor-specific extensions.
|
||||
Ext json.RawMessage `json:"ext,omitempty"`
|
||||
}
|
||||
@@ -158,6 +158,14 @@ type Content struct {
|
||||
// Comma separated list of keywords describing the content.
|
||||
Keywords string `json:"keywords,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// kwarray
|
||||
// Type:
|
||||
// string array
|
||||
// Definition:
|
||||
// Array of keywords about the site. Only one of 'keywords' or 'kwarray' may be present.
|
||||
KwArray []string `json:"kwarray,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// live
|
||||
// Type:
|
||||
@@ -207,6 +215,24 @@ type Content struct {
|
||||
// Refer to Object: Producer.
|
||||
Producer *Producer `json:"producer,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// network
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Details about the network.
|
||||
// Refer to Object: Network.
|
||||
Network *Network `json:"network,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// channel
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Details about the channel.
|
||||
// Refer to Object: Channel.
|
||||
Channel *Channel `json:"channel,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// data
|
||||
// Type:
|
||||
|
||||
@@ -23,6 +23,16 @@ type Device struct {
|
||||
// Browser user agent string.
|
||||
UA string `json:"ua,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// aua
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Structured user agent information defined by a Object: UserAgent.
|
||||
// If both `ua` and `sua` are present in the bid request, `sua` should be considered the more accurate representation of the device attributes.
|
||||
// This is because the `ua` may contain a frozen or reduced UserAgent string.
|
||||
SUA *UserAgent `json:"sua,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ifa
|
||||
// Type:
|
||||
@@ -137,6 +147,15 @@ type Device struct {
|
||||
// Browser language using ISO-639-1-alpha-2.
|
||||
Lang string `json:"lang,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// langb
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Browser language using IETF BCP 47.
|
||||
// Only one of lang or langb should be present.
|
||||
LangB string `json:"langb,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ip
|
||||
// Type:
|
||||
|
||||
@@ -13,4 +13,5 @@ const (
|
||||
DeviceTablet DeviceType = 5 // Tablet
|
||||
DeviceConnected DeviceType = 6 // Connected Device
|
||||
DeviceSetTopBox DeviceType = 7 // Set Top Box
|
||||
DeviceOOH DeviceType = 8 // OOH Device
|
||||
)
|
||||
|
||||
@@ -10,4 +10,5 @@ const (
|
||||
ExpandableUp ExpandableDirection = 3 // Up
|
||||
ExpandableDown ExpandableDirection = 4 // Down
|
||||
ExpandableFullScreen ExpandableDirection = 5 // Full Screen
|
||||
ExpandableSmaller ExpandableDirection = 6 // Resize/Minimize (make smaller)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package adcom1
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// ExtendedIdentifier support in the OpenRTB specification allows buyers to use audience data in real-time bidding.
|
||||
// The exchange should ensure that business agreements allow for the sending of this data.
|
||||
// Note, it is assumed that exchanges and DSPs will collaborate with the appropriate regulatory agencies and ID vendor(s) to ensure compliance.
|
||||
type ExtendedIdentifier struct {
|
||||
// Attribute:
|
||||
// source
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Source or technology provider responsible for the set of included IDs.
|
||||
// Expressed as a top-level domain.
|
||||
Source string `json:"source,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// uids
|
||||
// Type:
|
||||
// object array
|
||||
// Definition:
|
||||
// Array of extended ID UID objects from the given source. Refer to Object: Extended Identifier UIDs.
|
||||
UIDs []ExtendedIdentifierUID `json:"uids,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Optional vendor-specific extensions.
|
||||
Ext json.RawMessage `json:"ext,omitempty"`
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package adcom1
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
type ExtendedIdentifierUID struct {
|
||||
// Attribute:
|
||||
// id
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Cookie or platform-native identifier.
|
||||
ID string `json:"id,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// uids
|
||||
// Type:
|
||||
// object array
|
||||
// Definition:
|
||||
// Type of user agent the match is from.
|
||||
// It is highly recommended to set this, as many DSPs separate app-native IDs from browser-based IDs and require a type value for ID resolution.
|
||||
// Refer to List: Agent Types.
|
||||
AType AgentType `json:"uids,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Optional vendor-specific extensions.
|
||||
Ext json.RawMessage `json:"ext,omitempty"`
|
||||
}
|
||||
@@ -17,4 +17,6 @@ const (
|
||||
CreativeDAAST10Wrapper MediaCreativeSubtype = 10 // DAAST 1.0 Wrapper
|
||||
CreativeVAST41 MediaCreativeSubtype = 11 // VAST 4.1
|
||||
CreativeVAST41Wrapper MediaCreativeSubtype = 12 // VAST 4.1 Wrapper
|
||||
CreativeVAST42 MediaCreativeSubtype = 13 // VAST 4.2
|
||||
CreativeVAST42Wrapper MediaCreativeSubtype = 14 // VAST 4.2 Wrapper
|
||||
)
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package adcom1
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// Network describes the network an ad will be displayed on.
|
||||
// A Network is defined as the parent entity of the Channel object’s entity for the purposes of organizing Channels.
|
||||
// Examples are companies that own and/or license a collection of content channels (Viacom, Discovery, CBS, WarnerMedia, Turner and others), or studio that creates such content and self-distributes content.
|
||||
// Name is human-readable field while domain and id can be used for reporting and targeting purposes.
|
||||
type Network struct {
|
||||
// Attribute:
|
||||
// id
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// A unique identifier assigned by the publisher.
|
||||
// This may not be a unique identifier across all supply sources.
|
||||
ID string `json:"id,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// name
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Network the content is on (e.g., a TV network like "ABC").
|
||||
Name string `json:"name,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// domain
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// The primary domain of the network (e.g., “abc.com” in the case of the network ABC).
|
||||
// It is recommended to include the top private domain (PSL+1) for DSP targeting normalization purposes.
|
||||
Domain string `json:"domain,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Optional vendor-specific extensions.
|
||||
Ext json.RawMessage `json:"ext,omitempty"`
|
||||
}
|
||||
@@ -11,4 +11,5 @@ const (
|
||||
PlaybackMouseOverSoundOn PlaybackMethod = 4 // Initiates on Mouse-Over with Sound On
|
||||
PlaybackViewportSoundOn PlaybackMethod = 5 // Initiates on Entering Viewport with Sound On
|
||||
PlaybackViewportSoundOff PlaybackMethod = 6 // Initiates on Entering Viewport with Sound Off by Default
|
||||
PlaybackContinuous PlaybackMethod = 7 // Continuous Playback - Media playback is set to play additional media automatically without user interaction. The media player will keep playing additional media (playlist or generated) for the user until the user actively stops this from happening.
|
||||
)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package adcom1
|
||||
|
||||
// PodSequence identifies the pod sequence field, for use in audio and video content streams with one or more ad pods.
|
||||
type PodSequence int8
|
||||
|
||||
// PodSequence options.
|
||||
const (
|
||||
PodSeqLast PodSequence = -1 // -1 Last pod in the content stream.
|
||||
PodSeqAny PodSequence = 0 // 0 Any pod in the content stream.
|
||||
PodSeqFirst PodSequence = 1 // 1 First pod in the content stream.
|
||||
)
|
||||
@@ -64,6 +64,14 @@ type Site struct {
|
||||
// Comma separated list of keywords about the site.
|
||||
Keywords string `json:"keywords,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// kwarray
|
||||
// Type:
|
||||
// string array
|
||||
// Definition:
|
||||
// Array of keywords about the site. Only one of 'keywords' or 'kwarray' may be present.
|
||||
KwArray []string `json:"kwarray,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// page
|
||||
// Type:
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package adcom1
|
||||
|
||||
// PodSequence identifies the slot position in pod field, for use in audio and video ad pods.
|
||||
type SlotPositionInPod int8
|
||||
|
||||
// PodSequence options.
|
||||
const (
|
||||
SlotPosLast SlotPositionInPod = -1 // -1 Last ad in the pod.
|
||||
SlotPosAny SlotPositionInPod = 0 // 0 Any ad in the pod.
|
||||
SlotPosFirst SlotPositionInPod = 1 // 1 First ad in the pod.
|
||||
SlotPosFirstOrLast SlotPositionInPod = 2 // 1 First or Last ad in the pod.
|
||||
)
|
||||
+18
-2
@@ -27,7 +27,7 @@ type User struct {
|
||||
// Attribute:
|
||||
// yob
|
||||
// Type:
|
||||
// integer
|
||||
// integer; DEPRECATED
|
||||
// Definition:
|
||||
// Year of birth as a 4-digit integer.
|
||||
YOB int64 `json:"yob,omitempty"`
|
||||
@@ -35,7 +35,7 @@ type User struct {
|
||||
// Attribute:
|
||||
// gender
|
||||
// Type:
|
||||
// string
|
||||
// string; DEPRECATED
|
||||
// Definition:
|
||||
// Gender, where “M” = male, “F” = female, “O” = known to be other (i.e., omitted is unknown).
|
||||
Gender string `json:"gender,omitempty"`
|
||||
@@ -48,6 +48,14 @@ type User struct {
|
||||
// Comma separated list of keywords, interests, or intent.
|
||||
Keywords string `json:"keywords,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// kwarray
|
||||
// Type:
|
||||
// string array
|
||||
// Definition:
|
||||
// Array of keywords about the site. Only one of 'keywords' or 'kwarray' may be present.
|
||||
KwArray []string `json:"kwarray,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// consent
|
||||
// Type:
|
||||
@@ -75,6 +83,14 @@ type User struct {
|
||||
// Refer to Object: Data.
|
||||
Data []Data `json:"data,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// eids
|
||||
// Type:
|
||||
// object array
|
||||
// Definition:
|
||||
// Extended (third-party) identifiers for this user. Refer to Object: Extended Identifiers.
|
||||
EIDs []EID `json:"eids,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
package adcom1
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// UserAgent represents Structured user agent information provided when client supports User-Agent Client Hints.
|
||||
// If both device.ua and device.sua are present in the bid request, device.sua should be considered the more accurate representation of the device attributes.
|
||||
// This is because the device.ua may contain a frozen or reduced UserAgent string.
|
||||
type UserAgent struct {
|
||||
// Attribute:
|
||||
// browsers
|
||||
// Type:
|
||||
// object array; recommended
|
||||
// Definition:
|
||||
// Each BrandVersion object identifies a browser or similar software component.
|
||||
// Refer to Object: BrandVersion.
|
||||
// Implementers should send brands and versions derived from the Sec-CH-UA-Full-Version-List header.
|
||||
Browsers []BrandVersion `json:"browsers,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// platform
|
||||
// Type:
|
||||
// object; recommended
|
||||
// Definition:
|
||||
// Refer to Object: BrandVersion that identifies the user agent’s execution platform / OS.
|
||||
// Implementers should send a brand derived from the Sec-CH-UA-Platform header, and version derived from the Sec-CH-UA-Platform-Version header.
|
||||
Platform []BrandVersion `json:"platform,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// mobile
|
||||
// Type:
|
||||
// integer
|
||||
// Definition:
|
||||
// 1 if the agent prefers a “mobile” version of the content, if available, i.e. optimized for small screens or touch input.
|
||||
// 0 if the agent prefers the “desktop” or “full” content.
|
||||
// Implementers should derive this value from the Sec-CH-UA-Mobile header.
|
||||
Mobile int8 `json:"mobile,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// architecture
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Device’s major binary architecture, e.g. “x86” or “arm”.
|
||||
// Implementers should retrieve this value from the Sec-CH-UA-Arch header.
|
||||
Architecture string `json:"architecture,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// bitness
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Device’s bitness, e.g. “64” for 64-bit architecture.
|
||||
// Implementers should retrieve this value from the Sec-CH-UA-Bitness header.
|
||||
Bitness string `json:"bitness,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// model
|
||||
// Type:
|
||||
// string
|
||||
// Definition:
|
||||
// Device model.
|
||||
// Implementers should retrieve this value from the Sec-CH-UA-Model header.
|
||||
Model string `json:"model,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// source
|
||||
// Type:
|
||||
// integer
|
||||
// Definition:
|
||||
// The source of data used to create this object.
|
||||
// Refer to List: User-Agent Source
|
||||
Source UserAgentSource `json:"source,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
// object
|
||||
// Definition:
|
||||
// Optional vendor-specific extensions.
|
||||
Ext json.RawMessage `json:"ext,omitempty"`
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package adcom1
|
||||
|
||||
// UserAgentSource represents the source of a user agent.
|
||||
type UserAgentSource int8
|
||||
|
||||
// Options for the user agent source.
|
||||
const (
|
||||
UASourceUnknown UserAgentSource = 0 // Unspecified/unknown
|
||||
UASourceLowEntropy UserAgentSource = 1 // User-Agent Client Hints (only low-entropy headers were available)
|
||||
UASourceHighEntropy UserAgentSource = 2 // User-Agent Client Hints (with high-entropy headers available)
|
||||
UASourceParsed UserAgentSource = 3 // Parsed from User-Agent header (the same string carried by the ua field)
|
||||
)
|
||||
@@ -151,6 +151,17 @@ type VideoPlacement struct {
|
||||
// Maximum creative duration in seconds.
|
||||
MaxDur int64 `json:"maxdur,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// rqddurs
|
||||
// Type:
|
||||
// integer array
|
||||
// Definition:
|
||||
// Precise acceptable durations for video creatives in seconds. This field specifically
|
||||
// targets the Live TV use case where non-exact ad durations would result in undesirable
|
||||
// 'dead air'. This field is mutually exclusive with mindur and maxdur; if rqddurs is
|
||||
// specified, mindur and maxdur must not be specified and vice versa.
|
||||
RqdDurs []int64 `json:"rqddurs,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// maxext
|
||||
// Type:
|
||||
@@ -196,6 +207,57 @@ type VideoPlacement struct {
|
||||
// The maximum number of ads that can be played in an ad pod.
|
||||
MaxSeq int64 `json:"maxseq,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// poddur
|
||||
// Type:
|
||||
// integer
|
||||
// Definition:
|
||||
// Indicates the total amount of time in seconds that advertisers may fill
|
||||
// for a “dynamic” video ad pod, or the dynamic portion of a “hybrid” ad pod.
|
||||
// This field is required only for the dynamic portion(s) of video ad pods.
|
||||
// This field refers to the length of the entire ad break, whereas
|
||||
// mindur/maxdur/rqddurs are constraints relating to the slots that make up the pod.
|
||||
PodDur int64 `json:"poddur,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// podid
|
||||
// Type:
|
||||
// integer
|
||||
// Definition:
|
||||
// Unique identifier indicating that an impression opportunity belongs to a
|
||||
// video ad pod. If multiple impression opportunities within a bid request
|
||||
// share the same podid, this indicates that those impression opportunities
|
||||
// belong to the same video ad pod.
|
||||
PodID int64 `json:"podid,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// podseq
|
||||
// Type:
|
||||
// integer; default 0
|
||||
// Definition:
|
||||
// The sequence (position) of the video ad pod within a content stream.
|
||||
// Refer to List: List: Pod Sequence for guidance on the use of this field.
|
||||
PodSeq PodSequence `json:"podseq,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// slotinpod
|
||||
// Type:
|
||||
// integer; default 0
|
||||
// Definition:
|
||||
// For video ad pods, this value indicates that the seller can guarantee delivery
|
||||
// against the indicated slot position in the pod.
|
||||
// Refer to List: List: Slot Position in Pod for guidance on the use of this field.
|
||||
SlotInPod SlotPositionInPod `json:"slotinpod,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// mincpmpersec
|
||||
// Type:
|
||||
// float
|
||||
// Definition:
|
||||
// Minimum CPM per second. This is a price floor for the “dynamic” portion of a
|
||||
// video ad pod, relative to the duration of bids an advertiser may submit.
|
||||
MinCPMPerSec float64 `json:"mincpmpersec,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// linear
|
||||
// Type:
|
||||
@@ -232,6 +294,25 @@ type VideoPlacement struct {
|
||||
// Refer to List: Companion Types.
|
||||
CompType []CompanionType `json:"comptype,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// expdir
|
||||
// Type:
|
||||
// integer array
|
||||
// Definition:
|
||||
// Directions in which the creative (video placement) is permitted to expand.
|
||||
// Refer to List: Expandable Directions.
|
||||
ExpDir []ExpandableDirection `json:"expdir,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// overlayexpdir
|
||||
// Type:
|
||||
// integer array
|
||||
// Definition:
|
||||
// Directions in which the creative (video overlay) is permitted to expand.
|
||||
// This is primarily used for non-linear videos.
|
||||
// Refer to List: Expandable Directions.
|
||||
OverlayExpDir []ExpandableDirection `json:"overlayexpdir,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// ext
|
||||
// Type:
|
||||
|
||||
+2
-2
@@ -31,7 +31,7 @@ type Video struct {
|
||||
// Minimum video ad duration in seconds. This field is mutually
|
||||
// exclusive with rqddurs; only one of minduration and rqddurs
|
||||
// may be in a bid request.
|
||||
MinDuration *int64 `json:"minduration,omitempty"`
|
||||
MinDuration int64 `json:"minduration,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// maxduration
|
||||
@@ -41,7 +41,7 @@ type Video struct {
|
||||
// Maximum video ad duration in seconds. This field is mutually
|
||||
// exclusive with rqddurs; only one of maxduration and rqddurs
|
||||
// may be in a bid request.
|
||||
MaxDuration *int64 `json:"maxduration,omitempty"`
|
||||
MaxDuration int64 `json:"maxduration,omitempty"`
|
||||
|
||||
// Attribute:
|
||||
// startdelay
|
||||
|
||||
Reference in New Issue
Block a user