Header bidding is not a setup, it is an operation
The configuration you launched with was correct for the traffic you had that month. Two seasons later it is quietly costing you money.
Most header bidding implementations are treated as a project. There is a scoping document, an integration sprint, a QA week, a launch, and then a line in the revenue report that everyone agrees is better than before.
Then nothing happens to it for two years.
This is the single most common source of avoidable revenue loss we find when we audit a publisher’s stack, and it is worth being specific about why.
Your traffic is not the same traffic
A prebid configuration encodes assumptions: which bidders are worth calling, how long to wait for them, what a given placement is worth as a floor, how formats should be prioritised on each template.
Every one of those assumptions has a shelf life.
Your traffic mix shifts as search and social send you different visitors. Your device split moves. A demand partner that was strong in your market gets acquired and changes its bidding behaviour. Seasonality moves floors that were correct in March into pure loss by November. A new placement gets added by the editorial team and inherits a floor copied from something unrelated.
None of these produce an alert. They produce a slow, invisible drift between what your inventory is worth and what your configuration is prepared to accept for it.
Timeouts are a revenue decision
The auction timeout is where this shows up most sharply, because it is a straight trade: wait longer, collect more bids, lose more users who leave before the ad renders.
The correct value depends on your actual latency distribution, which depends on your users’ connection quality, which varies enormously across the markets we work in. A timeout tuned for a fibre-connected audience in São Paulo is not the right timeout for mobile traffic in a secondary Colombian city.
Publishers routinely run one global value because it was the default in the documentation. In a region this heterogeneous, that is an expensive convenience.
Floors are not a moral position
Floors get set high after a bad month and then never come down, or set low during a fill panic and never come back up. Either way they stop reflecting the market within a quarter.
The useful framing is that a floor is a bet about what the auction will bear, and bets need to be re-examined when conditions change. Dynamic floors help, but only if someone is watching what they do to fill rate and to the bidders who react badly to them.
What operating it actually looks like
The publishers who get durable value from header bidding do a short list of unremarkable things on a schedule:
- Review bidder performance monthly and remove the ones that are consuming latency without winning.
- Re-test timeouts against current latency data at least twice a year, per market where the audience differs.
- Adjust floors seasonally, in advance of the retail calendar rather than in reaction to it.
- Audit new placements before they go live, rather than discovering them in a report.
- Track revenue per session, not eCPM, so a fill-rate improvement that cannibalises price is visible for what it is.
None of this is difficult. It is simply somebody’s job, every month, forever — and at most publishers it is nobody’s job at all, which is precisely why the money is there to recover.