Documentation ¶
Overview ¶
Package openrtb_ext defines all the input validation for Prebid Server's extensions to the OpenRTB 2.5 spec.
Most of these are defined by simple contract classes.
One notable exception is the bidder params, which have more complex validation rules. These are validated by a BidderParamValidator, which relies on the json-schemas from static/bidder-params/{bidder}.json
Index ¶
- Constants
- func BuildBidderMap() map[string]BidderName
- func BuildBidderNameHashSet() map[string]struct{}
- func BuildBidderStringSlice() []string
- func IsBidderNameReserved(name string) bool
- func IsKnownIOSAppTrackingStatus(v int64) bool
- type AdPod
- type AppExt
- type BidRequestVideo
- type BidResponseVideo
- type BidType
- type BidderName
- type BidderParamValidator
- type Cacheconfig
- type CookieStatus
- type DealTier
- type DealTierBidderMap
- type DeviceExt
- type ExtAcuityAds
- type ExtAdpone
- type ExtApp
- type ExtAppPrebid
- type ExtBid
- type ExtBidPrebid
- type ExtBidPrebidCache
- type ExtBidPrebidCacheBids
- type ExtBidPrebidEvents
- type ExtBidPrebidMeta
- type ExtBidPrebidVideo
- type ExtBidResponse
- type ExtBidderMessage
- type ExtData
- type ExtDevice
- type ExtDeviceInt
- type ExtDevicePrebid
- type ExtHttpCall
- type ExtImp33across
- type ExtImpAJA
- type ExtImpAMX
- type ExtImpAdOcean
- type ExtImpAdf
- type ExtImpAdform
- type ExtImpAdgeneration
- type ExtImpAdhese
- type ExtImpAdkernel
- type ExtImpAdkernelAdn
- type ExtImpAdman
- type ExtImpAdmixer
- type ExtImpAdoppler
- type ExtImpAdot
- type ExtImpAdprime
- type ExtImpAdtarget
- type ExtImpAdtelligent
- type ExtImpAdvangelists
- type ExtImpAdyoulike
- type ExtImpAlgorix
- type ExtImpApplogy
- type ExtImpAppnexus
- type ExtImpAppnexusKeyVal
- type ExtImpAvocet
- type ExtImpAxonix
- type ExtImpBeachfront
- type ExtImpBeachfrontAppIds
- type ExtImpBeintoo
- type ExtImpBetween
- type ExtImpBidmachine
- type ExtImpBidsCube
- type ExtImpBrightroll
- type ExtImpColossus
- type ExtImpConnectAd
- type ExtImpConsumable
- type ExtImpConversant
- type ExtImpCpmstar
- type ExtImpCriteo
- type ExtImpDatablocks
- type ExtImpDecenterAds
- type ExtImpDeepintent
- type ExtImpEPlanning
- type ExtImpEmxDigital
- type ExtImpEngageBDR
- type ExtImpFacebook
- type ExtImpGamma
- type ExtImpGamoshi
- type ExtImpGrid
- type ExtImpGumGum
- type ExtImpGumGumBanner
- type ExtImpGumGumVideo
- type ExtImpInMobi
- type ExtImpInteractiveoffers
- type ExtImpInvibes
- type ExtImpInvibesDebug
- type ExtImpIx
- type ExtImpJixie
- type ExtImpKidoz
- type ExtImpKubient
- type ExtImpLockerDome
- type ExtImpLogicad
- type ExtImpLunaMedia
- type ExtImpMadvertise
- type ExtImpMarsmedia
- type ExtImpMgid
- type ExtImpMobileFuse
- type ExtImpNanoInteractive
- type ExtImpNinthDecimal
- type ExtImpNoBid
- type ExtImpOnetag
- type ExtImpOpenx
- type ExtImpOrbidder
- type ExtImpOutbrain
- type ExtImpOutbrainPublisher
- type ExtImpPrebid
- type ExtImpPubmatic
- type ExtImpPubmaticKeyVal
- type ExtImpPubnative
- type ExtImpPulsePoint
- type ExtImpRhythmone
- type ExtImpRubicon
- type ExtImpSaLunamedia
- type ExtImpSharethrough
- type ExtImpSharethroughCreative
- type ExtImpSharethroughCreativeMetadata
- type ExtImpSharethroughResponse
- type ExtImpSmaato
- type ExtImpSmartRTB
- type ExtImpSmartadserver
- type ExtImpSomoaudience
- type ExtImpSonobi
- type ExtImpSovrn
- type ExtImpSynacormedia
- type ExtImpTappx
- type ExtImpTelaria
- type ExtImpTriplelift
- type ExtImpUcfunnel
- type ExtImpUnicorn
- type ExtImpUnruly
- type ExtImpValueImpression
- type ExtImpVerizonMedia
- type ExtImpVrtcal
- type ExtImpYeahmobi
- type ExtImpYieldlab
- type ExtImpYieldmo
- type ExtImpYieldone
- type ExtImpZeroClickFraud
- type ExtIncludeBrandCategory
- type ExtKayzen
- type ExtKrushmedia
- type ExtPublisher
- type ExtPublisherPrebid
- type ExtRegs
- type ExtRequest
- type ExtRequestCurrency
- type ExtRequestPrebid
- type ExtRequestPrebidCache
- type ExtRequestPrebidCacheBids
- type ExtRequestPrebidCacheVAST
- type ExtRequestPrebidData
- type ExtRequestPrebidDataEidPermission
- type ExtRequestPrebidSChain
- type ExtRequestPrebidSChainSChain
- type ExtRequestPrebidSChainSChainNode
- type ExtRequestTargeting
- type ExtResponseDebug
- type ExtResponsePrebid
- type ExtResponseSyncData
- type ExtSilverMob
- type ExtSite
- type ExtSmartHub
- type ExtSmartyAds
- type ExtStoredRequest
- type ExtUser
- type ExtUserEid
- type ExtUserEidUid
- type ExtUserPrebid
- type ExtUserSync
- type GranularityRange
- type IOSAppTrackingStatus
- type ImpExtBmtm
- type ImpExtEpom
- type ImpExtIQZone
- type ImpExtOperaads
- type ImpExtPangle
- type IncludeBrandCategory
- type Pod
- type PodConfig
- type PriceGranularity
- type PriceGranularityRaw
- type RegExt
- type RequestExt
- type RequestWrapper
- func (rw *RequestWrapper) GetAppExt() (*AppExt, error)
- func (rw *RequestWrapper) GetDeviceExt() (*DeviceExt, error)
- func (rw *RequestWrapper) GetRegExt() (*RegExt, error)
- func (rw *RequestWrapper) GetRequestExt() (*RequestExt, error)
- func (rw *RequestWrapper) GetSiteExt() (*SiteExt, error)
- func (rw *RequestWrapper) GetUserExt() (*UserExt, error)
- func (rw *RequestWrapper) RebuildRequest() error
- type SiteExt
- type SourceExt
- type TargetingKey
- type UserExt
- func (ue *UserExt) Dirty() bool
- func (ue *UserExt) GetConsent() *string
- func (ue *UserExt) GetEid() *[]ExtUserEid
- func (ue *UserExt) GetExt() map[string]json.RawMessage
- func (ue *UserExt) GetPrebid() *ExtUserPrebid
- func (ue *UserExt) SetConsent(consent *string)
- func (ue *UserExt) SetEid(eid *[]ExtUserEid)
- func (ue *UserExt) SetExt(ext map[string]json.RawMessage)
- func (ue *UserExt) SetPrebid(prebid *ExtUserPrebid)
- type UserSyncType
- type VideoTargeting
Constants ¶
const ( HbpbConstantKey TargetingKey = "hb_pb" // HbEnvKey exists to support the Prebid Universal Creative. If it exists, the only legal value is mobile-app. // It will exist only if the incoming bidRequest defined request.app instead of request.site. HbEnvKey TargetingKey = "hb_env" // HbCacheHost and HbCachePath exist to supply cache host and path as targeting parameters HbConstantCacheHostKey TargetingKey = "hb_cache_host" HbConstantCachePathKey TargetingKey = "hb_cache_path" // HbBidderConstantKey is the name of the Bidder. For example, "appnexus" or "rubicon". HbBidderConstantKey TargetingKey = "hb_bidder" HbSizeConstantKey TargetingKey = "hb_size" HbDealIDConstantKey TargetingKey = "hb_deal" // HbFormatKey is the format of the bid. For example, "video", "banner" HbFormatKey TargetingKey = "hb_format" // HbCacheKey and HbVastCacheKey store UUIDs which can be used to fetch things from prebid cache. // Callers should *never* assume that either of these exist, since the call to the cache may always fail. // // HbVastCacheKey's UUID will fetch the entire bid JSON, while HbVastCacheKey will fetch just the VAST XML. // HbVastCacheKey will only ever exist for Video bids. HbCacheKey TargetingKey = "hb_cache_id" HbVastCacheKey TargetingKey = "hb_uuid" // This is not a key, but values used by the HbEnvKey HbEnvKeyApp string = "mobile-app" HbCategoryDurationKey TargetingKey = "hb_pb_cat_dur" )
const FirstPartyDataContextExtKey = "context"
FirstPartyDataContextExtKey defines a field name within request.ext and request.imp.ext reserved for first party data.
const FirstPartyDataExtKey = "data"
FirstPartyDataExtKey defines a field name within request.ext and request.imp.ext reserved for first party data.
const MaxDecimalFigures int = 15
const NativeExchangeSpecificLowerBound = 500
NativeExchangeSpecificLowerBound defines the lower threshold of exchange specific types for native ads. There is no upper bound.
const PrebidExtBidderKey = "bidder"
PrebidExtBidderKey represents the field name within request.imp.ext.prebid reserved for bidder params.
const PrebidExtKey = "prebid"
PrebidExtKey represents the prebid extension key used in requests
const SKAdNExtKey = "skadn"
SKAdNExtKey defines the field name within request.ext reserved for Apple's SKAdNetwork.
const (
StoredRequestAttributes = "storedrequestattributes"
)
Variables ¶
This section is empty.
Functions ¶
func BuildBidderMap ¶
func BuildBidderMap() map[string]BidderName
BuildBidderMap builds a map of string to BidderName, to remain compatbile with the prebioud BidderMap variable.
func BuildBidderNameHashSet ¶
func BuildBidderNameHashSet() map[string]struct{}
func BuildBidderStringSlice ¶
func BuildBidderStringSlice() []string
BuildBidderStringSlice builds a slioce of strings for each BidderName.
func IsBidderNameReserved ¶
IsBidderNameReserved returns true if the specified name is a case insensitive match for a reserved bidder name.
func IsKnownIOSAppTrackingStatus ¶
IsKnownIOSAppTrackingStatus returns true if the value is a known iOS app tracking authorization status.
Types ¶
type AdPod ¶
type AdPod struct { PodId int64 `json:"podid"` Targeting []VideoTargeting `json:"targeting"` Errors []string `json:"errors"` }
type AppExt ¶ added in v0.169.0
type AppExt struct {
// contains filtered or unexported fields
}
func (*AppExt) GetPrebid ¶ added in v0.169.0
func (ae *AppExt) GetPrebid() *ExtAppPrebid
func (*AppExt) SetPrebid ¶ added in v0.169.0
func (ae *AppExt) SetPrebid(prebid *ExtAppPrebid)
type BidRequestVideo ¶
type BidRequestVideo struct { // Attribute: // storedrequestid // Type: // string; required // Description: // Unique ID of the stored request StoredRequestId string `json:"storedrequestid"` // Attribute: // podconfig // Type: // object; required // Description: // Container object for describing all the pod configurations PodConfig PodConfig `json:"podconfig"` // Attribute: // app // Type: // object; App or Site required // Description: // Application where the impression will be shown App *openrtb2.App `json:"app"` // Attribute: // site // Type: // object; App or Site required // Description: // Site where the impression will be shown Site *openrtb2.Site `json:"site"` // Attribute: // user // Type: // object; optional // Description: // Container object for the user of of the actual device User *openrtb2.User `json:"user,omitempty"` // Attribute: // device // Type: // object; optional // Description: // Device specific data Device openrtb2.Device `json:"device,omitempty"` // Attribute: // includebrandcategory // Type: // object; optional // Description: // Indicates that the response requires an adserver specific content category IncludeBrandCategory *IncludeBrandCategory `json:"includebrandcategory,omitempty"` // Attribute: // video // Type: // object; required // Description: // Player container object Video *openrtb2.Video `json:"video,omitempty"` // Attribute: // content // Type: // object; optional // Description: // Misc content meta data that can be used for targeting the adPod(s) Content openrtb2.Content `json:"content,omitempty"` // Attribute: // cacheconfig // Type: // object; optional // Description: // Container object for all Prebid Cache configs Cacheconfig Cacheconfig `json:"cacheconfig,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: // pricegranularity // Type: // object; optional // Description: // Object to tell ad server how much money the “bidder” demand is worth to you PriceGranularity PriceGranularity `json:"pricegranularity,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: // 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: // regs // Type: // object; optional // Description: // Contains the OpenRTB Regs object to be passed to OpenRTB request Regs *openrtb2.Regs `json:"regs,omitempty"` // Attribute: // supportdeals // Type: // bool; optional // Description: // Indicates that the response should update key to include prefix and tier SupportDeals bool `json:"supportdeals,omitempty"` // Attribute: // appendbiddernames // Type: // boolean, optional // Flag indicating if the bidder name will be added to the hb_pb_cat_dur. Default is false. AppendBidderNames bool `json:"appendbiddernames,omitempty"` }
type BidResponseVideo ¶
type BidResponseVideo struct { AdPods []*AdPod `json:"adPods"` Ext json.RawMessage `json:"ext,omitempty"` }
type BidType ¶
type BidType string
BidType describes the allowed values for bidresponse.seatbid.bid[i].ext.prebid.type
func ParseBidType ¶
type BidderName ¶
type BidderName string
BidderName refers to a core bidder id or an alias id.
const ( BidderReservedAll BidderName = "all" // Reserved for the /info/bidders/all endpoint. BidderReservedContext BidderName = "context" // Reserved for first party data. BidderReservedData BidderName = "data" // Reserved for first party data. BidderReservedGeneral BidderName = "general" // Reserved for non-bidder specific messages when using a map keyed on the bidder name. BidderReservedPrebid BidderName = "prebid" // Reserved for Prebid Server configuration. BidderReservedSKAdN BidderName = "skadn" // Reserved for Apple's SKAdNetwork OpenRTB extension. )
Names of reserved bidders. These names may not be used by a core bidder or alias.
const ( Bidder33Across BidderName = "33across" BidderAcuityAds BidderName = "acuityads" BidderAdagio BidderName = "adagio" BidderAdf BidderName = "adf" BidderAdform BidderName = "adform" BidderAdgeneration BidderName = "adgeneration" BidderAdhese BidderName = "adhese" BidderAdkernel BidderName = "adkernel" BidderAdkernelAdn BidderName = "adkernelAdn" BidderAdman BidderName = "adman" BidderAdmixer BidderName = "admixer" BidderAdOcean BidderName = "adocean" BidderAdoppler BidderName = "adoppler" BidderAdot BidderName = "adot" BidderAdpone BidderName = "adpone" BidderAdprime BidderName = "adprime" BidderAdtarget BidderName = "adtarget" BidderAdtelligent BidderName = "adtelligent" BidderAdvangelists BidderName = "advangelists" BidderAdxcg BidderName = "adxcg" BidderAdyoulike BidderName = "adyoulike" BidderAJA BidderName = "aja" BidderAlgorix BidderName = "algorix" BidderAMX BidderName = "amx" BidderApplogy BidderName = "applogy" BidderAppnexus BidderName = "appnexus" BidderAudienceNetwork BidderName = "audienceNetwork" BidderAvocet BidderName = "avocet" BidderAxonix BidderName = "axonix" BidderBeachfront BidderName = "beachfront" BidderBeintoo BidderName = "beintoo" BidderBetween BidderName = "between" BidderBidmachine BidderName = "bidmachine" BidderBidmyadz BidderName = "bidmyadz" BidderBidsCube BidderName = "bidscube" BidderBmtm BidderName = "bmtm" BidderBrightroll BidderName = "brightroll" BidderColossus BidderName = "colossus" BidderConnectAd BidderName = "connectad" BidderConsumable BidderName = "consumable" BidderConversant BidderName = "conversant" BidderCpmstar BidderName = "cpmstar" BidderCriteo BidderName = "criteo" BidderDatablocks BidderName = "datablocks" BidderDmx BidderName = "dmx" BidderDecenterAds BidderName = "decenterads" BidderDeepintent BidderName = "deepintent" BidderEmxDigital BidderName = "emx_digital" BidderEngageBDR BidderName = "engagebdr" BidderEPlanning BidderName = "eplanning" BidderEpom BidderName = "epom" BidderEVolution BidderName = "e_volution" BidderGamma BidderName = "gamma" BidderGamoshi BidderName = "gamoshi" BidderGrid BidderName = "grid" BidderGumGum BidderName = "gumgum" BidderImprovedigital BidderName = "improvedigital" BidderInMobi BidderName = "inmobi" BidderInteractiveoffers BidderName = "interactiveoffers" BidderInvibes BidderName = "invibes" BidderIQZone BidderName = "iqzone" BidderIx BidderName = "ix" BidderJixie BidderName = "jixie" BidderKayzen BidderName = "kayzen" BidderKidoz BidderName = "kidoz" BidderKrushmedia BidderName = "krushmedia" BidderKubient BidderName = "kubient" BidderLockerDome BidderName = "lockerdome" BidderLogicad BidderName = "logicad" BidderLunaMedia BidderName = "lunamedia" BidderSaLunaMedia BidderName = "sa_lunamedia" BidderMadvertise BidderName = "madvertise" BidderMarsmedia BidderName = "marsmedia" BidderMediafuse BidderName = "mediafuse" BidderMgid BidderName = "mgid" BidderMobfoxpb BidderName = "mobfoxpb" BidderMobileFuse BidderName = "mobilefuse" BidderNanoInteractive BidderName = "nanointeractive" BidderNinthDecimal BidderName = "ninthdecimal" BidderNoBid BidderName = "nobid" BidderOneTag BidderName = "onetag" BidderOpenx BidderName = "openx" BidderOperaads BidderName = "operaads" BidderOrbidder BidderName = "orbidder" BidderOutbrain BidderName = "outbrain" BidderPangle BidderName = "pangle" BidderPubmatic BidderName = "pubmatic" BidderPubnative BidderName = "pubnative" BidderPulsepoint BidderName = "pulsepoint" BidderRevcontent BidderName = "revcontent" BidderRhythmone BidderName = "rhythmone" BidderRTBHouse BidderName = "rtbhouse" BidderRubicon BidderName = "rubicon" BidderSilverMob BidderName = "silvermob" BidderSmaato BidderName = "smaato" BidderSmartAdserver BidderName = "smartadserver" BidderSmartHub BidderName = "smarthub" BidderSmartRTB BidderName = "smartrtb" BidderSmartyAds BidderName = "smartyads" BidderSmileWanted BidderName = "smilewanted" BidderSomoaudience BidderName = "somoaudience" BidderSonobi BidderName = "sonobi" BidderSovrn BidderName = "sovrn" BidderSynacormedia BidderName = "synacormedia" BidderTappx BidderName = "tappx" BidderTelaria BidderName = "telaria" BidderTriplelift BidderName = "triplelift" BidderTripleliftNative BidderName = "triplelift_native" BidderTrustX BidderName = "trustx" BidderUcfunnel BidderName = "ucfunnel" BidderUnicorn BidderName = "unicorn" BidderUnruly BidderName = "unruly" BidderValueImpression BidderName = "valueimpression" BidderVerizonMedia BidderName = "verizonmedia" BidderVisx BidderName = "visx" BidderViewdeos BidderName = "viewdeos" BidderVrtcal BidderName = "vrtcal" BidderYeahmobi BidderName = "yeahmobi" BidderYieldlab BidderName = "yieldlab" BidderYieldmo BidderName = "yieldmo" BidderYieldone BidderName = "yieldone" BidderZeroClickFraud BidderName = "zeroclickfraud" )
Names of core bidders. These names *must* match the bidder code in Prebid.js if an adapter also exists in that project. You may *not* use the name 'general' as that is reserved for general error messages nor 'context' as that is reserved for first party data.
Please keep this list alphabetized to minimize merge conflicts.
func CoreBidderNames ¶
func CoreBidderNames() []BidderName
CoreBidderNames returns a slice of all core bidders.
func NormalizeBidderName ¶
func NormalizeBidderName(name string) (BidderName, bool)
func (BidderName) MarshalJSON ¶
func (name BidderName) MarshalJSON() ([]byte, error)
func (*BidderName) String ¶
func (name *BidderName) String() string
type BidderParamValidator ¶
type BidderParamValidator interface { Validate(name BidderName, ext json.RawMessage) error // Schema returns the JSON schema used to perform validation. Schema(name BidderName) string }
The BidderParamValidator is used to enforce bidrequest.imp[i].ext.{anyBidder} values.
This is treated differently from the other types because we rely on JSON-schemas to validate bidder params.
func NewBidderParamsValidator ¶
func NewBidderParamsValidator(schemaDirectory string) (BidderParamValidator, error)
NewBidderParamsValidator makes a BidderParamValidator, assuming all the necessary files exist in the filesystem. This will error if, for example, a Bidder gets added but no JSON schema is written for them.
type Cacheconfig ¶
type Cacheconfig struct { // Attribute: // ttl // Type: // int; optional // Time to Live for a cache entry specified in seconds Ttl int `json:"ttl"` }
type CookieStatus ¶
type CookieStatus string
CookieStatus describes the allowed values for bidresponse.ext.usersync.{bidder}.status
const ( CookieNone CookieStatus = "none" CookieExpired CookieStatus = "expired" CookieAvailable CookieStatus = "available" )
type DealTier ¶
type DealTier struct { // Prefix specifies the beginning of the hb_pb_cat_dur targeting key value. Must be non-empty. Prefix string `json:"prefix"` // MinDealTier specifies the minimum deal priority value (inclusive) that must be met for the targeting // key value to be modified. Must be greater than 0. MinDealTier int `json:"minDealTier"` }
DealTier defines the configuration of a deal tier.
type DealTierBidderMap ¶
type DealTierBidderMap map[BidderName]DealTier
DealTierBidderMap defines a correlation between bidders and deal tiers.
func ReadDealTiersFromImp ¶
func ReadDealTiersFromImp(imp openrtb2.Imp) (DealTierBidderMap, error)
ReadDealTiersFromImp returns a map of bidder deal tiers read from the impression of an original request (not split / cleaned).
type DeviceExt ¶ added in v0.169.0
type DeviceExt struct {
// contains filtered or unexported fields
}
func (*DeviceExt) GetExt ¶ added in v0.169.0
func (de *DeviceExt) GetExt() map[string]json.RawMessage
func (*DeviceExt) GetPrebid ¶ added in v0.169.0
func (de *DeviceExt) GetPrebid() *ExtDevicePrebid
func (*DeviceExt) SetExt ¶ added in v0.169.0
func (de *DeviceExt) SetExt(ext map[string]json.RawMessage)
func (*DeviceExt) SetPrebid ¶ added in v0.169.0
func (de *DeviceExt) SetPrebid(prebid *ExtDevicePrebid)
type ExtAcuityAds ¶
type ExtApp ¶
type ExtApp struct {
Prebid ExtAppPrebid `json:"prebid"`
}
ExtApp defines the contract for bidrequest.app.ext
type ExtAppPrebid ¶
ExtAppPrebid further defines the contract for bidrequest.app.ext.prebid. We are only enforcing that these two properties be strings if they are provided. They are optional with no current constraints on value, so we don't need a custom UnmarshalJSON() method at this time.
type ExtBid ¶
type ExtBid struct {
Prebid *ExtBidPrebid `json:"prebid,omitempty"`
}
ExtBid defines the contract for bidresponse.seatbid.bid[i].ext
type ExtBidPrebid ¶
type ExtBidPrebid struct { Cache *ExtBidPrebidCache `json:"cache,omitempty"` DealPriority int `json:"dealpriority,omitempty"` DealTierSatisfied bool `json:"dealtiersatisfied,omitempty"` Meta *ExtBidPrebidMeta `json:"meta,omitempty"` Targeting map[string]string `json:"targeting,omitempty"` Type BidType `json:"type"` Video *ExtBidPrebidVideo `json:"video,omitempty"` Events *ExtBidPrebidEvents `json:"events,omitempty"` BidId string `json:"bidid,omitempty"` }
ExtBidPrebid defines the contract for bidresponse.seatbid.bid[i].ext.prebid DealPriority represents priority of deal bid. If its non deal bid then value will be 0 DealTierSatisfied true represents corresponding bid has satisfied the deal tier
type ExtBidPrebidCache ¶
type ExtBidPrebidCache struct { Key string `json:"key"` Url string `json:"url"` Bids *ExtBidPrebidCacheBids `json:"bids,omitempty"` }
ExtBidPrebidCache defines the contract for bidresponse.seatbid.bid[i].ext.prebid.cache
type ExtBidPrebidCacheBids ¶
type ExtBidPrebidEvents ¶
type ExtBidPrebidEvents struct { Win string `json:"win,omitempty"` Imp string `json:"imp,omitempty"` }
ExtBidPrebidEvents defines the contract for bidresponse.seatbid.bid[i].ext.prebid.events
type ExtBidPrebidMeta ¶
type ExtBidPrebidMeta struct { AdvertiserDomains []string `json:"advertiserDomains,omitempty"` // or advertiserDomain? AdvertiserID int `json:"advertiserId,omitempty"` AdvertiserName string `json:"advertiserName,omitempty"` AgencyID int `json:"agencyId,omitempty"` AgencyName string `json:"agencyName,omitempty"` BrandID int `json:"brandId,omitempty"` BrandName string `json:"brandName,omitempty"` MediaType string `json:"mediaType,omitempty"` NetworkID int `json:"networkId,omitempty"` NetworkName string `json:"networkName,omitempty"` PrimaryCategoryID string `json:"primaryCatId,omitempty"` SecondaryCategoryIDs []string `json:"secondaryCatIds,omitempty"` }
ExtBidPrebidMeta defines the contract for bidresponse.seatbid.bid[i].ext.prebid.meta
type ExtBidPrebidVideo ¶
type ExtBidPrebidVideo struct { Duration int `json:"duration"` PrimaryCategory string `json:"primary_category"` }
ExtBidPrebidVideo defines the contract for bidresponse.seatbid.bid[i].ext.prebid.video
type ExtBidResponse ¶
type ExtBidResponse struct { Debug *ExtResponseDebug `json:"debug,omitempty"` // Errors defines the contract for bidresponse.ext.errors Errors map[BidderName][]ExtBidderMessage `json:"errors,omitempty"` Warnings map[BidderName][]ExtBidderMessage `json:"warnings,omitempty"` // ResponseTimeMillis defines the contract for bidresponse.ext.responsetimemillis ResponseTimeMillis map[BidderName]int `json:"responsetimemillis,omitempty"` // RequestTimeoutMillis returns the timeout used in the auction. // This is useful if the timeout is saved in the Stored Request on the server. // Clients can run one auction, and then use this to set better connection timeouts on future auction requests. RequestTimeoutMillis int64 `json:"tmaxrequest,omitempty"` // ResponseUserSync defines the contract for bidresponse.ext.usersync Usersync map[BidderName]*ExtResponseSyncData `json:"usersync,omitempty"` // Prebid defines the contract for bidresponse.ext.prebid Prebid *ExtResponsePrebid `json:"prebid,omitempty"` }
ExtBidResponse defines the contract for bidresponse.ext
type ExtBidderMessage ¶
ExtBidderMessage defines an error object to be returned, consiting of a machine readable error code, and a human readable error message string.
type ExtDevice ¶
type ExtDevice struct { // Attribute: // atts // Type: // integer; optional - iOS Only // Description: // iOS app tracking authorization status. // Extension Spec: // https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/extensions/community_extensions/skadnetwork.md ATTS *IOSAppTrackingStatus `json:"atts"` // Attribute: // prebid // Type: // object; optional // Description: // Prebid extensions for the Device object. Prebid ExtDevicePrebid `json:"prebid"` }
ExtDevice defines the contract for bidrequest.device.ext
type ExtDeviceInt ¶
type ExtDeviceInt struct { MinWidthPerc int64 `json:"minwidtheperc"` MinHeightPerc int64 `json:"minheightperc"` }
ExtDeviceInt defines the contract for bidrequest.device.ext.prebid.interstitial
func (*ExtDeviceInt) UnmarshalJSON ¶
func (edi *ExtDeviceInt) UnmarshalJSON(b []byte) error
type ExtDevicePrebid ¶
type ExtDevicePrebid struct {
Interstitial *ExtDeviceInt `json:"interstitial"`
}
ExtDevicePrebid defines the contract for bidrequest.device.ext.prebid
type ExtHttpCall ¶
type ExtHttpCall struct { Uri string `json:"uri"` RequestBody string `json:"requestbody"` RequestHeaders map[string][]string `json:"requestheaders"` ResponseBody string `json:"responsebody"` Status int `json:"status"` }
ExtHttpCall defines the contract for a bidresponse.ext.debug.httpcalls.{bidder}[i]
type ExtImp33across ¶
type ExtImp33across struct { SiteId string `json:"siteId"` ZoneId string `json:"zoneId,omitempty"` ProductId string `json:"productId,omitempty"` }
ExtImp33across defines the contract for bidrequest.imp[i].ext.33across
type ExtImpAMX ¶
type ExtImpAMX struct { TagID string `json:"tagId,omitempty"` AdUnitID string `json:"adUnitId,omitempty"` }
ExtImpAMX is the imp.ext format for the AMX bidder
type ExtImpAdOcean ¶
type ExtImpAdform ¶
type ExtImpAdgeneration ¶
type ExtImpAdgeneration struct {
Id string `json:"id"`
}
type ExtImpAdhese ¶
type ExtImpAdhese struct { Account string `json:"account"` Location string `json:"location"` Format string `json:"format"` Keywords json.RawMessage `json:"targets,omitempty"` }
type ExtImpAdkernel ¶
ExtImpAdkernel defines the contract for bidrequest.imp[i].ext.adkernel
type ExtImpAdkernelAdn ¶
type ExtImpAdkernelAdn struct { PublisherID int `json:"pubId"` Host string `json:"host,omitempty"` }
ExtImpAdkernelAdn defines the contract for bidrequest.imp[i].ext.adkernelAdn
type ExtImpAdman ¶
type ExtImpAdman struct {
TagID string `json:"TagID"`
}
ExtImpAdman defines adman specifiec param
type ExtImpAdmixer ¶
type ExtImpAdoppler ¶
type ExtImpAdot ¶
type ExtImpAdprime ¶
type ExtImpAdprime struct {
TagID string `json:"TagID"`
}
ExtImpAdprime defines adprime specifiec param
type ExtImpAdtarget ¶
type ExtImpAdtarget struct { SourceId int `json:"aid"` PlacementId int `json:"placementId,omitempty"` SiteId int `json:"siteId,omitempty"` BidFloor float64 `json:"bidFloor,omitempty"` }
ExtImpAdtarget defines the contract for bidrequest.imp[i].ext.adtarget
type ExtImpAdtelligent ¶
type ExtImpAdtelligent struct { SourceId int `json:"aid"` PlacementId int `json:"placementId,omitempty"` SiteId int `json:"siteId,omitempty"` BidFloor float64 `json:"bidFloor,omitempty"` }
ExtImpAdtelligent defines the contract for bidrequest.imp[i].ext.adtelligent
type ExtImpAdvangelists ¶
type ExtImpAdyoulike ¶
type ExtImpAdyoulike struct { // placementId, only mandatory field PlacementId string `json:"placement"` // Id of the forced campaign Campaign string `json:"campaign"` // Id of the forced track Track string `json:"track"` // Id of the forced creative Creative string `json:"creative"` // Context of the campaign values [SSP|AdServer] Source string `json:"source"` // Abitrary Id used for debug purpose Debug string `json:"debug"` }
ExtImpAdyoulike defines the contract for bidrequest.imp[i].ext.adyoulike
type ExtImpAlgorix ¶ added in v0.163.0
ExtImpAlgoriX defines the contract for bidrequest.imp[i].ext.algorix
type ExtImpApplogy ¶
type ExtImpApplogy struct {
Token string `json:"token"`
}
type ExtImpAppnexus ¶
type ExtImpAppnexus struct { LegacyPlacementId int `json:"placementId"` LegacyInvCode string `json:"invCode"` LegacyTrafficSourceCode string `json:"trafficSourceCode"` PlacementId int `json:"placement_id"` InvCode string `json:"inv_code"` Member string `json:"member"` Keywords []*ExtImpAppnexusKeyVal `json:"keywords"` TrafficSourceCode string `json:"traffic_source_code"` Reserve float64 `json:"reserve"` Position string `json:"position"` UsePmtRule *bool `json:"use_pmt_rule"` // At this time we do no processing on the private sizes, so just leaving it as a JSON blob. PrivateSizes json.RawMessage `json:"private_sizes"` AdPodId bool `json:"generate_ad_pod_id"` }
ExtImpAppnexus defines the contract for bidrequest.imp[i].ext.appnexus
type ExtImpAppnexusKeyVal ¶
type ExtImpAppnexusKeyVal struct { Key string `json:"key,omitempty"` Values []string `json:"value,omitempty"` }
ExtImpAppnexusKeyVal defines the contract for bidrequest.imp[i].ext.appnexus.keywords[i]
type ExtImpAvocet ¶
type ExtImpAvocet struct { Placement string `json:"placement,omitempty"` PlacementCode string `json:"placement_code,omitempty"` }
ExtImpAvocet defines the contract for bidrequest.imp[i].ext.avocet
type ExtImpAxonix ¶ added in v0.167.0
type ExtImpAxonix struct {
SupplyId string `json:"supplyId"`
}
type ExtImpBeachfront ¶
type ExtImpBeachfront struct { AppId string `json:"appId"` AppIds ExtImpBeachfrontAppIds `json:"appIds"` BidFloor float64 `json:"bidfloor"` VideoResponseType string `json:"videoResponseType, omitempty"` }
type ExtImpBeachfrontAppIds ¶
type ExtImpBeintoo ¶
type ExtImpBetween ¶
type ExtImpBidmachine ¶
type ExtImpBidsCube ¶
type ExtImpBidsCube struct {
PlacementID string `json:"placementId"`
}
type ExtImpBrightroll ¶
type ExtImpBrightroll struct {
Publisher string `json:"publisher"`
}
ExtImpBrightroll defines the contract for bidrequest.imp[i].ext.brightroll
type ExtImpColossus ¶
type ExtImpColossus struct {
TagID string `json:"TagID"`
}
ExtImpColossus defines colossus specifiec param
type ExtImpConnectAd ¶
type ExtImpConsumable ¶
type ExtImpConsumable struct { NetworkId int `json:"networkId,omitempty"` SiteId int `json:"siteId,omitempty"` UnitId int `json:"unitId,omitempty"` /* UnitName gets used as a classname and in the URL when building the ad markup */ UnitName string `json:"unitName,omitempty"` }
ExtImpConsumable defines the contract for bidrequest.imp[i].ext.consumable
type ExtImpConversant ¶
type ExtImpConversant struct { SiteID string `json:"site_id"` Secure *int8 `json:"secure"` TagID string `json:"tag_id"` Position *int8 `json:"position"` BidFloor float64 `json:"bidfloor"` MIMEs []string `json:"mimes"` API []int8 `json:"api"` Protocols []int8 `json:"protocols"` MaxDuration *int64 `json:"maxduration"` }
type ExtImpCpmstar ¶
type ExtImpCriteo ¶
ExtImpCriteo defines the contract for bidrequest.imp[i].ext.criteo
type ExtImpDatablocks ¶
ExtImpDatablocks defines the contract for bidrequest.imp[i].ext.datablocks
type ExtImpDecenterAds ¶
type ExtImpDecenterAds struct {
PlacementID string `json:"placementId"`
}
type ExtImpDeepintent ¶
type ExtImpDeepintent struct {
TagID string `json:tagId`
}
type ExtImpEPlanning ¶
type ExtImpEPlanning struct { ClientID string `json:"ci"` AdUnitCode string `json:"adunit_code"` SizeString string }
ExtImpEPlanning defines the contract for bidrequest.imp[i].ext.eplanning
type ExtImpEmxDigital ¶
type ExtImpEngageBDR ¶
type ExtImpEngageBDR struct {
Sspid string `json:"sspid"`
}
ExtImpEngageBDR defines the contract for bidrequest.imp[i].ext.engagebdr
type ExtImpFacebook ¶
type ExtImpGamma ¶
type ExtImpGamma struct { PartnerID string `json:"id"` ZoneID string `json:"zid"` WebID string `json:"wid"` }
ExtImpGamma defines the contract for bidrequest.imp[i].ext.gamma
type ExtImpGamoshi ¶
type ExtImpGamoshi struct { SupplyPartnerId string `json:"supplyPartnerId"` FavoredMediaType string `json:"favoredMediaType"` }
ExtImpGamoshi defines the contract for bidrequest.imp[i].ext.gamoshi
type ExtImpGrid ¶
type ExtImpGrid struct { Uid int `json:"uid"` Keywords json.RawMessage `json:"keywords,omitempty"` }
ExtImpGrid defines the contract for bidrequest.imp[i].ext.grid
type ExtImpGumGum ¶
type ExtImpGumGum struct { Zone string `json:"zone,omitempty"` PubID float64 `json:"pubId,omitempty"` IrisID string `json:"irisid,omitempty"` Slot float64 `json:"slot,omitempty"` }
ExtImpGumGum defines the contract for bidrequest.imp[i].ext.gumgum Either Zone or PubId must be present, others are optional parameters
type ExtImpGumGumBanner ¶ added in v0.172.0
type ExtImpGumGumBanner struct { Si float64 `json:"si,omitempty"` MaxW float64 `json:"maxw,omitempty"` MaxH float64 `json:"maxh,omitempty"` }
ExtImpGumGumBanner defines the contract for bidresponse.seatbid.bid[i].ext.gumgum.banner
type ExtImpGumGumVideo ¶
type ExtImpGumGumVideo struct {
IrisID string `json:"irisid,omitempty"`
}
ExtImpGumGumVideo defines the contract for bidresponse.seatbid.bid[i].ext.gumgum.video
type ExtImpInMobi ¶
type ExtImpInMobi struct {
Plc string `json:"plc"`
}
type ExtImpInteractiveoffers ¶
type ExtImpInteractiveoffers struct {
PubID int `json:"pubid"`
}
type ExtImpInvibes ¶
type ExtImpInvibes struct { PlacementID string `json:"placementId,omitempty"` DomainID int `json:"domainId"` Debug ExtImpInvibesDebug `json:"debug,omitempty"` }
type ExtImpInvibesDebug ¶
type ExtImpJixie ¶
type ExtImpKidoz ¶
type ExtImpKubient ¶
type ExtImpKubient struct {
ZoneID string `json:"zoneid"`
}
ExtImpKubient defines the contract for bidrequest.imp[i].ext.kubient
type ExtImpLockerDome ¶
type ExtImpLockerDome struct { // LockerDome params AdUnitId string `json:"adUnitId"` }
ExtImpLockerDome defines the contract for bidrequest.imp[i].ext.lockerdome
type ExtImpLogicad ¶
type ExtImpLogicad struct {
Tid string `json:"tid"`
}
type ExtImpLunaMedia ¶
type ExtImpMadvertise ¶
type ExtImpMadvertise struct {
ZoneID string `json:"zoneId"`
}
ExtImpMadvertise defines the contract for bidrequest.imp[i].ext.madvertise
type ExtImpMarsmedia ¶
type ExtImpMarsmedia struct {
ZoneID string `json:"zone"`
}
ExtImpMarsmedia defines the contract for bidrequest.imp[i].ext.marsmedia
type ExtImpMgid ¶
type ExtImpMgid struct { AccountId string `json:"accountId"` PlacementId string `json:"placementId,omitempty"` Cur string `json:"cur"` Currency string `json:"currency"` BidFloor float64 `json:"bidfloor"` BidFloor2 float64 `json:"bidFloor"` }
ExtImpMgid defines the contract for bidrequest.imp[i].ext.mgid
type ExtImpMobileFuse ¶
type ExtImpMobileFuse struct { PlacementId int `json:"placement_id"` PublisherId int `json:"pub_id"` TagidSrc string `json:"tagid_src"` }
ExtImpMobileFuse defines the contract for bidrequest.imp[i].ext.mobilefuse
type ExtImpNanoInteractive ¶
type ExtImpNanoInteractive struct { Pid string `json:"pid"` Nq []string `json:"nq, omitempty"` Category string `json:"category, omitempty"` SubId string `json:"subId, omitempty"` Ref string `json:"ref, omitempty"` }
ExtImpNanoInteractive defines the contract for bidrequest.imp[i].ext.nanointeractive
type ExtImpNinthDecimal ¶
type ExtImpNoBid ¶
type ExtImpOnetag ¶
type ExtImpOnetag struct { PubId string `json:"pubId"` Ext json.RawMessage `json:"ext"` }
type ExtImpOpenx ¶
type ExtImpOpenx struct { Unit string `json:"unit"` Platform string `json:"platform"` DelDomain string `json:"delDomain"` CustomFloor float64 `json:"customFloor"` CustomParams map[string]interface{} `json:"customParams"` }
ExtImpOpenx defines the contract for bidrequest.imp[i].ext.openx
type ExtImpOrbidder ¶
type ExtImpOrbidder struct { AccountId string `json:"accountId"` PlacementId string `json:"placementId"` BidFloor float64 `json:"bidfloor"` }
ExtImpOrbidder defines the contract for bidrequest.imp[i].ext.openx
type ExtImpOutbrain ¶
type ExtImpOutbrain struct { Publisher ExtImpOutbrainPublisher `json:"publisher"` TagId string `json:"tagid"` BCat []string `json:"bcat"` BAdv []string `json:"badv"` }
ExtImpOutbrain defines the contract for bidrequest.imp[i].ext.outbrain
type ExtImpOutbrainPublisher ¶
type ExtImpPrebid ¶
type ExtImpPrebid struct { // StoredRequest specifies which stored impression to use, if any. StoredRequest *ExtStoredRequest `json:"storedrequest"` // IsRewardedInventory is a signal intended for video impressions. Must be 0 or 1. IsRewardedInventory int8 `json:"is_rewarded_inventory"` // Bidder is the preferred approach for providing paramters to be interepreted by the bidder's adapter. Bidder map[string]json.RawMessage `json:"bidder"` }
ExtImpPrebid defines the contract for bidrequest.imp[i].ext.prebid
type ExtImpPubmatic ¶
type ExtImpPubmatic struct { PublisherId string `json:"publisherId"` AdSlot string `json:"adSlot"` Dctr string `json:"dctr"` PmZoneID string `json:"pmzoneid"` WrapExt json.RawMessage `json:"wrapper,omitempty"` Keywords []*ExtImpPubmaticKeyVal `json:"keywords,omitempty"` }
type ExtImpPubmaticKeyVal ¶
type ExtImpPubmaticKeyVal struct { Key string `json:"key,omitempty"` Values []string `json:"value,omitempty"` }
ExtImpPubmaticKeyVal defines the contract for bidrequest.imp[i].ext.pubmatic.keywords[i]
type ExtImpPubnative ¶
type ExtImpPulsePoint ¶
type ExtImpRhythmone ¶
type ExtImpRhythmone struct { PlacementId string `json:"placementId"` Zone string `json:"zone"` Path string `json:"path"` S2S bool }
ExtImpRhythmone defines the contract for bidrequest.imp[i].ext.rhythmone
type ExtImpRubicon ¶
type ExtImpRubicon struct { AccountId int `json:"accountId"` SiteId int `json:"siteId"` ZoneId int `json:"zoneId"` Inventory json.RawMessage `json:"inventory,omitempty"` Visitor json.RawMessage `json:"visitor,omitempty"` Video rubiconVideoParams `json:"video"` Debug impExtRubiconDebug `json:"debug,omitempty"` }
ExtImpRubicon defines the contract for bidrequest.imp[i].ext.rubicon
type ExtImpSaLunamedia ¶ added in v0.166.0
type ExtImpSharethrough ¶
type ExtImpSharethrough struct {}
ExtImpSharethrough defines the contract for bidrequest.imp[i].ext.sharethrough
type ExtImpSharethroughCreative ¶
type ExtImpSharethroughCreative struct {}
type ExtImpSharethroughCreativeMetadata ¶
type ExtImpSharethroughCreativeMetadata struct {}
type ExtImpSharethroughResponse ¶
type ExtImpSharethroughResponse struct {}
type ExtImpSmaato ¶
type ExtImpSmaato struct { PublisherID string `json:"publisherId"` AdSpaceID string `json:"adspaceId"` AdBreakID string `json:"adbreakId"` }
ExtImpSmaato defines the contract for bidrequest.imp[i].ext.smaato PublisherId and AdSpaceId are mandatory parameters for non adpod (long-form video) requests, others are optional parameters PublisherId and AdBreakId are mandatory parameters for adpod (long-form video) requests, others are optional parameters AdSpaceId is identifier for specific ad placement or ad tag AdBreakId is identifier for specific ad placement or ad tag
type ExtImpSmartRTB ¶
type ExtImpSmartadserver ¶
type ExtImpSmartadserver struct { SiteID int `json:"siteId"` PageID int `json:"pageId"` FormatID int `json:"formatId"` NetworkID int `json:"networkId"` }
ExtImpSmartadserver defines the contract for bidrequest.imp[i].ext.smartadserver
type ExtImpSomoaudience ¶
type ExtImpSonobi ¶
type ExtImpSonobi struct {
TagID string `json:"tagid"`
}
type ExtImpSovrn ¶
type ExtImpSynacormedia ¶
ExtImpSynacormedia defines the contract for bidrequest.imp[i].ext.synacormedia
type ExtImpTappx ¶
type ExtImpTelaria ¶
type ExtImpTelaria struct { AdCode string `json:"adCode,omitempty"` SeatCode string `json:"seatCode"` Extra json.RawMessage `json:"extra,omitempty"` }
type ExtImpTriplelift ¶
type ExtImpTriplelift struct { InvCode string `json:"inventoryCode"` Floor *float64 `json:"floor"` }
ExtImpTriplelift defines the contract for bidrequest.imp[i].ext.triplelift
type ExtImpUcfunnel ¶
type ExtImpUcfunnel struct { AdUnitId string `json:"adunitid"` PartnerId string `json:"partnerid"` }
ExtImpUcfunnel defines the contract for bidrequest.imp[i].ext.ucfunnel
type ExtImpUnicorn ¶
type ExtImpUnicorn struct { PlacementID string `json:"placementId,omitempty"` PublisherID int `json:"publisherId,omitempty"` MediaID string `json:"mediaId"` AccountID int `json:"accountId"` }
ExtImpUnicorn defines the contract for bidrequest.imp[i].ext.unicorn
type ExtImpUnruly ¶
type ExtImpValueImpression ¶
type ExtImpValueImpression struct {
SiteId string `json:"siteId"`
}
type ExtImpVerizonMedia ¶
ExtImpVerizonMedia defines the contract for bidrequest.imp[i].ext.verizonmedia
type ExtImpVrtcal ¶
type ExtImpVrtcal struct {
Just_an_unused_vrtcal_param string `json:"Just_an_unused_vrtcal_param"`
}
ExtImpVrtcal defines the contract for bidrequest.imp[i].ext.vrtcal
type ExtImpYeahmobi ¶
ExtImpYeahmobi defines the contract for bidrequest.imp[i].ext.yeahmobi
type ExtImpYieldlab ¶
type ExtImpYieldlab struct { AdslotID string `json:"adslotId"` SupplyID string `json:"supplyId"` AdSize string `json:"adSize"` Targeting map[string]string `json:"targeting"` ExtId string `json:"extId"` }
ExtImpYieldlab defines the contract for bidrequest.imp[i].ext.yieldlab
type ExtImpYieldmo ¶
type ExtImpYieldmo struct {
PlacementId string `json:"placementId"`
}
ExtImpYieldmo defines the contract for bidrequest.imp[i].ext.yieldmo
type ExtImpYieldone ¶
type ExtImpYieldone struct {
PlacementId string `json:"placementId"`
}
ExtImpYieldone defines the contract for bidrequest.imp[i].ext.yieldone
type ExtImpZeroClickFraud ¶
ExtImpZeroClickFraud defines the contract for bidrequest.imp[i].ext.datablocks
type ExtIncludeBrandCategory ¶
type ExtKrushmedia ¶
type ExtKrushmedia struct {
AccountID string `json:"key"`
}
ExtKrushmedia defines imp[0].ext object structure
type ExtPublisher ¶
type ExtPublisher struct {
Prebid *ExtPublisherPrebid `json:"prebid"`
}
ExtPublisher defines the contract for ...publisher.ext (found in both bidrequest.site and bidrequest.app)
type ExtPublisherPrebid ¶
type ExtPublisherPrebid struct { // parentAccount would define the legal entity (publisher owner or network) that has the direct relationship with the PBS // host. As such, the definition depends on the PBS hosting entity. ParentAccount *string `json:"parentAccount,omitempty"` }
ExtPublisherPrebid defines the contract for publisher.ext.prebid
type ExtRegs ¶
type ExtRegs struct { // GDPR should be "1" if the caller believes the user is subject to GDPR laws, "0" if not, and undefined // if it's unknown. For more info on this parameter, see: https://iabtechlab.com/wp-content/uploads/2018/02/OpenRTB_Advisory_GDPR_2018-02.pdf GDPR *int8 `json:"gdpr,omitempty"` // USPrivacy should be a four character string, see: https://iabtechlab.com/wp-content/uploads/2019/11/OpenRTB-Extension-U.S.-Privacy-IAB-Tech-Lab.pdf USPrivacy string `json:"us_privacy,omitempty"` }
ExtRegs defines the contract for bidrequest.regs.ext
type ExtRequest ¶
type ExtRequest struct {
Prebid ExtRequestPrebid `json:"prebid"`
}
ExtRequest defines the contract for bidrequest.ext
type ExtRequestCurrency ¶ added in v0.163.0
type ExtRequestPrebid ¶
type ExtRequestPrebid struct { Aliases map[string]string `json:"aliases,omitempty"` BidAdjustmentFactors map[string]float64 `json:"bidadjustmentfactors,omitempty"` Cache *ExtRequestPrebidCache `json:"cache,omitempty"` Data *ExtRequestPrebidData `json:"data,omitempty"` Debug bool `json:"debug,omitempty"` Events json.RawMessage `json:"events,omitempty"` SChains []*ExtRequestPrebidSChain `json:"schains,omitempty"` StoredRequest *ExtStoredRequest `json:"storedrequest,omitempty"` SupportDeals bool `json:"supportdeals,omitempty"` Targeting *ExtRequestTargeting `json:"targeting,omitempty"` // NoSale specifies bidders with whom the publisher has a legal relationship where the // passing of personally identifiable information doesn't constitute a sale per CCPA law. // The array may contain a single sstar ('*') entry to represent all bidders. NoSale []string `json:"nosale,omitempty"` CurrencyConversions *ExtRequestCurrency `json:"currency,omitempty"` }
ExtRequestPrebid defines the contract for bidrequest.ext.prebid
type ExtRequestPrebidCache ¶
type ExtRequestPrebidCache struct { Bids *ExtRequestPrebidCacheBids `json:"bids"` VastXML *ExtRequestPrebidCacheVAST `json:"vastxml"` }
ExtRequestPrebidCache defines the contract for bidrequest.ext.prebid.cache
func (*ExtRequestPrebidCache) UnmarshalJSON ¶
func (ert *ExtRequestPrebidCache) UnmarshalJSON(b []byte) error
UnmarshalJSON prevents nil bids arguments.
type ExtRequestPrebidCacheBids ¶
type ExtRequestPrebidCacheBids struct {
ReturnCreative *bool `json:"returnCreative"`
}
ExtRequestPrebidCacheBids defines the contract for bidrequest.ext.prebid.cache.bids
type ExtRequestPrebidCacheVAST ¶
type ExtRequestPrebidCacheVAST struct {
ReturnCreative *bool `json:"returnCreative"`
}
ExtRequestPrebidCacheVAST defines the contract for bidrequest.ext.prebid.cache.vastxml
type ExtRequestPrebidData ¶
type ExtRequestPrebidData struct {
EidPermissions []ExtRequestPrebidDataEidPermission `json:"eidpermissions"`
}
ExtRequestPrebidData defines Prebid's First Party Data (FPD) and related bid request options.
type ExtRequestPrebidDataEidPermission ¶
type ExtRequestPrebidDataEidPermission struct { Source string `json:"source"` Bidders []string `json:"bidders"` }
ExtRequestPrebidDataEidPermission defines a filter rule for filter user.ext.eids
type ExtRequestPrebidSChain ¶
type ExtRequestPrebidSChain struct { Bidders []string `json:"bidders,omitempty"` SChain ExtRequestPrebidSChainSChain `json:"schain"` }
ExtRequestPrebid defines the contract for bidrequest.ext.prebid.schains
type ExtRequestPrebidSChainSChain ¶
type ExtRequestPrebidSChainSChain struct { Complete int `json:"complete"` Nodes []*ExtRequestPrebidSChainSChainNode `json:"nodes"` Ver string `json:"ver"` Ext json.RawMessage `json:"ext,omitempty"` }
ExtRequestPrebidSChainSChain defines the contract for bidrequest.ext.prebid.schains[i].schain
type ExtRequestPrebidSChainSChainNode ¶
type ExtRequestPrebidSChainSChainNode struct { ASI string `json:"asi"` SID string `json:"sid"` RID string `json:"rid,omitempty"` Name string `json:"name,omitempty"` Domain string `json:"domain,omitempty"` HP int `json:"hp"` Ext json.RawMessage `json:"ext,omitempty"` }
ExtRequestPrebidSChainSChainNode defines the contract for bidrequest.ext.prebid.schains[i].schain[i].nodes
type ExtRequestTargeting ¶
type ExtRequestTargeting struct { PriceGranularity PriceGranularity `json:"pricegranularity"` IncludeWinners bool `json:"includewinners"` IncludeBidderKeys bool `json:"includebidderkeys"` IncludeBrandCategory *ExtIncludeBrandCategory `json:"includebrandcategory"` IncludeFormat bool `json:"includeformat"` DurationRangeSec []int `json:"durationrangesec"` PreferDeals bool `json:"preferdeals"` AppendBidderNames bool `json:"appendbiddernames,omitempty"` }
ExtRequestTargeting defines the contract for bidrequest.ext.prebid.targeting
func (*ExtRequestTargeting) UnmarshalJSON ¶
func (ert *ExtRequestTargeting) UnmarshalJSON(b []byte) error
Make an unmarshaller that will set a default PriceGranularity
type ExtResponseDebug ¶
type ExtResponseDebug struct { // HttpCalls defines the contract for bidresponse.ext.debug.httpcalls HttpCalls map[BidderName][]*ExtHttpCall `json:"httpcalls,omitempty"` // Request after resolution of stored requests and debug overrides ResolvedRequest *openrtb2.BidRequest `json:"resolvedrequest,omitempty"` }
ExtResponseDebug defines the contract for bidresponse.ext.debug
type ExtResponsePrebid ¶
type ExtResponsePrebid struct {
AuctionTimestamp int64 `json:"auctiontimestamp,omitempty"`
}
ExtResponsePrebid defines the contract for bidresponse.ext.prebid
type ExtResponseSyncData ¶
type ExtResponseSyncData struct { Status CookieStatus `json:"status"` // Syncs must have length > 0 Syncs []*ExtUserSync `json:"syncs"` }
ExtResponseSyncData defines the contract for bidresponse.ext.usersync.{bidder}
type ExtSilverMob ¶
ExtSilverMob defines the contract for bidrequest.imp[i].ext.silvermob
type ExtSite ¶
type ExtSite struct { // AMP should be 1 if the request comes from an AMP page, and 0 if not. AMP int8 `json:"amp"` }
ExtSite defines the contract for bidrequest.site.ext
func (*ExtSite) UnmarshalJSON ¶
type ExtSmartHub ¶ added in v0.172.0
type ExtSmartyAds ¶
type ExtSmartyAds struct { AccountID string `json:"accountid"` SourceID string `json:"sourceid"` Host string `json:"host"` }
ExtSmartyAds defines the contract for bidrequest.imp[i].ext.smartyads
type ExtStoredRequest ¶
type ExtStoredRequest struct {
ID string `json:"id"`
}
ExtStoredRequest defines the contract for bidrequest.imp[i].ext.prebid.storedrequest
type ExtUser ¶
type ExtUser struct { // Consent is a GDPR consent string. See "Advised Extensions" of // https://iabtechlab.com/wp-content/uploads/2018/02/OpenRTB_Advisory_GDPR_2018-02.pdf Consent string `json:"consent,omitempty"` Prebid *ExtUserPrebid `json:"prebid,omitempty"` Eids []ExtUserEid `json:"eids,omitempty"` }
ExtUser defines the contract for bidrequest.user.ext
type ExtUserEid ¶
type ExtUserEid struct { Source string `json:"source"` ID string `json:"id,omitempty"` Uids []ExtUserEidUid `json:"uids,omitempty"` Ext json.RawMessage `json:"ext,omitempty"` }
ExtUserEid defines the contract for bidrequest.user.ext.eids Responsible for the Universal User ID support: establishing pseudonymous IDs for users. See https://github.com/prebid/Prebid.js/issues/3900 for details.
type ExtUserEidUid ¶
type ExtUserEidUid struct { ID string `json:"id"` Atype int `json:"atype,omitempty"` Ext json.RawMessage `json:"ext,omitempty"` }
ExtUserEidUid defines the contract for bidrequest.user.ext.eids[i].uids[j]
type ExtUserPrebid ¶
ExtUserPrebid defines the contract for bidrequest.user.ext.prebid
type ExtUserSync ¶
type ExtUserSync struct { Url string `json:"url"` Type UserSyncType `json:"type"` }
ExtUserSync defines the contract for bidresponse.ext.usersync.{bidder}.syncs[i]
type GranularityRange ¶
type GranularityRange struct { Min float64 `json:"min"` Max float64 `json:"max"` Increment float64 `json:"increment"` }
GranularityRange struct defines a range of prices used by PriceGranularity
type IOSAppTrackingStatus ¶
type IOSAppTrackingStatus int
IOSAppTrackingStatus describes the values for iOS app tracking authorization status.
const ( IOSAppTrackingStatusNotDetermined IOSAppTrackingStatus = 0 IOSAppTrackingStatusRestricted IOSAppTrackingStatus = 1 IOSAppTrackingStatusDenied IOSAppTrackingStatus = 2 IOSAppTrackingStatusAuthorized IOSAppTrackingStatus = 3 )
Values of the IOSAppTrackingStatus enumeration.
func ParseDeviceExtATTS ¶
func ParseDeviceExtATTS(deviceExt json.RawMessage) (*IOSAppTrackingStatus, error)
ParseDeviceExtATTS parses the ATTS value from the request.device.ext OpenRTB field.
type ImpExtBmtm ¶ added in v0.163.0
type ImpExtBmtm struct {
PlacementID int `json:"placement_id"`
}
type ImpExtEpom ¶
type ImpExtEpom struct { }
type ImpExtIQZone ¶ added in v0.173.0
type ImpExtIQZone struct {
PlacementID string `json:"placementId"`
}
type ImpExtOperaads ¶ added in v0.169.0
type ImpExtPangle ¶
type IncludeBrandCategory ¶
type IncludeBrandCategory struct { // Attribute: // primaryadserver // Type: // int; optional // The ad server used by the publisher. Supported Values 1- Freewheel , 2- DFP PrimaryAdserver int `json:"primaryadserver"` // Attribute: // publisher // Type: // string; optional // Identifier for the Publisher Publisher string `json:"publisher"` // Attribute: // translatecategories // Type: // *bool; optional // Description: // Indicates if IAB categories should be translated to adserver category TranslateCategories *bool `json:"translatecategories,omitempty"` }
type Pod ¶
type Pod struct { // Attribute: // podid // Type: // integer; required // Unique id of the pod within a particular request. PodId int `json:"podid"` // Attribute: // adpoddurationsec // Type: // integer; required // Duration of the adPod AdPodDurationSec int `json:"adpoddurationsec"` // Attribute: // configid // Type: // string; required // ID of the stored config that corresponds to a single pod request ConfigId string `json:"configid"` }
type PodConfig ¶
type PodConfig struct { // Attribute: // durationrangesec // Type: // int array, required // Description: // Range of ad durations allowed in the response DurationRangeSec []int `json:"durationrangesec"` // Attribute: // requireexactduration // Type: // boolean, optional // Flag indicating exact ad duration requirement. Default is false. RequireExactDuration bool `json:"requireexactduration,omitempty"` // Attribute: // pods // Type: // object; required // Container object for describing the adPod(s) to be requested. Pods []Pod `json:"pods"` }
type PriceGranularity ¶
type PriceGranularity struct { Precision int `json:"precision,omitempty"` Ranges []GranularityRange `json:"ranges,omitempty"` }
PriceGranularity defines the allowed values for bidrequest.ext.prebid.targeting.pricegranularity
func PriceGranularityFromString ¶
func PriceGranularityFromString(gran string) PriceGranularity
PriceGranularityFromString converts a legacy string into the new PriceGranularity
func (*PriceGranularity) UnmarshalJSON ¶
func (pg *PriceGranularity) UnmarshalJSON(b []byte) error
UnmarshalJSON : custom unmarshaller to handle legacy string granularites.
type PriceGranularityRaw ¶
type PriceGranularityRaw PriceGranularity
type RegExt ¶ added in v0.169.0
type RegExt struct {
// contains filtered or unexported fields
}
func (*RegExt) GetUSPrivacy ¶ added in v0.169.0
func (*RegExt) SetUSPrivacy ¶ added in v0.169.0
type RequestExt ¶ added in v0.169.0
type RequestExt struct {
// contains filtered or unexported fields
}
func (*RequestExt) Dirty ¶ added in v0.169.0
func (re *RequestExt) Dirty() bool
func (*RequestExt) GetExt ¶ added in v0.169.0
func (re *RequestExt) GetExt() map[string]json.RawMessage
func (*RequestExt) GetPrebid ¶ added in v0.169.0
func (re *RequestExt) GetPrebid() *ExtRequestPrebid
func (*RequestExt) SetExt ¶ added in v0.169.0
func (re *RequestExt) SetExt(ext map[string]json.RawMessage)
func (*RequestExt) SetPrebid ¶ added in v0.169.0
func (re *RequestExt) SetPrebid(prebid *ExtRequestPrebid)
type RequestWrapper ¶ added in v0.169.0
type RequestWrapper struct { *openrtb2.BidRequest // contains filtered or unexported fields }
func (*RequestWrapper) GetAppExt ¶ added in v0.169.0
func (rw *RequestWrapper) GetAppExt() (*AppExt, error)
func (*RequestWrapper) GetDeviceExt ¶ added in v0.169.0
func (rw *RequestWrapper) GetDeviceExt() (*DeviceExt, error)
func (*RequestWrapper) GetRegExt ¶ added in v0.169.0
func (rw *RequestWrapper) GetRegExt() (*RegExt, error)
func (*RequestWrapper) GetRequestExt ¶ added in v0.169.0
func (rw *RequestWrapper) GetRequestExt() (*RequestExt, error)
func (*RequestWrapper) GetSiteExt ¶ added in v0.169.0
func (rw *RequestWrapper) GetSiteExt() (*SiteExt, error)
func (*RequestWrapper) GetUserExt ¶ added in v0.169.0
func (rw *RequestWrapper) GetUserExt() (*UserExt, error)
func (*RequestWrapper) RebuildRequest ¶ added in v0.169.0
func (rw *RequestWrapper) RebuildRequest() error
type SiteExt ¶ added in v0.169.0
type SiteExt struct {
// contains filtered or unexported fields
}
func (*SiteExt) SetExt ¶ added in v0.169.0
func (se *SiteExt) SetExt(ext map[string]json.RawMessage)
func (*SiteExt) SetUSPrivacy ¶ added in v0.169.0
type SourceExt ¶
type SourceExt struct {
SChain ExtRequestPrebidSChainSChain `json:"schain"`
}
SourceExt defines the contract for bidrequest.source.ext
type TargetingKey ¶
type TargetingKey string
TargetingKeys are used throughout Prebid as keys which can be used in an ad server like DFP. Clients set the values we assign on the request to the ad server, where they can be substituted like macros into Creatives.
Removing one of these, or changing the semantics of what we store there, will probably break the line item setups for many publishers.
These are especially important to Prebid Mobile. It's much more cumbersome for a Mobile App to update code than it is for a website. As a result, they rely heavily on these targeting keys so that any changes can be made on Prebid Server and the Ad Server's line items.
func (TargetingKey) BidderKey ¶
func (key TargetingKey) BidderKey(bidder BidderName, maxLength int) string
type UserExt ¶ added in v0.169.0
type UserExt struct {
// contains filtered or unexported fields
}
func (*UserExt) GetConsent ¶ added in v0.169.0
func (*UserExt) GetEid ¶ added in v0.169.0
func (ue *UserExt) GetEid() *[]ExtUserEid
func (*UserExt) GetPrebid ¶ added in v0.169.0
func (ue *UserExt) GetPrebid() *ExtUserPrebid
func (*UserExt) SetConsent ¶ added in v0.169.0
func (*UserExt) SetEid ¶ added in v0.169.0
func (ue *UserExt) SetEid(eid *[]ExtUserEid)
func (*UserExt) SetExt ¶ added in v0.169.0
func (ue *UserExt) SetExt(ext map[string]json.RawMessage)
func (*UserExt) SetPrebid ¶ added in v0.169.0
func (ue *UserExt) SetPrebid(prebid *ExtUserPrebid)
type UserSyncType ¶
type UserSyncType string
UserSyncType describes the allowed values for bidresponse.ext.usersync.{bidder}.syncs[i].type
const ( UserSyncIframe UserSyncType = "iframe" UserSyncPixel UserSyncType = "pixel" )
type VideoTargeting ¶
Source Files ¶
- app.go
- bid.go
- bid_request_video.go
- bid_response_video.go
- bidders.go
- deal_tier.go
- device.go
- doc.go
- imp.go
- imp_33across.go
- imp_acuityads.go
- imp_adf.go
- imp_adform.go
- imp_adgeneration.go
- imp_adhese.go
- imp_adkernel.go
- imp_adkernelAdn.go
- imp_adman.go
- imp_admixer.go
- imp_adocean.go
- imp_adoppler.go
- imp_adot.go
- imp_adpone.go
- imp_adprime.go
- imp_adtarget.go
- imp_adtelligent.go
- imp_advangelists.go
- imp_adyoulike.go
- imp_aja.go
- imp_algorix.go
- imp_amx.go
- imp_applogy.go
- imp_appnexus.go
- imp_avocet.go
- imp_axonix.go
- imp_beachfront.go
- imp_beintoo.go
- imp_between.go
- imp_bidmachine.go
- imp_bidscube.go
- imp_bmtm.go
- imp_brightroll.go
- imp_colossus.go
- imp_connectad.go
- imp_consumable.go
- imp_conversant.go
- imp_cpmstar.go
- imp_criteo.go
- imp_datablocks.go
- imp_decenterads.go
- imp_deepintent.go
- imp_emx_digital.go
- imp_engagebdr.go
- imp_eplanning.go
- imp_epom.go
- imp_facebook.go
- imp_gamma.go
- imp_gamoshi.go
- imp_grid.go
- imp_gumgum.go
- imp_inmobi.go
- imp_interactiveoffers.go
- imp_invibes.go
- imp_iqzone.go
- imp_ix.go
- imp_jixie.go
- imp_kayzen.go
- imp_kidoz.go
- imp_krushmedia.go
- imp_kubient.go
- imp_lockerdome.go
- imp_logicad.go
- imp_lunamedia.go
- imp_madvertise.go
- imp_marsmedia.go
- imp_mgid.go
- imp_mobilefuse.go
- imp_nanointeractive.go
- imp_ninthdecimal.go
- imp_nobid.go
- imp_onetag.go
- imp_openx.go
- imp_operaads.go
- imp_orbidder.go
- imp_outbrain.go
- imp_pangle.go
- imp_pubmatic.go
- imp_pubnative.go
- imp_pulsepoint.go
- imp_rhythmone.go
- imp_rubicon.go
- imp_sa_lunamedia.go
- imp_sharethrough.go
- imp_silvermob.go
- imp_smaato.go
- imp_smartadserver.go
- imp_smarthub.go
- imp_smartrtb.go
- imp_smartyads.go
- imp_somoaudience.go
- imp_sonobi.go
- imp_sovrn.go
- imp_synacormedia.go
- imp_tappx.go
- imp_telaria.go
- imp_triplelift.go
- imp_ucfunnel.go
- imp_unicorn.go
- imp_unruly.go
- imp_valueimpression.go
- imp_verizonmedia.go
- imp_vrtcal.go
- imp_yeahmobi.go
- imp_yieldlab.go
- imp_yieldmo.go
- imp_yieldone.go
- imp_zeroclickfraud.go
- publisher.go
- regs.go
- request.go
- request_wrapper.go
- response.go
- site.go
- user.go