How Bidder Selection Works

How the 8-step auction flow works — from slot discovery and consent checks through Prebid's 1,500ms bidding window, bid caching (60s TTL), and GAM's final rendering decision.

Not every demand partner bids on every ad slot on every page. Understanding how bidder selection works helps you interpret reporting data and identify optimisation opportunities.

The auction flow

  1. Slot discovery: The wrapper scans the page for data-advlume-slot divs.
  2. Config fetch: The site config is loaded from the CDN. It includes the list of active bidders for this site and any custom parameters.
  3. Ad unit registration: GPT registers each slot with GAM. Prebid registers each slot as an ad unit.
  4. Consent check: The CMP is queried for the visitor's consent string. Bidders that require consent (most do, under GDPR) are only included if a valid consent string is available.
  5. Prebid auction: pbjs.requestBids() is called with all active bidder configs. Each bidder makes a real-time bid request to their demand sources.
  6. Timeout: Bidders have 1,500ms to respond. Bids that arrive after the timeout are excluded from the current auction (but are cached for 60 seconds for potential use in the next refresh cycle).
  7. GAM targeting: Prebid sets price bucket targeting on each GPT slot and triggers GAM to render.
  8. GAM decision: GAM compares Prebid's header bid prices against AdX and any direct/guaranteed line items, and renders the highest-value option.

Why a bidder might not bid

Several factors cause a demand partner to return no bid on a given impression:

  • No matching audience: The visitor's profile doesn't match any active advertiser campaign.
  • Geo not covered: The partner doesn't have advertiser demand for the visitor's country.
  • Consent not granted: The visitor declined consent, and the bidder requires it to personalise their bid.
  • Price floor: The slot's configured floor price is above what the partner is willing to bid for this impression.
  • Timeout: The partner's servers were slow to respond and exceeded the 1,500ms timeout.
  • Domain block: The partner has independently blocked your domain due to IVT or policy violations.
  • Size mismatch: None of the slot's eligible sizes match what the partner's creative is targeting.

AdX and GAM demand

Google Ad Manager runs alongside Prebid, not within it. After Prebid sets its targeting, GAM runs its own real-time auction comparing Prebid prices against AdX demand. This means Google's demand competes at the rendering stage, not the bidding stage. The result is that even if all Prebid bidders return no bids, AdX may still fill the impression.

Bid caching

Prebid bids are cached for 60 seconds after the auction. If the wrapper's smart refresh fires for a slot within 60 seconds of the previous auction, it uses the cached bids rather than running a new auction. Bids older than 60 seconds are discarded — DSPs do not serve creatives for stale bids.

Viewing per-bidder performance

Use the Bidder breakdown in the Revenue Report to see which demand partners contributed most to your revenue. For live auction data, use the Live Dashboard to watch individual bids arrive in real time.

Further reading

Last updated 2 months ago