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 ConvertDownTo25(r *RequestWrapper) error
- func ConvertUpTo26(r *RequestWrapper) error
- func GetAliasBidderToParent() map[BidderName]BidderName
- func IsBidderNameReserved(name string) bool
- func IsKnownIOSAppTrackingStatus(v int64) bool
- func ParseConsentedProvidersString(cps string) []int
- func SetAliasBidderName(aliasBidderName string, parentBidderName BidderName) error
- type AdPod
- type AdServerTarget
- type Adjustment
- type AdjustmentsByDealID
- type AdsCert
- type AppExt
- type AuctionEnvironmentType
- type BidRequestVideo
- type BidResponseVideo
- type BidType
- type BidderConfig
- type BidderName
- type BidderParamValidator
- type Cacheconfig
- type Config
- type ConsentedProvidersSettingsIn
- type ConsentedProvidersSettingsOut
- type CookieStatus
- type DOOHExt
- type DealTier
- type DealTierBidderMap
- type DeviceExt
- type Experiment
- type ExtAceex
- type ExtAcuityAds
- type ExtAdapterAlternateBidderCodes
- type ExtAdpone
- type ExtAlternateBidderCodes
- type ExtApp
- type ExtAppPrebid
- type ExtBematterfull
- type ExtBid
- type ExtBidPrebid
- type ExtBidPrebidCache
- type ExtBidPrebidCacheBids
- type ExtBidPrebidEvents
- type ExtBidPrebidFloors
- type ExtBidPrebidMeta
- type ExtBidPrebidVideo
- type ExtBidResponse
- type ExtBidderMessage
- type ExtBizzclick
- type ExtDevice
- type ExtDeviceInt
- type ExtDevicePrebid
- type ExtGothamAds
- type ExtHttpCall
- type ExtIQX
- type ExtImp
- type ExtImp33across
- type ExtImpAJA
- type ExtImpAMX
- type ExtImpAax
- type ExtImpAdOcean
- type ExtImpAdView
- type ExtImpAdf
- type ExtImpAdgeneration
- type ExtImpAdhese
- type ExtImpAdkernel
- type ExtImpAdkernelAdn
- type ExtImpAdman
- type ExtImpAdmixer
- type ExtImpAdoppler
- type ExtImpAdot
- type ExtImpAdprime
- type ExtImpAdrino
- type ExtImpAdtarget
- type ExtImpAdtelligent
- type ExtImpAdtrgtme
- type ExtImpAdvangelists
- type ExtImpAdyoulike
- type ExtImpAlgorix
- type ExtImpAlkimi
- type ExtImpApacdex
- type ExtImpAppnexus
- type ExtImpAppnexusKeywords
- type ExtImpAvocet
- type ExtImpAxonix
- type ExtImpBeachfront
- type ExtImpBeachfrontAppIds
- type ExtImpBeintoo
- type ExtImpBetween
- type ExtImpBidmachine
- type ExtImpBidsCube
- type ExtImpBluesea
- type ExtImpBrave
- type ExtImpCadentApertureMX
- type ExtImpCcx
- type ExtImpColossus
- type ExtImpConnectAd
- type ExtImpConsumable
- type ExtImpConversant
- type ExtImpCpmstar
- type ExtImpCriteo
- type ExtImpDXKulture
- type ExtImpData
- type ExtImpDataAdServer
- type ExtImpDatablocks
- type ExtImpDecenterAds
- type ExtImpDeepintent
- type ExtImpDianomi
- type ExtImpEPlanning
- type ExtImpExtraDataSmaato
- type ExtImpFacebook
- type ExtImpGamma
- type ExtImpGamoshi
- type ExtImpGrid
- type ExtImpGumGum
- type ExtImpGumGumBanner
- type ExtImpGumGumVideo
- type ExtImpHuaweiAds
- type ExtImpImds
- type ExtImpImpactify
- type ExtImpInMobi
- type ExtImpInteractiveoffers
- type ExtImpInvibes
- type ExtImpInvibesDebug
- type ExtImpIx
- type ExtImpJixie
- type ExtImpKidoz
- type ExtImpLockerDome
- type ExtImpLogicad
- type ExtImpLunaMedia
- type ExtImpMadvertise
- type ExtImpMarsmedia
- type ExtImpMedianet
- type ExtImpMgid
- type ExtImpMobileFuse
- type ExtImpNoBid
- type ExtImpOms
- type ExtImpOnetag
- type ExtImpOpenWeb
- type ExtImpOpenx
- type ExtImpOrbidder
- type ExtImpOutbrain
- type ExtImpOutbrainPublisher
- type ExtImpOwnAdx
- type ExtImpPrebid
- type ExtImpPrebidFloors
- type ExtImpPubmatic
- type ExtImpPubmaticKeyVal
- type ExtImpPubnative
- type ExtImpPulsePoint
- type ExtImpPwbid
- type ExtImpRTBHouse
- type ExtImpRichaudience
- type ExtImpRubicon
- type ExtImpSaLunamedia
- type ExtImpSharethrough
- type ExtImpSmaato
- type ExtImpSmartRTB
- type ExtImpSmartadserver
- type ExtImpSmartclip
- type ExtImpSonobi
- type ExtImpSovrn
- type ExtImpSovrnXsp
- type ExtImpSspbc
- type ExtImpStroeerCore
- type ExtImpTappx
- type ExtImpTeads
- type ExtImpTelaria
- type ExtImpTpmn
- type ExtImpTrafficGate
- type ExtImpTriplelift
- type ExtImpUcfunnel
- type ExtImpUndertone
- type ExtImpUnicorn
- type ExtImpUnruly
- type ExtImpVideoByte
- type ExtImpVideoHeroes
- type ExtImpVrtcal
- type ExtImpYahooAds
- type ExtImpYahooAdvertising
- type ExtImpYahooSSP
- type ExtImpYeahmobi
- type ExtImpYieldlab
- type ExtImpYieldmo
- type ExtImpYieldone
- type ExtImpZeroClickFraud
- type ExtIncludeBrandCategory
- type ExtKayzen
- type ExtKrushmedia
- type ExtLmKiviads
- type ExtMotorik
- type ExtMultiBid
- type ExtPublisher
- type ExtPublisherPrebid
- type ExtRegs
- type ExtRelevantDigital
- type ExtRequest
- type ExtRequestCurrency
- type ExtRequestPrebid
- type ExtRequestPrebidBidAdjustments
- type ExtRequestPrebidCache
- type ExtRequestPrebidCacheBids
- type ExtRequestPrebidCacheVAST
- type ExtRequestPrebidChannel
- type ExtRequestPrebidData
- type ExtRequestPrebidDataEidPermission
- type ExtRequestPrebidSChain
- type ExtRequestPrebidServer
- type ExtRequestSdk
- type ExtRequestSdkRenderer
- type ExtRequestTargeting
- type ExtResponseDebug
- type ExtResponseNonBidPrebid
- type ExtResponsePrebid
- type ExtResponseSyncData
- type ExtScreencore
- type ExtSilverMob
- type ExtSite
- type ExtSmartHub
- type ExtSmartyAds
- type ExtSource
- type ExtStoredAuctionResponse
- type ExtStoredBidResponse
- type ExtStoredRequest
- type ExtUser
- type ExtUserDataDeviceIdHuaweiAds
- type ExtUserDataHuaweiAds
- type ExtUserPrebid
- type ExtUserSync
- type ExtXeworks
- type Fledge
- type FledgeAuctionConfig
- type GranularityRange
- type IOSAppTrackingStatus
- type ImpExt
- func (e *ImpExt) Clone() *ImpExt
- func (e *ImpExt) Dirty() bool
- func (e *ImpExt) GetData() *ExtImpData
- func (e *ImpExt) GetExt() map[string]json.RawMessage
- func (e *ImpExt) GetGpId() string
- func (e *ImpExt) GetOrCreatePrebid() *ExtImpPrebid
- func (e *ImpExt) GetPrebid() *ExtImpPrebid
- func (e *ImpExt) GetTid() string
- func (e *ImpExt) SetExt(ext map[string]json.RawMessage)
- func (e *ImpExt) SetPrebid(prebid *ExtImpPrebid)
- func (e *ImpExt) SetTid(tid string)
- type ImpExtAdQuery
- type ImpExtAdnunitus
- type ImpExtAdsinteractive
- type ImpExtAppush
- type ImpExtAxis
- type ImpExtBeyondMedia
- type ImpExtBidstack
- type ImpExtBliink
- type ImpExtBmtm
- type ImpExtBoldwin
- type ImpExtCWire
- type ImpExtCompass
- type ImpExtDefinemedia
- type ImpExtEdge226
- type ImpExtEmtv
- type ImpExtEpom
- type ImpExtFRVRAdn
- type ImpExtFlipp
- type ImpExtFlippOptions
- type ImpExtFoo
- type ImpExtFreewheelSSP
- type ImpExtGlobalsun
- type ImpExtIQZone
- type ImpExtInfytv
- type ImpExtKargo
- type ImpExtKiviads
- type ImpExtLemmaDigital
- type ImpExtLiftoff
- type ImpExtLimelightDigital
- type ImpExtLogan
- type ImpExtMabidder
- type ImpExtMgidX
- type ImpExtNextMillennium
- type ImpExtOperaads
- type ImpExtPangle
- type ImpExtPgamSsp
- type ImpExtPrebid
- type ImpExtRise
- type ImpExtSeedingAlliance
- type ImpExtSilverpush
- type ImpExtTaboola
- type ImpExtVidoomy
- type ImpExtVisibleMeasures
- type ImpExtVox
- type ImpFloorExt
- type ImpWrapper
- type IncludeBrandCategory
- type MediaType
- type MediaTypePriceGranularity
- type NonBid
- type NonBidExt
- type NonBidObject
- type ORTB2
- type Options
- type Pod
- type PodConfig
- type Price
- type PriceFloorData
- type PriceFloorEndpoint
- type PriceFloorEnforcement
- type PriceFloorModelGroup
- type PriceFloorRules
- func (pf *PriceFloorRules) DeepCopy() *PriceFloorRules
- func (Floors *PriceFloorRules) GetEnabled() bool
- func (Floors *PriceFloorRules) GetEnforceDealsFlag() bool
- func (Floors *PriceFloorRules) GetEnforcePBS() bool
- func (Floors *PriceFloorRules) GetEnforceRate() int
- func (Floors *PriceFloorRules) GetFloorsSkippedFlag() bool
- type PriceFloorSchema
- type PriceGranularity
- type PriceGranularityRaw
- type RegExt
- func (re *RegExt) Clone() *RegExt
- func (re *RegExt) Dirty() bool
- func (re *RegExt) GetExt() map[string]json.RawMessage
- func (re *RegExt) GetGDPR() *int8
- func (re *RegExt) GetUSPrivacy() string
- func (re *RegExt) SetExt(ext map[string]json.RawMessage)
- func (re *RegExt) SetGDPR(gdpr *int8)
- func (re *RegExt) SetUSPrivacy(usPrivacy string)
- type RequestExt
- func (re *RequestExt) Clone() *RequestExt
- func (re *RequestExt) Dirty() bool
- func (re *RequestExt) GetExt() map[string]json.RawMessage
- func (re *RequestExt) GetPrebid() *ExtRequestPrebid
- func (re *RequestExt) GetSChain() *openrtb2.SupplyChain
- func (re *RequestExt) SetExt(ext map[string]json.RawMessage)
- func (re *RequestExt) SetPrebid(prebid *ExtRequestPrebid)
- func (re *RequestExt) SetSChain(schain *openrtb2.SupplyChain)
- type RequestWrapper
- func (rw *RequestWrapper) Clone() *RequestWrapper
- func (rw *RequestWrapper) GetAppExt() (*AppExt, error)
- func (rw *RequestWrapper) GetDOOHExt() (*DOOHExt, error)
- func (rw *RequestWrapper) GetDeviceExt() (*DeviceExt, error)
- func (rw *RequestWrapper) GetImp() []*ImpWrapper
- func (rw *RequestWrapper) GetRegExt() (*RegExt, error)
- func (rw *RequestWrapper) GetRequestExt() (*RequestExt, error)
- func (rw *RequestWrapper) GetSiteExt() (*SiteExt, error)
- func (rw *RequestWrapper) GetSourceExt() (*SourceExt, error)
- func (rw *RequestWrapper) GetUserExt() (*UserExt, error)
- func (rw *RequestWrapper) LenImp() int
- func (rw *RequestWrapper) RebuildRequest() error
- func (rw *RequestWrapper) SetImp(imps []*ImpWrapper)
- type SeatNonBid
- type SiteExt
- type SourceExt
- func (se *SourceExt) Clone() *SourceExt
- func (se *SourceExt) Dirty() bool
- func (se *SourceExt) GetExt() map[string]json.RawMessage
- func (se *SourceExt) GetSChain() *openrtb2.SupplyChain
- func (se *SourceExt) SetExt(ext map[string]json.RawMessage)
- func (se *SourceExt) SetSChain(schain *openrtb2.SupplyChain)
- type TargetingKey
- type UserExt
- func (ue *UserExt) Clone() *UserExt
- func (ue *UserExt) Dirty() bool
- func (ue *UserExt) GetConsent() *string
- func (ue *UserExt) GetConsentedProvidersSettingsIn() *ConsentedProvidersSettingsIn
- func (ue *UserExt) GetConsentedProvidersSettingsOut() *ConsentedProvidersSettingsOut
- func (ue *UserExt) GetEid() *[]openrtb2.EID
- func (ue *UserExt) GetExt() map[string]json.RawMessage
- func (ue *UserExt) GetPrebid() *ExtUserPrebid
- func (ue *UserExt) SetConsent(consent *string)
- func (ue *UserExt) SetConsentedProvidersSettingsIn(cpSettings *ConsentedProvidersSettingsIn)
- func (ue *UserExt) SetConsentedProvidersSettingsOut(cpSettings *ConsentedProvidersSettingsOut)
- func (ue *UserExt) SetEid(eid *[]openrtb2.EID)
- 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 ( StoredRequestAttributes = "storedrequestattributes" OriginalBidCpmKey = "origbidcpm" OriginalBidCurKey = "origbidcur" Passthrough = "passthrough" )
const ( FetchSuccess = "success" FetchTimeout = "timeout" FetchError = "error" FetchInprogress = "inprogress" FetchNone = "none" )
Defines strings for FetchStatus
const ( NoDataLocation = "noData" RequestLocation = "request" FetchLocation = "fetch" )
Defines strings for PriceFloorLocation
const AuctionEnvironmentKey = string(BidderReservedAE)
AuctionEnvironmentKey is the json key under imp[].ext for ExtImp.AuctionEnvironment
const DefaultBidLimit = 1
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 GPIDKey = "gpid"
GPIDKey defines the field name within request.ext reserved for the Global Placement ID (GPID),
const IsRewardedInventoryKey = "is_rewarded_inventory"
IsRewardedInventoryKey is the json key for ExtImpPrebid.IsRewardedInventory
const MaxBidLimit = 9
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 OptionsKey = "options"
OptionsKey is the json key for ExtImpPrebid.Options
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 TIDKey = "tid"
TIDKey reserved for Per-Impression Transactions IDs for Multi-Impression Bid Requests.
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 ConvertDownTo25 ¶
func ConvertDownTo25(r *RequestWrapper) error
func ConvertUpTo26 ¶
func ConvertUpTo26(r *RequestWrapper) error
func GetAliasBidderToParent ¶
func GetAliasBidderToParent() map[BidderName]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.
func ParseConsentedProvidersString ¶
ParseConsentedProvidersString takes a string formatted as Google's Additional Consent format and returns a list with its elements. For instance, the following string "1~1.35.41.101" would result in []int{1, 35, 41, 101}
func SetAliasBidderName ¶
func SetAliasBidderName(aliasBidderName string, parentBidderName BidderName) error
Types ¶
type AdPod ¶
type AdPod struct { PodId int64 `json:"podid"` Targeting []VideoTargeting `json:"targeting"` Errors []string `json:"errors"` }
type AdServerTarget ¶
type Adjustment ¶
type Adjustment struct { Type string `json:"adjtype,omitempty"` Value float64 `json:"value,omitempty"` Currency string `json:"currency,omitempty"` }
Adjustment defines the object that will be present in the slice of bid adjustments found from MediaType map
type AdjustmentsByDealID ¶
type AdjustmentsByDealID map[string][]Adjustment
AdjustmentsByDealID maps a dealID to a slice of bid adjustments
type AdsCert ¶
type AdsCert struct {
Enabled bool `json:"enabled,omitempty"`
}
AdsCert defines if Call Sign feature is enabled for request
type AppExt ¶
type AppExt struct {
// contains filtered or unexported fields
}
func (*AppExt) GetPrebid ¶
func (ae *AppExt) GetPrebid() *ExtAppPrebid
func (*AppExt) SetPrebid ¶
func (ae *AppExt) SetPrebid(prebid *ExtAppPrebid)
type AuctionEnvironmentType ¶
type AuctionEnvironmentType int8
AuctionEnvironmentType is a Google Privacy Sandbox flag indicating where the auction may take place
const ( // 0 Standard server-side auction ServerSideAuction AuctionEnvironmentType = 0 // 1 On-device interest group auction (FLEDGE) OnDeviceIGAuctionFledge AuctionEnvironmentType = 1 // 2 Server-side with interest group simulation ServerSideWithIGSimulation AuctionEnvironmentType = 2 )
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 BidderConfig ¶
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. BidderReservedGPID BidderName = "gpid" // Reserved for Global Placement ID (GPID). BidderReservedPrebid BidderName = "prebid" // Reserved for Prebid Server configuration. BidderReservedSKAdN BidderName = "skadn" // Reserved for Apple's SKAdNetwork OpenRTB extension. BidderReservedTID BidderName = "tid" // Reserved for Per-Impression Transactions IDs for Multi-Impression Bid Requests. BidderReservedAE BidderName = "ae" // Reserved for FLEDGE Auction Environment )
Names of reserved bidders. These names may not be used by a core bidder or alias.
const ( Bidder33Across BidderName = "33across" BidderAax BidderName = "aax" BidderAceex BidderName = "aceex" BidderAcuityAds BidderName = "acuityads" BidderAdf BidderName = "adf" BidderAdgeneration BidderName = "adgeneration" BidderAdhese BidderName = "adhese" BidderAdkernel BidderName = "adkernel" BidderAdkernelAdn BidderName = "adkernelAdn" BidderAdman BidderName = "adman" BidderAdmixer BidderName = "admixer" BidderAdnuntius BidderName = "adnuntius" BidderAdOcean BidderName = "adocean" BidderAdoppler BidderName = "adoppler" BidderAdot BidderName = "adot" BidderAdpone BidderName = "adpone" BidderAdprime BidderName = "adprime" BidderAdquery BidderName = "adquery" BidderAdrino BidderName = "adrino" BidderAdsinteractive BidderName = "adsinteractive" BidderAdtarget BidderName = "adtarget" BidderAdtrgtme BidderName = "adtrgtme" BidderAdtelligent BidderName = "adtelligent" BidderAdvangelists BidderName = "advangelists" BidderAdView BidderName = "adview" BidderAdxcg BidderName = "adxcg" BidderAdyoulike BidderName = "adyoulike" BidderAidem BidderName = "aidem" BidderAJA BidderName = "aja" BidderAlgorix BidderName = "algorix" BidderAlkimi BidderName = "alkimi" BidderAMX BidderName = "amx" BidderApacdex BidderName = "apacdex" BidderAppnexus BidderName = "appnexus" BidderAppush BidderName = "appush" BidderAudienceNetwork BidderName = "audienceNetwork" BidderAutomatad BidderName = "automatad" BidderAvocet BidderName = "avocet" BidderAxis BidderName = "axis" BidderAxonix BidderName = "axonix" BidderBeachfront BidderName = "beachfront" BidderBeintoo BidderName = "beintoo" BidderBematterfull BidderName = "bematterfull" BidderBetween BidderName = "between" BidderBeyondMedia BidderName = "beyondmedia" BidderBidmachine BidderName = "bidmachine" BidderBidmyadz BidderName = "bidmyadz" BidderBidsCube BidderName = "bidscube" BidderBidstack BidderName = "bidstack" BidderBizzclick BidderName = "bizzclick" BidderBliink BidderName = "bliink" BidderBlue BidderName = "blue" BidderBluesea BidderName = "bluesea" BidderBmtm BidderName = "bmtm" BidderBoldwin BidderName = "boldwin" BidderBrave BidderName = "brave" BidderCadentApertureMX BidderName = "cadent_aperture_mx" BidderCcx BidderName = "ccx" BidderCoinzilla BidderName = "coinzilla" BidderColossus BidderName = "colossus" BidderCompass BidderName = "compass" BidderConnectAd BidderName = "connectad" BidderConsumable BidderName = "consumable" BidderConversant BidderName = "conversant" BidderCpmstar BidderName = "cpmstar" BidderCriteo BidderName = "criteo" BidderCWire BidderName = "cwire" BidderDatablocks BidderName = "datablocks" BidderDecenterAds BidderName = "decenterads" BidderDeepintent BidderName = "deepintent" BidderDefinemedia BidderName = "definemedia" BidderDianomi BidderName = "dianomi" BidderEdge226 BidderName = "edge226" BidderDmx BidderName = "dmx" BidderDXKulture BidderName = "dxkulture" BidderEmtv BidderName = "emtv" BidderEmxDigital BidderName = "emx_digital" BidderEPlanning BidderName = "eplanning" BidderEpom BidderName = "epom" BidderEVolution BidderName = "e_volution" BidderFlipp BidderName = "flipp" BidderFreewheelSSP BidderName = "freewheelssp" BidderFRVRAdNetwork BidderName = "frvradn" BidderGamma BidderName = "gamma" BidderGamoshi BidderName = "gamoshi" BidderGlobalsun BidderName = "globalsun" BidderGothamads BidderName = "gothamads" BidderGrid BidderName = "grid" BidderGumGum BidderName = "gumgum" BidderHuaweiAds BidderName = "huaweiads" BidderImds BidderName = "imds" BidderImpactify BidderName = "impactify" BidderImprovedigital BidderName = "improvedigital" BidderInfyTV BidderName = "infytv" BidderInMobi BidderName = "inmobi" BidderInteractiveoffers BidderName = "interactiveoffers" BidderInvibes BidderName = "invibes" BidderIQX BidderName = "iqx" BidderIQZone BidderName = "iqzone" BidderIx BidderName = "ix" BidderJixie BidderName = "jixie" BidderKargo BidderName = "kargo" BidderKayzen BidderName = "kayzen" BidderKidoz BidderName = "kidoz" BidderKiviads BidderName = "kiviads" BidderLmKiviads BidderName = "lm_kiviads" BidderKrushmedia BidderName = "krushmedia" BidderLemmadigital BidderName = "lemmadigital" BidderLiftoff BidderName = "liftoff" BidderLimelightDigital BidderName = "limelightDigital" BidderLockerDome BidderName = "lockerdome" BidderLogan BidderName = "logan" BidderLogicad BidderName = "logicad" BidderLunaMedia BidderName = "lunamedia" BidderMabidder BidderName = "mabidder" BidderMadvertise BidderName = "madvertise" BidderMarsmedia BidderName = "marsmedia" BidderMediafuse BidderName = "mediafuse" BidderMedianet BidderName = "medianet" BidderMgid BidderName = "mgid" BidderMgidX BidderName = "mgidX" BidderMobfoxpb BidderName = "mobfoxpb" BidderMobileFuse BidderName = "mobilefuse" BidderMotorik BidderName = "motorik" BidderNextMillennium BidderName = "nextmillennium" BidderNoBid BidderName = "nobid" BidderOms BidderName = "oms" BidderOneTag BidderName = "onetag" BidderOpenWeb BidderName = "openweb" BidderOpenx BidderName = "openx" BidderOperaads BidderName = "operaads" BidderOrbidder BidderName = "orbidder" BidderOutbrain BidderName = "outbrain" BidderOwnAdx BidderName = "ownadx" BidderPangle BidderName = "pangle" BidderPGAMSsp BidderName = "pgamssp" BidderPubmatic BidderName = "pubmatic" BidderPubnative BidderName = "pubnative" BidderPulsepoint BidderName = "pulsepoint" BidderPWBid BidderName = "pwbid" BidderRelevantDigital BidderName = "relevantdigital" BidderRevcontent BidderName = "revcontent" BidderRichaudience BidderName = "richaudience" BidderRise BidderName = "rise" BidderRTBHouse BidderName = "rtbhouse" BidderRubicon BidderName = "rubicon" BidderSeedingAlliance BidderName = "seedingAlliance" BidderSaLunaMedia BidderName = "sa_lunamedia" BidderScreencore BidderName = "screencore" BidderSilverMob BidderName = "silvermob" BidderSilverPush BidderName = "silverpush" BidderSmaato BidderName = "smaato" BidderSmartAdserver BidderName = "smartadserver" BidderSmartHub BidderName = "smarthub" BidderSmartRTB BidderName = "smartrtb" BidderSmartx BidderName = "smartx" BidderSmartyAds BidderName = "smartyads" BidderSmileWanted BidderName = "smilewanted" BidderSonobi BidderName = "sonobi" BidderSovrn BidderName = "sovrn" BidderSovrnXsp BidderName = "sovrnXsp" BidderSspBC BidderName = "sspBC" BidderStroeerCore BidderName = "stroeerCore" BidderTaboola BidderName = "taboola" BidderTappx BidderName = "tappx" BidderTeads BidderName = "teads" BidderTelaria BidderName = "telaria" BidderTpmn BidderName = "tpmn" BidderTrafficGate BidderName = "trafficgate" BidderTriplelift BidderName = "triplelift" BidderTripleliftNative BidderName = "triplelift_native" BidderUcfunnel BidderName = "ucfunnel" BidderUndertone BidderName = "undertone" BidderUnicorn BidderName = "unicorn" BidderUnruly BidderName = "unruly" BidderVideoByte BidderName = "videobyte" BidderVideoHeroes BidderName = "videoheroes" BidderVidoomy BidderName = "vidoomy" BidderVisibleMeasures BidderName = "visiblemeasures" BidderVisx BidderName = "visx" BidderVox BidderName = "vox" BidderVrtcal BidderName = "vrtcal" BidderXeworks BidderName = "xeworks" BidderYahooAds BidderName = "yahooAds" BidderYeahmobi BidderName = "yeahmobi" BidderYieldlab BidderName = "yieldlab" BidderYieldmo BidderName = "yieldmo" BidderYieldone BidderName = "yieldone" BidderZeroClickFraud BidderName = "zeroclickfraud" BidderZetaGlobalSsp BidderName = "zeta_global_ssp" )
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 NormalizeBidderNameOrUnchanged ¶
func NormalizeBidderNameOrUnchanged(name string) BidderName
NormalizeBidderNameOrUnchanged returns the normalized name of known bidders, otherwise returns the name exactly as provided.
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.prebid.bidder.{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 ConsentedProvidersSettingsIn ¶
type ConsentedProvidersSettingsIn struct {
ConsentedProvidersString string `json:"consented_providers,omitempty"`
}
type ConsentedProvidersSettingsOut ¶
type ConsentedProvidersSettingsOut struct {
ConsentedProvidersList []int `json:"consented_providers,omitempty"`
}
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 ¶
type DeviceExt struct {
// contains filtered or unexported fields
}
func (*DeviceExt) GetPrebid ¶
func (de *DeviceExt) GetPrebid() *ExtDevicePrebid
func (*DeviceExt) SetPrebid ¶
func (de *DeviceExt) SetPrebid(prebid *ExtDevicePrebid)
type Experiment ¶
type Experiment struct {
AdsCert *AdsCert `json:"adscert,omitempty"`
}
Experiment defines if experimental features are available for the request
type ExtAcuityAds ¶
type ExtAlternateBidderCodes ¶
type ExtAlternateBidderCodes struct { Enabled bool `mapstructure:"enabled" json:"enabled"` Bidders map[string]ExtAdapterAlternateBidderCodes `mapstructure:"bidders" json:"bidders"` }
ExtAlternateBidderCodes defines list of alternate bidder codes allowed by adatpers. This overrides host level configs.
func (*ExtAlternateBidderCodes) IsBidderInAlternateBidderCodes ¶
func (bidderCodes *ExtAlternateBidderCodes) IsBidderInAlternateBidderCodes(bidder string) (ExtAdapterAlternateBidderCodes, bool)
IsBidderInAlternateBidderCodes tries to find bidder in the altBidderCodes.Bidders map in a case sensitive manner first. If no match is found it'll try it in a case insensitive way in linear time
func (*ExtAlternateBidderCodes) IsValidBidderCode ¶
func (bidderCodes *ExtAlternateBidderCodes) IsValidBidderCode(bidder, alternateBidder string) (bool, error)
type ExtApp ¶
type ExtApp struct {
Prebid ExtAppPrebid `json:"prebid"`
}
ExtApp defines the contract for bidrequest.app.ext
type ExtAppPrebid ¶
type ExtAppPrebid struct { Source string `json:"source,omitempty"` Version string `json:"version,omitempty"` }
ExtAppPrebid further defines the contract for bidrequest.app.ext.prebid.
type ExtBematterfull ¶
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"` TargetBidderCode string `json:"targetbiddercode,omitempty"` Type BidType `json:"type,omitempty"` Video *ExtBidPrebidVideo `json:"video,omitempty"` Events *ExtBidPrebidEvents `json:"events,omitempty"` BidId string `json:"bidid,omitempty"` Passthrough json.RawMessage `json:"passthrough,omitempty"` Floors *ExtBidPrebidFloors `json:"floors,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 ExtBidPrebidFloors ¶
type ExtBidPrebidFloors struct { FloorRule string `json:"floorRule,omitempty"` FloorRuleValue float64 `json:"floorRuleValue,omitempty"` FloorValue float64 `json:"floorValue,omitempty"` FloorCurrency string `json:"floorCurrency,omitempty"` }
ExtBidPrebidFloors defines the contract for bidresponse.seatbid.bid[i].ext.prebid.floors
type ExtBidPrebidMeta ¶
type ExtBidPrebidMeta struct { AdapterCode string `json:"adaptercode,omitempty"` AdvertiserDomains []string `json:"advertiserDomains,omitempty"` 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"` DChain json.RawMessage `json:"dchain,omitempty"` DemandSource string `json:"demandSource,omitempty"` MediaType string `json:"mediaType,omitempty"` NetworkID int `json:"networkId,omitempty"` NetworkName string `json:"networkName,omitempty"` PrimaryCategoryID string `json:"primaryCatId,omitempty"` RendererName string `json:"rendererName,omitempty"` RendererVersion string `json:"rendererVersion,omitempty"` RendererData json.RawMessage `json:"rendererData,omitempty"` RendererUrl string `json:"rendererUrl,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 ExtBizzclick ¶
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:"minwidthperc"` 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 ExtGothamAds ¶
type ExtGothamAds struct {
AccountID string `json:"accountId"`
}
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 ExtImp ¶
type ExtImp struct {
Prebid *ImpExtPrebid `json:"prebid,omitempty"`
}
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.prebid.bidder.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 ExtImpAdView ¶
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 ¶
type ExtImpAdkernel struct {
ZoneId int `json:"zoneId"`
}
ExtImpAdkernel defines the contract for bidrequest.imp[i].ext.prebid.bidder.adkernel
type ExtImpAdkernelAdn ¶
type ExtImpAdkernelAdn struct {
PublisherID int `json:"pubId"`
}
ExtImpAdkernelAdn defines the contract for bidrequest.imp[i].ext.prebid.bidder.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"` Keywords []string `json:"keywords"` Audiences []string `json:"audiences"` }
ExtImpAdprime defines adprime specifiec param
type ExtImpAdrino ¶
type ExtImpAdrino struct {
Hash string `json:"hash"`
}
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.prebid.bidder.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.prebid.bidder.adtelligent
type ExtImpAdtrgtme ¶
type ExtImpAdtrgtme struct {
SiteID uint64 `json:"site_id"`
}
ExtImpAdtrgtme defines the contract for bidrequest.imp[i].ext.prebid.bidder.adtrgtme
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.prebid.bidder.adyoulike
type ExtImpAlgorix ¶
type ExtImpAlgorix struct { Sid string `json:"sid"` Token string `json:"token"` PlacementId string `json:"placementId"` AppId string `json:"appId"` Region string `json:"region"` }
ExtImpAlgoriX defines the contract for bidrequest.imp[i].ext.prebid.bidder.algorix
type ExtImpAlkimi ¶ added in v2.1.0
type ExtImpApacdex ¶
type ExtImpAppnexus ¶
type ExtImpAppnexus struct { DeprecatedPlacementId jsonutil.StringInt `json:"placementId"` LegacyInvCode string `json:"invCode"` LegacyTrafficSourceCode string `json:"trafficSourceCode"` PlacementId jsonutil.StringInt `json:"placement_id"` InvCode string `json:"inv_code"` Member string `json:"member"` Keywords ExtImpAppnexusKeywords `json:"keywords"` TrafficSourceCode string `json:"traffic_source_code"` Reserve float64 `json:"reserve"` Position string `json:"position"` UsePaymentRule *bool `json:"use_pmt_rule"` DeprecatedUsePaymentRule *bool `json:"use_payment_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"` ExtInvCode string `json:"ext_inv_code"` ExternalImpId string `json:"external_imp_id"` }
ExtImpAppnexus defines the contract for bidrequest.imp[i].ext.prebid.bidder.appnexus
type ExtImpAppnexusKeywords ¶
type ExtImpAppnexusKeywords string
func (*ExtImpAppnexusKeywords) String ¶
func (ks *ExtImpAppnexusKeywords) String() string
func (*ExtImpAppnexusKeywords) UnmarshalJSON ¶
func (ks *ExtImpAppnexusKeywords) UnmarshalJSON(b []byte) error
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.prebid.bidder.avocet
type ExtImpAxonix ¶
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 ExtImpBluesea ¶
type ExtImpBrave ¶
type ExtImpBrave struct {
PlacementID string `json:"placementId"`
}
type ExtImpCadentApertureMX ¶
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"` PlacementId string `json:"placementid,omitempty"` }
ExtImpConsumable defines the contract for bidrequest.imp[i].ext.prebid.bidder.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.prebid.bidder.criteo
type ExtImpDXKulture ¶
type ExtImpDXKulture struct { PublisherId string `json:"publisherId"` PlacementId string `json:"placementId"` }
ExtImpDXKulture defines the contract for bidrequest.imp[i].ext.prebid.bidder.dxkulture
type ExtImpData ¶
type ExtImpData struct { PbAdslot string `json:"pbadslot,omitempty"` AdServer *ExtImpDataAdServer `json:"adserver,omitempty"` }
type ExtImpDataAdServer ¶
type ExtImpDatablocks ¶
type ExtImpDatablocks struct {
SourceId int `json:"sourceId"`
}
ExtImpDatablocks defines the contract for bidrequest.imp[i].ext.prebid.bidder.datablocks
type ExtImpDecenterAds ¶
type ExtImpDecenterAds struct {
PlacementID string `json:"placementId"`
}
type ExtImpDeepintent ¶
type ExtImpDeepintent struct {
TagID string `json:"tagId"`
}
type ExtImpDianomi ¶
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.prebid.bidder.eplanning
type ExtImpExtraDataSmaato ¶
type ExtImpExtraDataSmaato struct {
Skadn json.RawMessage `json:"skadn,omitempty"`
}
ExtImpExtraDataSmaato defines extra properties from imp[i].ext object
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.prebid.bidder.gamma
type ExtImpGamoshi ¶
type ExtImpGamoshi struct { SupplyPartnerId string `json:"supplyPartnerId"` FavoredMediaType string `json:"favoredMediaType"` }
ExtImpGamoshi defines the contract for bidrequest.imp[i].ext.prebid.bidder.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.prebid.bidder.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"` Product string `json:"product,omitempty"` }
ExtImpGumGum defines the contract for bidrequest.imp[i].ext.prebid.bidder.gumgum Either Zone or PubId must be present, others are optional parameters
type ExtImpGumGumBanner ¶
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.prebid.bidder.gumgum.banner
type ExtImpGumGumVideo ¶
type ExtImpGumGumVideo struct {
IrisID string `json:"irisid,omitempty"`
}
ExtImpGumGumVideo defines the contract for bidresponse.seatbid.bid[i].ext.prebid.bidder.gumgum.video
type ExtImpHuaweiAds ¶
type ExtImpImds ¶
ExtImpImds defines the contract for bidrequest.imp[i].ext.prebid.bidder.imds
type ExtImpImpactify ¶
type ExtImpImpactify struct { AppID string `json:"appId"` Format string `json:"format"` Style string `json:"style"` }
ExtImpImpactify defines the contract for bidrequest.imp[i].ext.prebid.bidder.impactify
type ExtImpInMobi ¶
type ExtImpInMobi struct {
Plc string `json:"plc"`
}
type ExtImpInteractiveoffers ¶
type ExtImpInteractiveoffers struct {
PartnerId string `json:"partnerId"`
}
type ExtImpInvibes ¶
type ExtImpInvibes struct { PlacementID string `json:"placementId,omitempty"` DomainID int `json:"domainId"` Debug ExtImpInvibesDebug `json:"debug,omitempty"` }
type ExtImpInvibesDebug ¶
type ExtImpIx ¶
type ExtImpIx struct { SiteId string `json:"siteId"` Size []int `json:"size"` Sid string `json:"sid"` }
ExtImpIx defines the contract for bidrequest.imp[i].ext.prebid.bidder.ix
type ExtImpJixie ¶
type ExtImpKidoz ¶
type ExtImpLockerDome ¶
type ExtImpLockerDome struct { // LockerDome params AdUnitId string `json:"adUnitId"` }
ExtImpLockerDome defines the contract for bidrequest.imp[i].ext.prebid.bidder.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.prebid.bidder.madvertise
type ExtImpMarsmedia ¶
ExtImpMarsmedia defines the contract for bidrequest.imp[i].ext.prebid.bidder.marsmedia
type ExtImpMedianet ¶
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.prebid.bidder.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.prebid.bidder.mobilefuse
type ExtImpNoBid ¶
type ExtImpOms ¶ added in v2.1.0
type ExtImpOms struct {
PublisherID string `json:"pid"`
}
ExtImpOms defines the contract for bidrequest.imp[i].ext.prebid.bidder.oms
type ExtImpOnetag ¶
type ExtImpOnetag struct { PubId string `json:"pubId"` Ext json.RawMessage `json:"ext"` }
type ExtImpOpenWeb ¶
type ExtImpOpenWeb struct { SourceID int `json:"aid"` PlacementID int `json:"placementId,omitempty"` SiteID int `json:"siteId,omitempty"` BidFloor float64 `json:"bidFloor,omitempty"` }
ExtImpOpenWeb defines the contract for bidrequest.imp[i].ext.prebid.bidder.openweb
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.prebid.bidder.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.prebid.bidder.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.prebid.bidder.outbrain
type ExtImpOutbrainPublisher ¶
type ExtImpOwnAdx ¶
type ExtImpPrebid ¶
type ExtImpPrebid struct { // StoredRequest specifies which stored impression to use, if any. StoredRequest *ExtStoredRequest `json:"storedrequest,omitempty"` // StoredResponse specifies which stored impression to use, if any. StoredAuctionResponse *ExtStoredAuctionResponse `json:"storedauctionresponse,omitempty"` // Stored bid response determines if imp has stored bid response for bidder StoredBidResponse []ExtStoredBidResponse `json:"storedbidresponse,omitempty"` // IsRewardedInventory is a signal intended for video impressions. Must be 0 or 1. IsRewardedInventory *int8 `json:"is_rewarded_inventory,omitempty"` // Bidder is the preferred approach for providing parameters to be interpreted by the bidder's adapter. Bidder map[string]json.RawMessage `json:"bidder,omitempty"` Options *Options `json:"options,omitempty"` Passthrough json.RawMessage `json:"passthrough,omitempty"` Floors *ExtImpPrebidFloors `json:"floors,omitempty"` }
ExtImpPrebid defines the contract for bidrequest.imp[i].ext.prebid
type ExtImpPrebidFloors ¶
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"` Kadfloor string `json:"kadfloor,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.prebid.bidder.pubmatic.keywords[i]
type ExtImpPubnative ¶
type ExtImpPulsePoint ¶
type ExtImpPwbid ¶
type ExtImpRTBHouse ¶
type ExtImpRTBHouse struct { PublisherId string `json:"publisherId"` Region string `json:"region"` BidFloor float64 `json:"bidfloor,omitempty"` Channel string `json:"channel,omitempty"` }
ExtImpRTBHouse defines the contract for bidrequest.imp[i].ext.prebid.bidder.rtbhouse
type ExtImpRichaudience ¶
type ExtImpRubicon ¶
type ExtImpRubicon struct { AccountId json.Number `json:"accountId"` SiteId json.Number `json:"siteId"` ZoneId json.Number `json:"zoneId"` Inventory json.RawMessage `json:"inventory,omitempty"` BidOnMultiformat bool `json:"bidonmultiformat,omitempty"` Keywords []string `json:"keywords,omitempty"` Visitor json.RawMessage `json:"visitor,omitempty"` Video rubiconVideoParams `json:"video"` Debug impExtRubiconDebug `json:"debug,omitempty"` PChain string `json:"pchain,omitempty"` }
ExtImpRubicon defines the contract for bidrequest.imp[i].ext.prebid.bidder.rubicon
type ExtImpSaLunamedia ¶
type ExtImpSharethrough ¶
type ExtImpSharethrough 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.prebid.bidder.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 the identifier for specific ad placement or ad tag AdBreakId is the 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.prebid.bidder.smartadserver
type ExtImpSmartclip ¶
type ExtImpSonobi ¶
type ExtImpSonobi struct {
TagID string `json:"tagid"`
}
type ExtImpSovrn ¶
type ExtImpSovrnXsp ¶ added in v2.3.0
type ExtImpSspbc ¶
type ExtImpStroeerCore ¶
type ExtImpStroeerCore struct {
Sid string `json:"sid,omitempty"`
}
type ExtImpTappx ¶
type ExtImpTappx struct { Host string `json:"host,omitempty"` //DEPRECATED TappxKey string `json:"tappxkey"` Endpoint string `json:"endpoint"` BidFloor float64 `json:"bidfloor,omitempty"` Mktag string `json:"mktag,omitempty"` Bcid []string `json:"bcid,omitempty"` Bcrid []string `json:"bcrid,omitempty"` }
type ExtImpTeads ¶
type ExtImpTeads struct {
PlacementID string `json:"placementId"`
}
type ExtImpTelaria ¶
type ExtImpTelaria struct { AdCode string `json:"adCode,omitempty"` SeatCode string `json:"seatCode"` Extra json.RawMessage `json:"extra,omitempty"` }
type ExtImpTpmn ¶
type ExtImpTpmn struct {
InventoryId int `json:"inventoryId"`
}
ExtImpTpmn defines TPMN specifiec param
type ExtImpTrafficGate ¶
type ExtImpTriplelift ¶
type ExtImpTriplelift struct { InvCode string `json:"inventoryCode"` Floor *float64 `json:"floor"` }
ExtImpTriplelift defines the contract for bidrequest.imp[i].ext.prebid.bidder.triplelift
type ExtImpUcfunnel ¶
type ExtImpUcfunnel struct { AdUnitId string `json:"adunitid"` PartnerId string `json:"partnerid"` }
ExtImpUcfunnel defines the contract for bidrequest.imp[i].ext.prebid.bidder.ucfunnel
type ExtImpUndertone ¶
type ExtImpUnicorn ¶
type ExtImpUnicorn struct { PlacementID string `json:"placementId,omitempty"` PublisherID string `json:"publisherId,omitempty"` MediaID string `json:"mediaId,omitempty"` AccountID int `json:"accountId,omitempty"` }
ExtImpUnicorn defines the contract for bidrequest.imp[i].ext.prebid.bidder.unicorn
type ExtImpUnruly ¶
type ExtImpVideoByte ¶
type ExtImpVideoByte struct { PublisherId string `json:"pubId"` PlacementId string `json:"placementId"` NetworkId string `json:"nid"` }
ExtImpVideoByte defines the contract for bidrequest.imp[i].ext.prebid.bidder.videobyte
type ExtImpVideoHeroes ¶
type ExtImpVideoHeroes struct {
PlacementID string `json:"placementId"`
}
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.prebid.bidder.vrtcal
type ExtImpYahooAds ¶
ExtImpYahooAds defines the contract for bidrequest.imp[i].ext.prebid.bidder.yahooAds
type ExtImpYahooAdvertising ¶
ExtImpYahooAdvertising defines the contract for bidrequest.imp[i].ext.prebid.bidder.yahooAdvertising
type ExtImpYahooSSP ¶
ExtImpYahooSSP defines the contract for bidrequest.imp[i].ext.prebid.bidder.yahoossp
type ExtImpYeahmobi ¶
ExtImpYeahmobi defines the contract for bidrequest.imp[i].ext.prebid.bidder.yeahmobi
type ExtImpYieldlab ¶
type ExtImpYieldlab struct { AdslotID string `json:"adslotId"` SupplyID string `json:"supplyId"` Targeting map[string]string `json:"targeting"` ExtId string `json:"extId"` }
ExtImpYieldlab defines the contract for bidrequest.imp[i].ext.prebid.bidder.yieldlab
type ExtImpYieldmo ¶
type ExtImpYieldmo struct {
PlacementId string `json:"placementId"`
}
ExtImpYieldmo defines the contract for bidrequest.imp[i].ext.prebid.bidder.yieldmo
type ExtImpYieldone ¶
type ExtImpYieldone struct {
PlacementId string `json:"placementId"`
}
ExtImpYieldone defines the contract for bidrequest.imp[i].ext.prebid.bidder.yieldone
type ExtImpZeroClickFraud ¶
ExtImpZeroClickFraud defines the contract for bidrequest.imp[i].ext.prebid.bidder.datablocks
type ExtIncludeBrandCategory ¶
type ExtKrushmedia ¶
type ExtKrushmedia struct {
AccountID string `json:"key"`
}
ExtKrushmedia defines imp[0].ext object structure
type ExtLmKiviads ¶
type ExtMotorik ¶
type ExtMultiBid ¶
type ExtMultiBid struct { Bidder string `json:"bidder,omitempty"` Bidders []string `json:"bidders,omitempty"` MaxBids *int `json:"maxbids,omitempty"` TargetBidderCodePrefix string `json:"targetbiddercodeprefix,omitempty"` }
func ValidateAndBuildExtMultiBid ¶
func ValidateAndBuildExtMultiBid(prebid *ExtRequestPrebid) ([]*ExtMultiBid, []error)
func (ExtMultiBid) String ¶
func (m ExtMultiBid) String() string
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 ExtRelevantDigital ¶ added in v2.2.0
type ExtRequest ¶
type ExtRequest struct { Prebid ExtRequestPrebid `json:"prebid"` SChain *openrtb2.SupplyChain `json:"schain,omitempty"` }
ExtRequest defines the contract for bidrequest.ext
type ExtRequestCurrency ¶
type ExtRequestPrebid ¶
type ExtRequestPrebid struct { AdServerTargeting []AdServerTarget `json:"adservertargeting,omitempty"` Aliases map[string]string `json:"aliases,omitempty"` AliasGVLIDs map[string]uint16 `json:"aliasgvlids,omitempty"` BidAdjustmentFactors map[string]float64 `json:"bidadjustmentfactors,omitempty"` BidAdjustments *ExtRequestPrebidBidAdjustments `json:"bidadjustments,omitempty"` BidderConfigs []BidderConfig `json:"bidderconfig,omitempty"` BidderParams json.RawMessage `json:"bidderparams,omitempty"` Cache *ExtRequestPrebidCache `json:"cache,omitempty"` Channel *ExtRequestPrebidChannel `json:"channel,omitempty"` CurrencyConversions *ExtRequestCurrency `json:"currency,omitempty"` Data *ExtRequestPrebidData `json:"data,omitempty"` Debug bool `json:"debug,omitempty"` Events json.RawMessage `json:"events,omitempty"` Experiment *Experiment `json:"experiment,omitempty"` Floors *PriceFloorRules `json:"floors,omitempty"` Integration string `json:"integration,omitempty"` MultiBid []*ExtMultiBid `json:"multibid,omitempty"` MultiBidMap map[string]ExtMultiBid `json:"-"` Passthrough json.RawMessage `json:"passthrough,omitempty"` SChains []*ExtRequestPrebidSChain `json:"schains,omitempty"` Sdk *ExtRequestSdk `json:"sdk,omitempty"` Server *ExtRequestPrebidServer `json:"server,omitempty"` StoredRequest *ExtStoredRequest `json:"storedrequest,omitempty"` SupportDeals bool `json:"supportdeals,omitempty"` Targeting *ExtRequestTargeting `json:"targeting,omitempty"` //AlternateBidderCodes is populated with host's AlternateBidderCodes config if not defined in request AlternateBidderCodes *ExtAlternateBidderCodes `json:"alternatebiddercodes,omitempty"` // Macros specifies list of custom macros along with the values. This is used while forming // the tracker URLs, where PBS will replace the Custom Macro with its value with url-encoding Macros map[string]string `json:"macros,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"` // ReturnAllBidStatus if true populates bidresponse.ext.prebid.seatnonbid with all bids which was // either rejected, nobid, input error ReturnAllBidStatus bool `json:"returnallbidstatus,omitempty"` // Trace controls the level of detail in the output information returned from executing hooks. // There are two options: // - verbose: sets maximum level of output information // - basic: excludes debugmessages and analytic_tags from output // any other value or an empty string disables trace output at all. Trace string `json:"trace,omitempty"` }
ExtRequestPrebid defines the contract for bidrequest.ext.prebid
func (*ExtRequestPrebid) Clone ¶
func (erp *ExtRequestPrebid) Clone() *ExtRequestPrebid
type ExtRequestPrebidBidAdjustments ¶
type ExtRequestPrebidBidAdjustments struct {
MediaType MediaType `json:"mediatype,omitempty"`
}
ExtRequestPrebidBidAdjustments defines the contract for bidrequest.ext.prebid.bidadjustments
type ExtRequestPrebidCache ¶
type ExtRequestPrebidCache struct { Bids *ExtRequestPrebidCacheBids `json:"bids,omitempty"` VastXML *ExtRequestPrebidCacheVAST `json:"vastxml,omitempty"` }
ExtRequestPrebidCache defines the contract for bidrequest.ext.prebid.cache
type ExtRequestPrebidCacheBids ¶
type ExtRequestPrebidCacheBids struct {
ReturnCreative *bool `json:"returnCreative,omitempty"`
}
ExtRequestPrebidCacheBids defines the contract for bidrequest.ext.prebid.cache.bids
type ExtRequestPrebidCacheVAST ¶
type ExtRequestPrebidCacheVAST struct {
ReturnCreative *bool `json:"returnCreative,omitempty"`
}
ExtRequestPrebidCacheVAST defines the contract for bidrequest.ext.prebid.cache.vastxml
type ExtRequestPrebidChannel ¶
ExtRequestPrebidChannel defines the contract for bidrequest.ext.prebid.channel
type ExtRequestPrebidData ¶
type ExtRequestPrebidData struct { EidPermissions []ExtRequestPrebidDataEidPermission `json:"eidpermissions"` Bidders []string `json:"bidders,omitempty"` }
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 openrtb2.SupplyChain `json:"schain"` }
ExtRequestPrebid defines the contract for bidrequest.ext.prebid.schains
type ExtRequestPrebidServer ¶
type ExtRequestSdk ¶
type ExtRequestSdk struct {
Renderers []ExtRequestSdkRenderer `json:"renderers,omitempty"`
}
type ExtRequestSdkRenderer ¶
type ExtRequestSdkRenderer struct { Name string `json:"name,omitempty"` Version string `json:"version,omitempty"` Data json.RawMessage `json:"data,omitempty"` }
type ExtRequestTargeting ¶
type ExtRequestTargeting struct { PriceGranularity *PriceGranularity `json:"pricegranularity,omitempty"` MediaTypePriceGranularity MediaTypePriceGranularity `json:"mediatypepricegranularity,omitempty"` IncludeWinners *bool `json:"includewinners,omitempty"` IncludeBidderKeys *bool `json:"includebidderkeys,omitempty"` IncludeBrandCategory *ExtIncludeBrandCategory `json:"includebrandcategory,omitempty"` IncludeFormat bool `json:"includeformat,omitempty"` DurationRangeSec []int `json:"durationrangesec,omitempty"` PreferDeals bool `json:"preferdeals,omitempty"` AppendBidderNames bool `json:"appendbiddernames,omitempty"` }
ExtRequestTargeting defines the contract for bidrequest.ext.prebid.targeting
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 json.RawMessage `json:"resolvedrequest,omitempty"` }
ExtResponseDebug defines the contract for bidresponse.ext.debug
type ExtResponseNonBidPrebid ¶
type ExtResponseNonBidPrebid struct {
Bid NonBidObject `json:"bid"`
}
ExtResponseNonBidPrebid represents bidresponse.ext.prebid.seatnonbid[].nonbid[].ext
type ExtResponsePrebid ¶
type ExtResponsePrebid struct { AuctionTimestamp int64 `json:"auctiontimestamp,omitempty"` Passthrough json.RawMessage `json:"passthrough,omitempty"` Modules json.RawMessage `json:"modules,omitempty"` Fledge *Fledge `json:"fledge,omitempty"` Targeting map[string]string `json:"targeting,omitempty"` // SeatNonBid holds the array of Bids which are either rejected, no bids inside bidresponse.ext.prebid.seatnonbid SeatNonBid []SeatNonBid `json:"seatnonbid,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 ExtScreencore ¶
type ExtSilverMob ¶
ExtSilverMob defines the contract for bidrequest.imp[i].ext.prebid.bidder.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 ¶
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.prebid.bidder.smartyads
type ExtSource ¶
type ExtSource struct {
SChain *openrtb2.SupplyChain `json:"schain"`
}
ExtSource defines the contract for bidrequest.source.ext
type ExtStoredAuctionResponse ¶
type ExtStoredAuctionResponse struct {
ID string `json:"id"`
}
ExtStoredAuctionResponse defines the contract for bidrequest.imp[i].ext.prebid.storedauctionresponse
type ExtStoredBidResponse ¶
type ExtStoredBidResponse struct { ID string `json:"id"` Bidder string `json:"bidder"` ReplaceImpId *bool `json:"replaceimpid"` }
ExtStoredBidResponse defines the contract for bidrequest.imp[i].ext.prebid.storedbidresponse
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"` ConsentedProvidersSettings *ConsentedProvidersSettingsIn `json:"ConsentedProvidersSettings,omitempty"` ConsentedProvidersSettingsParsed *ConsentedProvidersSettingsOut `json:"consented_providers_settings,omitempty"` Prebid *ExtUserPrebid `json:"prebid,omitempty"` Eids []openrtb2.EID `json:"eids,omitempty"` }
ExtUser defines the contract for bidrequest.user.ext
type ExtUserDataHuaweiAds ¶
type ExtUserDataHuaweiAds struct {
Data ExtUserDataDeviceIdHuaweiAds `json:"data,omitempty"`
}
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 ExtXeworks ¶
type Fledge ¶
type Fledge struct {
AuctionConfigs []*FledgeAuctionConfig `json:"auctionconfigs,omitempty"`
}
FledgeResponse defines the contract for bidresponse.ext.fledge
type FledgeAuctionConfig ¶
type FledgeAuctionConfig struct { ImpId string `json:"impid"` Bidder string `json:"bidder,omitempty"` Adapter string `json:"adapter,omitempty"` Config json.RawMessage `json:"config"` }
FledgeAuctionConfig defines the container for bidresponse.ext.fledge.auctionconfigs[]
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 ImpExt ¶
type ImpExt struct {
// contains filtered or unexported fields
}
func CreateImpExtForTesting ¶
func CreateImpExtForTesting(ext map[string]json.RawMessage, prebid *ExtImpPrebid) ImpExt
func (*ImpExt) GetData ¶
func (e *ImpExt) GetData() *ExtImpData
func (*ImpExt) GetOrCreatePrebid ¶
func (e *ImpExt) GetOrCreatePrebid() *ExtImpPrebid
func (*ImpExt) GetPrebid ¶
func (e *ImpExt) GetPrebid() *ExtImpPrebid
func (*ImpExt) SetPrebid ¶
func (e *ImpExt) SetPrebid(prebid *ExtImpPrebid)
type ImpExtAdQuery ¶
type ImpExtAdnunitus ¶
type ImpExtAdsinteractive ¶
type ImpExtAdsinteractive struct {
AdUnit string `json:"adUnit"`
}
type ImpExtAppush ¶
type ImpExtAxis ¶
type ImpExtBeyondMedia ¶
type ImpExtBeyondMedia struct {
PlacementID string `json:"placementId"`
}
type ImpExtBidstack ¶
type ImpExtBidstack struct {
PublisherID string `json:"publisherId"`
}
type ImpExtBliink ¶
type ImpExtBmtm ¶
type ImpExtBmtm struct {
PlacementID int `json:"placement_id"`
}
type ImpExtBoldwin ¶
type ImpExtCWire ¶
type ImpExtCWire struct { PlacementID int `json:"placementId,omitempty"` PageID int `json:"pageId,omitempty"` CwCreative string `json:"cwcreative,omitempty"` CwDebug bool `json:"cwdebug,omitempty"` CwFeatures []string `json:"cwfeatures,omitempty"` }
ImpExtCwire defines the contract for MakeRequests `request.imp[i].ext.bidder`
type ImpExtCompass ¶
type ImpExtDefinemedia ¶
type ImpExtEdge226 ¶
type ImpExtEmtv ¶
type ImpExtEpom ¶
type ImpExtEpom struct { }
type ImpExtFRVRAdn ¶
type ImpExtFlipp ¶
type ImpExtFlipp struct { PublisherNameIdentifier string `json:"publisherNameIdentifier"` CreativeType string `json:"creativeType"` SiteID int64 `json:"siteId"` ZoneIds []int64 `json:"zoneIds,omitempty"` UserKey string `json:"userKey,omitempty"` Options ImpExtFlippOptions `json:"options,omitempty"` }
type ImpExtFlippOptions ¶
type ImpExtFreewheelSSP ¶
type ImpExtGlobalsun ¶
type ImpExtGlobalsun struct {
PlacementID string `json:"placementId"`
}
type ImpExtIQZone ¶
type ImpExtInfytv ¶
type ImpExtKargo ¶
type ImpExtKiviads ¶
type ImpExtLemmaDigital ¶
type ImpExtLiftoff ¶
type ImpExtLimelightDigital ¶
type ImpExtLogan ¶
type ImpExtLogan struct {
PlacementID string `json:"placementId"`
}
type ImpExtMabidder ¶
type ImpExtMabidder struct {
Ppid string `json:"ppid"`
}
type ImpExtMgidX ¶
type ImpExtNextMillennium ¶
type ImpExtOperaads ¶
type ImpExtPangle ¶
type ImpExtPgamSsp ¶
type ImpExtPrebid ¶
type ImpExtPrebid struct {
Floors Price `json:"floors,omitempty"`
}
type ImpExtRise ¶
ImpExtRise defines the contract for bidrequest.imp[i].ext.prebid.bidder.rise
type ImpExtSeedingAlliance ¶
type ImpExtSilverpush ¶
type ImpExtSilverpush struct { PublisherId string `json:"publisherId"` BidFloor float64 `json:"bidfloor"` }
ImpExtSilverpush defines the contract for bidrequest.imp[i].ext.prebid.bidder.silverpush PublisherId is mandatory parameters
type ImpExtTaboola ¶
type ImpExtTaboola struct { PublisherId string `json:"publisherId"` PublisherDomain string `json:"publisherDomain"` BidFloor float64 `json:"bidfloor"` TagId string `json:"tagid"` TagID string `json:"tagId"` BCat []string `json:"bcat"` BAdv []string `json:"badv"` PageType string `json:"pageType"` Position *int `json:"position"` }
type ImpExtVidoomy ¶
type ImpExtVidoomy struct {
ZoneID string `json:"zoneId"`
}
type ImpExtVisibleMeasures ¶
type ImpFloorExt ¶
type ImpWrapper ¶
ImpWrapper wraps an OpenRTB impression object to provide storage for unmarshalled ext fields, so they will not need to be unmarshalled multiple times. It is intended to use the ImpWrapper via the RequestWrapper and follow the same usage conventions.
func (*ImpWrapper) Clone ¶
func (w *ImpWrapper) Clone() *ImpWrapper
func (*ImpWrapper) GetImpExt ¶
func (w *ImpWrapper) GetImpExt() (*ImpExt, error)
func (*ImpWrapper) RebuildImp ¶
func (w *ImpWrapper) RebuildImp() error
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 MediaType ¶
type MediaType struct { Banner map[BidderName]AdjustmentsByDealID `json:"banner,omitempty"` VideoInstream map[BidderName]AdjustmentsByDealID `json:"video-instream,omitempty"` VideoOutstream map[BidderName]AdjustmentsByDealID `json:"video-outstream,omitempty"` Audio map[BidderName]AdjustmentsByDealID `json:"audio,omitempty"` Native map[BidderName]AdjustmentsByDealID `json:"native,omitempty"` WildCard map[BidderName]AdjustmentsByDealID `json:"*,omitempty"` }
MediaType defines contract for bidrequest.ext.prebid.bidadjustments.mediatype BidderName will map to a DealID that will map to a slice of bid adjustments
type MediaTypePriceGranularity ¶
type MediaTypePriceGranularity struct { Banner *PriceGranularity `json:"banner,omitempty"` Video *PriceGranularity `json:"video,omitempty"` Native *PriceGranularity `json:"native,omitempty"` }
MediaTypePriceGranularity specify price granularity configuration at the bid type level
type NonBid ¶
type NonBid struct { ImpId string `json:"impid"` StatusCode int `json:"statuscode"` Ext NonBidExt `json:"ext"` }
NonBid represnts the Non Bid Reason (statusCode) for given impression ID
type NonBidExt ¶
type NonBidExt struct {
Prebid ExtResponseNonBidPrebid `json:"prebid"`
}
type NonBidObject ¶
type NonBidObject struct { Price float64 `json:"price,omitempty"` ADomain []string `json:"adomain,omitempty"` CatTax adcom1.CategoryTaxonomy `json:"cattax,omitempty"` Cat []string `json:"cat,omitempty"` DealID string `json:"dealid,omitempty"` W int64 `json:"w,omitempty"` H int64 `json:"h,omitempty"` Dur int64 `json:"dur,omitempty"` MType openrtb2.MarkupType `json:"mtype,omitempty"` OriginalBidCPM float64 `json:"origbidcpm,omitempty"` OriginalBidCur string `json:"origbidcur,omitempty"` }
NonBidObject is subset of Bid object with exact json signature defined at https://github.com/prebid/openrtb/blob/v19.0.0/openrtb2/bid.go It also contains the custom fields
type ORTB2 ¶
type ORTB2 struct { Site json.RawMessage `json:"site,omitempty"` App json.RawMessage `json:"app,omitempty"` User json.RawMessage `json:"user,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 PriceFloorData ¶
type PriceFloorData struct { Currency string `json:"currency,omitempty"` SkipRate int `json:"skiprate,omitempty"` FloorsSchemaVersion string `json:"floorsschemaversion,omitempty"` ModelTimestamp int `json:"modeltimestamp,omitempty"` ModelGroups []PriceFloorModelGroup `json:"modelgroups,omitempty"` FloorProvider string `json:"floorprovider,omitempty"` }
func (*PriceFloorData) DeepCopy ¶ added in v2.1.0
func (data *PriceFloorData) DeepCopy() *PriceFloorData
type PriceFloorEndpoint ¶
type PriceFloorEndpoint struct {
URL string `json:"url,omitempty"`
}
type PriceFloorEnforcement ¶
type PriceFloorEnforcement struct { EnforceJS *bool `json:"enforcejs,omitempty"` EnforcePBS *bool `json:"enforcepbs,omitempty"` FloorDeals *bool `json:"floordeals,omitempty"` BidAdjustment *bool `json:"bidadjustment,omitempty"` EnforceRate int `json:"enforcerate,omitempty"` }
func (*PriceFloorEnforcement) DeepCopy ¶ added in v2.1.0
func (enforcement *PriceFloorEnforcement) DeepCopy() *PriceFloorEnforcement
type PriceFloorModelGroup ¶
type PriceFloorModelGroup struct { Currency string `json:"currency,omitempty"` ModelWeight *int `json:"modelweight,omitempty"` ModelVersion string `json:"modelversion,omitempty"` SkipRate int `json:"skiprate,omitempty"` Schema PriceFloorSchema `json:"schema,omitempty"` Values map[string]float64 `json:"values,omitempty"` Default float64 `json:"default,omitempty"` }
func (PriceFloorModelGroup) Copy ¶
func (mg PriceFloorModelGroup) Copy() PriceFloorModelGroup
type PriceFloorRules ¶
type PriceFloorRules struct { FloorMin float64 `json:"floormin,omitempty"` FloorMinCur string `json:"floormincur,omitempty"` SkipRate int `json:"skiprate,omitempty"` Location *PriceFloorEndpoint `json:"floorendpoint,omitempty"` Data *PriceFloorData `json:"data,omitempty"` Enforcement *PriceFloorEnforcement `json:"enforcement,omitempty"` Enabled *bool `json:"enabled,omitempty"` Skipped *bool `json:"skipped,omitempty"` FloorProvider string `json:"floorprovider,omitempty"` FetchStatus string `json:"fetchstatus,omitempty"` PriceFloorLocation string `json:"location,omitempty"` }
PriceFloorRules defines the contract for bidrequest.ext.prebid.floors
func (*PriceFloorRules) DeepCopy ¶ added in v2.1.0
func (pf *PriceFloorRules) DeepCopy() *PriceFloorRules
func (*PriceFloorRules) GetEnabled ¶
func (Floors *PriceFloorRules) GetEnabled() bool
GetEnabled will check if floors is enabled in request
func (*PriceFloorRules) GetEnforceDealsFlag ¶
func (Floors *PriceFloorRules) GetEnforceDealsFlag() bool
GetEnforceDealsFlag will return FloorDeals flag in request
func (*PriceFloorRules) GetEnforcePBS ¶
func (Floors *PriceFloorRules) GetEnforcePBS() bool
GetEnforcePBS will check if floors enforcement is enabled in request
func (*PriceFloorRules) GetEnforceRate ¶
func (Floors *PriceFloorRules) GetEnforceRate() int
GetEnforceRate will return enforcement rate in request
func (*PriceFloorRules) GetFloorsSkippedFlag ¶
func (Floors *PriceFloorRules) GetFloorsSkippedFlag() bool
GetFloorsSkippedFlag will return floors skipped flag
type PriceFloorSchema ¶
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 or bidrequest.ext.prebid.targeting.mediatypepricegranularity.banner|video|native
func NewPriceGranularityDefault ¶
func NewPriceGranularityDefault() PriceGranularity
func NewPriceGranularityFromLegacyID ¶
func NewPriceGranularityFromLegacyID(v string) (PriceGranularity, bool)
NewPriceGranularityFromLegacyID converts a legacy string into the new PriceGranularity structure.
func (*PriceGranularity) UnmarshalJSON ¶
func (pg *PriceGranularity) UnmarshalJSON(b []byte) error
type PriceGranularityRaw ¶
type PriceGranularityRaw PriceGranularity
type RegExt ¶
type RegExt struct {
// contains filtered or unexported fields
}
func (*RegExt) GetUSPrivacy ¶
func (*RegExt) SetUSPrivacy ¶
type RequestExt ¶
type RequestExt struct {
// contains filtered or unexported fields
}
func (*RequestExt) Clone ¶
func (re *RequestExt) Clone() *RequestExt
func (*RequestExt) Dirty ¶
func (re *RequestExt) Dirty() bool
func (*RequestExt) GetExt ¶
func (re *RequestExt) GetExt() map[string]json.RawMessage
func (*RequestExt) GetPrebid ¶
func (re *RequestExt) GetPrebid() *ExtRequestPrebid
func (*RequestExt) GetSChain ¶
func (re *RequestExt) GetSChain() *openrtb2.SupplyChain
These schain methods on the request.ext are only for ORTB 2.4 backwards compatibility and should not be used for any other purposes. To access ORTB 2.5 schains, see source.ext.schain or request.ext.prebid.schains.
func (*RequestExt) SetExt ¶
func (re *RequestExt) SetExt(ext map[string]json.RawMessage)
func (*RequestExt) SetPrebid ¶
func (re *RequestExt) SetPrebid(prebid *ExtRequestPrebid)
func (*RequestExt) SetSChain ¶
func (re *RequestExt) SetSChain(schain *openrtb2.SupplyChain)
type RequestWrapper ¶
type RequestWrapper struct { *openrtb2.BidRequest // contains filtered or unexported fields }
RequestWrapper wraps the OpenRTB request to provide a storage location for unmarshalled ext fields, so they will not need to be unmarshalled multiple times.
To start with, the wrapper can be created for a request 'req' via: reqWrapper := openrtb_ext.RequestWrapper{BidRequest: req}
In order to access an object's ext field, fetch it via: userExt, err := reqWrapper.GetUserExt() or other Get method as appropriate.
To read or write values, use the Ext objects Get and Set methods. If you need to write to a field that has its own Set method, use that to set the value rather than using SetExt() with that change done in the map; when rewritting the ext JSON the code will overwrite the the values in the map with the values stored in the seperate fields.
userPrebid := userExt.GetPrebid() userExt.SetConsent(consentString)
The GetExt() and SetExt() should only be used to access fields that have not already been resolved in the object. Using SetExt() at all is a strong hint that the ext object should be extended to support the new fields being set in the map.
NOTE: The RequestWrapper methods (particularly the ones calling (un)Marshal are not thread safe)
func (*RequestWrapper) Clone ¶
func (rw *RequestWrapper) Clone() *RequestWrapper
func (*RequestWrapper) GetAppExt ¶
func (rw *RequestWrapper) GetAppExt() (*AppExt, error)
func (*RequestWrapper) GetDOOHExt ¶
func (rw *RequestWrapper) GetDOOHExt() (*DOOHExt, error)
func (*RequestWrapper) GetDeviceExt ¶
func (rw *RequestWrapper) GetDeviceExt() (*DeviceExt, error)
func (*RequestWrapper) GetImp ¶
func (rw *RequestWrapper) GetImp() []*ImpWrapper
func (*RequestWrapper) GetRegExt ¶
func (rw *RequestWrapper) GetRegExt() (*RegExt, error)
func (*RequestWrapper) GetRequestExt ¶
func (rw *RequestWrapper) GetRequestExt() (*RequestExt, error)
func (*RequestWrapper) GetSiteExt ¶
func (rw *RequestWrapper) GetSiteExt() (*SiteExt, error)
func (*RequestWrapper) GetSourceExt ¶
func (rw *RequestWrapper) GetSourceExt() (*SourceExt, error)
func (*RequestWrapper) GetUserExt ¶
func (rw *RequestWrapper) GetUserExt() (*UserExt, error)
func (*RequestWrapper) LenImp ¶
func (rw *RequestWrapper) LenImp() int
LenImp returns the number of impressions without causing the creation of ImpWrapper objects.
func (*RequestWrapper) RebuildRequest ¶
func (rw *RequestWrapper) RebuildRequest() error
func (*RequestWrapper) SetImp ¶
func (rw *RequestWrapper) SetImp(imps []*ImpWrapper)
type SeatNonBid ¶
type SeatNonBid struct { NonBid []NonBid `json:"nonbid"` Seat string `json:"seat"` Ext json.RawMessage `json:"ext"` }
SeatNonBid is collection of NonBid objects with seat information
type SourceExt ¶
type SourceExt struct {
// contains filtered or unexported fields
}
func (*SourceExt) GetSChain ¶
func (se *SourceExt) GetSChain() *openrtb2.SupplyChain
func (*SourceExt) SetSChain ¶
func (se *SourceExt) SetSChain(schain *openrtb2.SupplyChain)
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
func (TargetingKey) TruncateKey ¶
func (key TargetingKey) TruncateKey(maxLength int) string
type UserExt ¶
type UserExt struct {
// contains filtered or unexported fields
}
func (*UserExt) GetConsent ¶
func (*UserExt) GetConsentedProvidersSettingsIn ¶
func (ue *UserExt) GetConsentedProvidersSettingsIn() *ConsentedProvidersSettingsIn
GetConsentedProvidersSettingsIn() returns a reference to a copy of ConsentedProvidersSettingsIn, a struct that has a string field formatted as a Google's Additional Consent string
func (*UserExt) GetConsentedProvidersSettingsOut ¶
func (ue *UserExt) GetConsentedProvidersSettingsOut() *ConsentedProvidersSettingsOut
GetConsentedProvidersSettingsOut() returns a reference to a copy of ConsentedProvidersSettingsOut, a struct that has an int array field listing Google's Additional Consent string elements
func (*UserExt) GetPrebid ¶
func (ue *UserExt) GetPrebid() *ExtUserPrebid
func (*UserExt) SetConsent ¶
func (*UserExt) SetConsentedProvidersSettingsIn ¶
func (ue *UserExt) SetConsentedProvidersSettingsIn(cpSettings *ConsentedProvidersSettingsIn)
SetConsentedProvidersSettingsIn() sets ConsentedProvidersSettingsIn, a struct that has a string field formatted as a Google's Additional Consent string
func (*UserExt) SetConsentedProvidersSettingsOut ¶
func (ue *UserExt) SetConsentedProvidersSettingsOut(cpSettings *ConsentedProvidersSettingsOut)
SetConsentedProvidersSettingsIn() sets ConsentedProvidersSettingsOut, a struct that has an int array field listing Google's Additional Consent string elements. This function overrides an existing ConsentedProvidersSettingsOut object, if any
func (*UserExt) SetPrebid ¶
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" )
Source Files ¶
- alternatebiddercodes.go
- app.go
- bid.go
- bid_request_video.go
- bid_response_video.go
- bidders.go
- convert_down.go
- convert_up.go
- deal_tier.go
- device.go
- doc.go
- floors.go
- imp.go
- imp_33across.go
- imp_aax.go
- imp_aceex.go
- imp_acuityads.go
- imp_adf.go
- imp_adgeneration.go
- imp_adhese.go
- imp_adkernel.go
- imp_adkernelAdn.go
- imp_adman.go
- imp_admixer.go
- imp_adnuntius.go
- imp_adocean.go
- imp_adoppler.go
- imp_adot.go
- imp_adpone.go
- imp_adprime.go
- imp_adquery.go
- imp_adrino.go
- imp_adsinteractive.go
- imp_adtarget.go
- imp_adtelligent.go
- imp_adtrgtme.go
- imp_advangelists.go
- imp_adview.go
- imp_adyoulike.go
- imp_aidem.go
- imp_aja.go
- imp_algorix.go
- imp_alkimi.go
- imp_amx.go
- imp_apacdex.go
- imp_appnexus.go
- imp_appush.go
- imp_avocet.go
- imp_axis.go
- imp_axonix.go
- imp_beachfront.go
- imp_beintoo.go
- imp_bematterfull.go
- imp_between.go
- imp_beyondmedia.go
- imp_bidmachine.go
- imp_bidscube.go
- imp_bidstack.go
- imp_bizzclick.go
- imp_bliink.go
- imp_bluesea.go
- imp_bmtm.go
- imp_boldwin.go
- imp_brave.go
- imp_cadent_aperture_mx.go
- imp_ccx.go
- imp_colossus.go
- imp_compass.go
- imp_connectad.go
- imp_consumable.go
- imp_conversant.go
- imp_cpmstar.go
- imp_criteo.go
- imp_cwire.go
- imp_datablocks.go
- imp_decenterads.go
- imp_deepintent.go
- imp_definemedia.go
- imp_dianomi.go
- imp_dxkulture.go
- imp_edge226.go
- imp_emtv.go
- imp_eplanning.go
- imp_epom.go
- imp_facebook.go
- imp_flipp.go
- imp_freewheelssp.go
- imp_frvradn.go
- imp_gamma.go
- imp_gamoshi.go
- imp_globalsun.go
- imp_gothamads.go
- imp_grid.go
- imp_gumgum.go
- imp_huaweiads.go
- imp_imds.go
- imp_impactify.go
- imp_infytv.go
- imp_inmobi.go
- imp_interactiveoffers.go
- imp_invibes.go
- imp_iqx.go
- imp_iqzone.go
- imp_ix.go
- imp_jixie.go
- imp_kargo.go
- imp_kayzen.go
- imp_kidoz.go
- imp_kiviads.go
- imp_krushmedia.go
- imp_lemmadigital.go
- imp_liftoff.go
- imp_limelightDigital.go
- imp_lmkiviads.go
- imp_lockerdome.go
- imp_logan.go
- imp_logicad.go
- imp_lunamedia.go
- imp_mabidder.go
- imp_madvertise.go
- imp_marsmedia.go
- imp_medianet.go
- imp_mgid.go
- imp_mgidX.go
- imp_mobilefuse.go
- imp_motorik.go
- imp_nextmillennium.go
- imp_nobid.go
- imp_oms.go
- imp_onetag.go
- imp_openweb.go
- imp_openx.go
- imp_operaads.go
- imp_orbidder.go
- imp_outbrain.go
- imp_ownadx.go
- imp_pangle.go
- imp_pgamssp.go
- imp_pubmatic.go
- imp_pubnative.go
- imp_pulsepoint.go
- imp_pwbid.go
- imp_relevantdigital.go
- imp_richaudience.go
- imp_rise.go
- imp_rtbhouse.go
- imp_rubicon.go
- imp_sa_lunamedia.go
- imp_screencore.go
- imp_seedingAlliance.go
- imp_sharethrough.go
- imp_silvermob.go
- imp_silverpush.go
- imp_smaato.go
- imp_smartadserver.go
- imp_smarthub.go
- imp_smartrtb.go
- imp_smartx.go
- imp_smartyads.go
- imp_sonobi.go
- imp_sovrn.go
- imp_sovrnXsp.go
- imp_sspbc.go
- imp_stroeercore.go
- imp_taboola.go
- imp_tappx.go
- imp_teads.go
- imp_telaria.go
- imp_tpmn.go
- imp_trafficgate.go
- imp_triplelift.go
- imp_ucfunnel.go
- imp_undertone.go
- imp_unicorn.go
- imp_unruly.go
- imp_videobyte.go
- imp_videoheroes.go
- imp_vidoomy.go
- imp_visiblemeasures.go
- imp_vox.go
- imp_vrtcal.go
- imp_xeworks.go
- imp_yahooAds.go
- imp_yahooAdvertising.go
- imp_yahoossp.go
- imp_yeahmobi.go
- imp_yieldlab.go
- imp_yieldmo.go
- imp_yieldone.go
- imp_zeroclickfraud.go
- multibid.go
- publisher.go
- regs.go
- request.go
- request_wrapper.go
- response.go
- site.go
- source.go
- supplyChain.go
- user.go