Bid Selection
After all eligible creatives are collected for an impression, the system selects the winning bid.
Selection algorithm
Filter eligible creatives: Only creatives that pass the delivery ratio check (
ratio > random) or have a CPC segment match are keptRandom shuffle: All eligible creatives are randomly shuffled (for fairness when prices are equal)
Sort by price: Creatives are sorted by effective CPM in descending order, with currency conversion applied
Select winner: The highest-priced creative wins the impression
Price priority
The effective CPM for a creative is determined by the first available value:
Segment CPM (from CPC segment match) -- highest priority
Split CPM (from the split's
cpmfield, if > 0)Line item rate (from
delivery.rate) -- base price
Currency conversion
All prices are converted to the bid request's target currency (from bidRequest.cur, default USD) before comparison. The conversion uses rates from the Prebid currency CDN, updated every hour.
If conversion fails for a creative (unknown currency), that creative is deprioritized in the sort.
Bid response
The winning creative is returned as an OpenRTB 2.5 bid response:
Bid ext fields
lineItemId
Always
The line item that won
splitId
When from a split
The split identifier
splitName
When from a split
The split name
segmentId
When CPC
The matched CPC segment identifier
No bid
If no creative passes all checks for any impression, the DSP returns HTTP 204 (No Content).
Last updated
Was this helpful?