Documentation
¶
Index ¶
- Constants
- func BuildAdapters(client *http.Client, cfg *config.Configuration, infos config.BidderInfos, ...) (map[openrtb_ext.BidderName]AdaptedBidder, []error)
- func ExtractReqExtBidderParamsMap(bidRequest *openrtb2.BidRequest) (map[string]json.RawMessage, error)
- func GetActiveBidders(infos config.BidderInfos) map[string]openrtb_ext.BidderName
- func GetDisabledBidderWarningMessages(infos config.BidderInfos) map[string]string
- func GetPriceBucket(bid openrtb2.Bid, targetingData targetData) string
- func GetValidBidders(aliases map[string]string) map[string]struct{}
- func IsDebugOverrideEnabled(debugHeader, configOverrideToken string) bool
- func WrapJSONInData(data []byte) []byte
- type AdaptedBidder
- type AuctionRequest
- type AuctionResponse
- type BidIDGenerator
- type BidderRequest
- type DebugData
- type DebugLog
- type Exchange
- type IdFetcher
- type ImpExtInfo
- type NonBidReason
- type TmaxAdjustmentsPreprocessed
Constants ¶
const (
DebugOverrideHeader string = "x-pbs-debug-override"
)
const (
Gzip string = "GZIP"
)
Possible values of compression types Prebid Server can support for bidder compression
const ImpIdReqBody = "Stored bid response for impression id: "
const MaxKeyLength = 20
Variables ¶
This section is empty.
Functions ¶
func BuildAdapters ¶
func BuildAdapters(client *http.Client, cfg *config.Configuration, infos config.BidderInfos, me metrics.MetricsEngine) (map[openrtb_ext.BidderName]AdaptedBidder, []error)
func ExtractReqExtBidderParamsMap ¶ added in v0.257.0
func ExtractReqExtBidderParamsMap(bidRequest *openrtb2.BidRequest) (map[string]json.RawMessage, error)
func GetActiveBidders ¶
func GetActiveBidders(infos config.BidderInfos) map[string]openrtb_ext.BidderName
GetActiveBidders returns a map of all active bidder names.
func GetDisabledBidderWarningMessages ¶ added in v0.268.0
func GetDisabledBidderWarningMessages(infos config.BidderInfos) map[string]string
func GetPriceBucket ¶
GetPriceBucket is the externally facing function for computing CPM buckets
func GetValidBidders ¶
func IsDebugOverrideEnabled ¶ added in v0.163.0
func WrapJSONInData ¶ added in v0.218.0
Types ¶
type AdaptedBidder ¶ added in v0.210.0
type AdaptedBidder interface {
// contains filtered or unexported methods
}
AdaptedBidder defines the contract needed to participate in an Auction within an Exchange.
This interface exists to help segregate core auction logic.
Any logic which can be done _within a single Seat_ goes inside one of these. Any logic which _requires responses from all Seats_ goes inside the Exchange.
This interface differs from adapters.Bidder to help minimize code duplication across the adapters.Bidder implementations.
func AdaptBidder ¶ added in v0.210.0
func AdaptBidder(bidder adapters.Bidder, client *http.Client, cfg *config.Configuration, me metrics.MetricsEngine, name openrtb_ext.BidderName, debugInfo *config.DebugInfo, endpointCompression string) AdaptedBidder
AdaptBidder converts an adapters.Bidder into an exchange.AdaptedBidder.
The name refers to the "Adapter" architecture pattern, and should not be confused with a Prebid "Adapter" (which is being phased out and replaced by Bidder for OpenRTB auctions)
type AuctionRequest ¶
type AuctionRequest struct { BidRequestWrapper *openrtb_ext.RequestWrapper ResolvedBidRequest json.RawMessage Account config.Account UserSyncs IdFetcher RequestType metrics.RequestType StartTime time.Time Warnings []error GlobalPrivacyControlHeader string ImpExtInfoMap map[string]ImpExtInfo TCF2Config gdpr.TCF2ConfigReader Activities privacy.ActivityControl // LegacyLabels is included here for temporary compatibility with cleanOpenRTBRequests // in HoldAuction until we get to factoring it away. Do not use for anything new. LegacyLabels metrics.Labels FirstPartyData map[openrtb_ext.BidderName]*firstpartydata.ResolvedFirstPartyData // map of imp id to stored response StoredAuctionResponses stored_responses.ImpsWithBidResponses // map of imp id to bidder to stored response StoredBidResponses stored_responses.ImpBidderStoredResp BidderImpReplaceImpID stored_responses.BidderImpReplaceImpID PubID string HookExecutor hookexecution.StageExecutor QueryParams url.Values BidderResponseStartTime time.Time TmaxAdjustments *TmaxAdjustmentsPreprocessed }
AuctionRequest holds the bid request for the auction and all other information needed to process that request
type AuctionResponse ¶ added in v0.259.0
type AuctionResponse struct { *openrtb2.BidResponse ExtBidResponse *openrtb_ext.ExtBidResponse }
AuctionResponse contains OpenRTB Bid Response object and its extension (un-marshalled) object
func (*AuctionResponse) GetSeatNonBid ¶ added in v0.259.0
func (ar *AuctionResponse) GetSeatNonBid() []openrtb_ext.SeatNonBid
GetSeatNonBid returns array of seat non-bid if present. nil otherwise
type BidIDGenerator ¶
type BidderRequest ¶
type BidderRequest struct { BidRequest *openrtb2.BidRequest BidderName openrtb_ext.BidderName BidderCoreName openrtb_ext.BidderName BidderLabels metrics.AdapterLabels BidderStoredResponses map[string]json.RawMessage ImpReplaceImpId map[string]bool }
BidderRequest holds the bidder specific request and all other information needed to process that bidder request.
type DebugLog ¶
type DebugLog struct { Enabled bool CacheType prebid_cache_client.PayloadType Data DebugData TTL int64 CacheKey string CacheString string Regexp *regexp.Regexp DebugOverride bool //little optimization, it stores value of debugLog.Enabled || debugLog.DebugOverride DebugEnabledOrOverridden bool }
func (*DebugLog) BuildCacheString ¶
func (d *DebugLog) BuildCacheString()
func (*DebugLog) PutDebugLogError ¶
type Exchange ¶
type Exchange interface { // HoldAuction executes an OpenRTB v2.5 Auction. HoldAuction(ctx context.Context, r *AuctionRequest, debugLog *DebugLog) (*AuctionResponse, error) }
Exchange runs Auctions. Implementations must be threadsafe, and will be shared across many goroutines.
func NewExchange ¶
func NewExchange(adapters map[openrtb_ext.BidderName]AdaptedBidder, cache prebid_cache_client.Client, cfg *config.Configuration, syncersByBidder map[string]usersync.Syncer, metricsEngine metrics.MetricsEngine, infos config.BidderInfos, gdprPermsBuilder gdpr.PermissionsBuilder, currencyConverter *currency.RateConverter, categoriesFetcher stored_requests.CategoryFetcher, adsCertSigner adscert.Signer, macroReplacer macros.Replacer) Exchange
type IdFetcher ¶
type IdFetcher interface { GetUID(key string) (uid string, exists bool, notExpired bool) HasAnyLiveSyncs() bool }
IdFetcher can find the user's ID for a specific Bidder.
type ImpExtInfo ¶ added in v0.172.0
type ImpExtInfo struct { EchoVideoAttrs bool StoredImp []byte Passthrough json.RawMessage }
type NonBidReason ¶ added in v0.259.0
type NonBidReason int
SeatNonBid list the reasons why bid was not resulted in positive bid reason could be either No bid, Error, Request rejection or Response rejection Reference: https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/extensions/community_extensions/seat-non-bid.md
const ( NoBidUnknownError NonBidReason = 0 // No Bid - General ResponseRejectedCategoryMappingInvalid NonBidReason = 303 // Response Rejected - Category Mapping Invalid )
func (NonBidReason) Ptr ¶ added in v0.259.0
func (n NonBidReason) Ptr() *NonBidReason
Ptr returns pointer to own value.
func (*NonBidReason) Val ¶ added in v0.259.0
func (n *NonBidReason) Val() NonBidReason
Val safely dereferences pointer, returning default value (NoBidUnknownError) for nil.
type TmaxAdjustmentsPreprocessed ¶ added in v0.266.0
type TmaxAdjustmentsPreprocessed struct { BidderNetworkLatencyBuffer uint PBSResponsePreparationDuration uint BidderResponseDurationMin uint IsEnforced bool }
func ProcessTMaxAdjustments ¶ added in v0.266.0
func ProcessTMaxAdjustments(adjustmentsConfig config.TmaxAdjustments) *TmaxAdjustmentsPreprocessed