Header bidding gets described as “letting everyone bid at once”, which is close enough to be useless. The detail that decides your revenue is what happens in the 300 milliseconds between the browser parsing your header and the ad slot painting.
The sequence, step by step
- The wrapper loads asynchronously and reads your placement config: sizes, floors, allowed bidders.
- It fires parallel bid requests to every configured demand partner, client-side, server-side, or both.
- It waits for the timeout — typically 1000ms on desktop, 1200ms on mobile.
- The highest bid per placement is passed to the ad server as a key-value pair.
- The ad server runs its own auction between that bid, direct-sold line items and AdX.
- The winning creative renders.
Nothing here is exotic. But every stage has a failure mode that quietly costs you 5–15% of revenue, and none of them show up in an aggregated report.
Where the money leaks
Timeouts set by superstition
A 1000ms timeout is a default, not an answer. If a bidder consistently responds at 1100ms on 4G, you are paying the latency cost of the request and throwing away the bid. Pull your bid-response percentiles by device and geo, then set the timeout at roughly the 85th percentile of your responding bidders.
Bidder bloat
Every bidder adds a request, and browsers cap parallel connections per domain. Past roughly a dozen client-side bidders you are usually trading real revenue for the comfort of a long partner list. Rank bidders by revenue contribution per thousand requests and cut the tail, or move it server-side.
Floors that never move
A single static floor across all traffic means your US desktop impressions are underpriced and your Tier-3 mobile impressions go unfilled. Floors should vary by geo, device, placement and hour of day, and they should adapt automatically.
If you cannot see the bid-level log, you cannot diagnose any of this. That is the whole argument for auction transparency.
What good looks like
- Bid response rate above 60% for each retained bidder.
- Timeout rate below 15% on mobile.
- Header bidding win rate against AdX between 25% and 45% — much lower and your floors are wrong, much higher and your ad server setup is.
- No measurable regression in Largest Contentful Paint after the wrapper loads.
Those four numbers tell you more about your stack than any monthly RPM chart. If your current partner cannot show them to you, that is the finding.
Want us to run this check on your site?
Request a review