AntiAdBlock.Core

Revenue

10 min readBy the AntiAdBlock Core team

Header bidding vs waterfall: which one pays publishers more?

The waterfall sells your inventory in a queue and header bidding sells it in an auction, and the difference shows up as unsold impressions and prices below what someone would have paid. This is how each works, when the waterfall still makes sense, and the inventory that neither of them can sell.

What is the difference between header bidding and waterfall?

A waterfall offers each impression to demand sources in a fixed order, one after another, until someone takes it. Header bidding asks them all at the same time, before the ad server call, and lets them bid against each other.

The consequence is priced in every impression you sell. In a waterfall, a buyer sitting fifth in the queue never gets to bid on an impression that the third source accepted at a lower price, so you left money on the table without ever seeing it. In an auction, that buyer competes, and competition is what sets the price.

WaterfallHeader bidding
---------
How demand is calledSequentially, in a fixed orderSimultaneously, all bidders at once
How price is setFirst source that accepts your floorHighest bid wins
Unsold inventoryHigher, the queue can run outLower, more bidders per impression
LatencyLower per call, higher if the queue is longOne parallel round, capped by timeout
Setup complexityLowHigher, needs a wrapper and tuning

Why does the waterfall leave money on the table?

Because order is not price. A waterfall is built on historical average CPMs, so it assumes the source that paid best last month will pay best for this impression. That assumption breaks constantly: value depends on the individual user, the moment, the campaign in flight and the geography.

It also fails at the end of the queue. When no source accepts, the impression goes unsold or falls to backfill at a fraction of its worth, and that is exactly what a low fill rate is telling you.

When does header bidding not pay off?

It is not free, and three cases regularly disappoint:

  • Small inventory volumes. Bidders need scale to bother competing, so a low-traffic site can add partners and see the same prices with more latency.
  • Too many partners. Each one adds weight to the auction. Past a point you are paying latency, and therefore lost impressions, for bids that never win.
  • Slow pages. If your auction times out before bids arrive, you get the waterfall outcome with the header bidding overhead.

Latency is the tax, and it is worth measuring in revenue rather than in milliseconds: an impression that arrives after the reader scrolled past is worth nothing regardless of who won the auction.

How do you decide which to use?

Judge on revenue per thousand page views rather than on CPM, because CPM alone hides both fill and latency effects.

  1. Measure your current revenue per thousand page views, your fill rate and your page speed, for a full week.
  2. Add header bidding with a small number of partners, three to five, not everything available.
  3. Compare against the baseline, and watch the auction timeout as closely as the price.
  4. Add or remove partners one at a time, keeping only the ones that win often enough to justify their latency.

The healthiest setup for most independent publishers is a small header bidding stack plus the ad server's own demand, with the waterfall kept only as backfill.

The inventory neither auction ever sees

Both models answer the same question: who buys this impression. Neither can answer a different one, which is what happens when the impression never exists.

When a visitor's ad blocker stops your ad library from loading, no auction runs. No header bidding partner is asked, no waterfall step is attempted, and nothing appears as unsold, because there was never a request. Your fill rate stays healthy while that revenue is simply absent from the report.

This is why yield work can plateau for reasons that have nothing to do with yield. You can tune floors, add partners and shave latency, and still watch revenue per session drift down, because the share of page views that reach the auction at all is shrinking underneath you.

Where the bigger win usually is

Optimizing an auction improves the price of the impressions you sell. Recovering blocked page views increases how many impressions you have to sell, and it compounds with everything else: every recovered visit then flows through the same header bidding stack you just tuned.

The practical order is to measure the blocked share first, because it sizes both problems at once and it is the cheapest number to get. If it turns out to be small, spend your time on the auction. If it turns out to be a fifth of your traffic, that is where the money is.

Our script measures exactly that with a one-line install: detections, recoveries and recovered revenue per site, with network-level blocking separated out so the recoverable share is not overstated. What adblock costs publishers covers how to turn it into a business case, and fill rate and viewability explains why your current metrics hide the loss.

Frequently asked questions

Is header bidding better than waterfall?

For most publishers with meaningful traffic, yes, because simultaneous bidding sets the price by competition rather than by a fixed queue order. The exceptions are low-volume inventory, where bidders lack incentive to compete, and slow pages, where auction latency costs more than the price gain.

Does header bidding slow down my site?

It adds a parallel auction round before the ad server call, so the cost is bounded by your timeout. The real risk is partner count: each additional bidder adds weight, and an impression that renders after the reader scrolls past is worth nothing.

How many header bidding partners should I use?

Start with three to five and add one at a time, keeping only those that win often enough to justify the latency they add. More partners is not more revenue past the point where the auction slows down.

Does header bidding fix a low fill rate?

It usually improves it, because more bidders mean more auctions with at least one interested buyer. It cannot fix the part of a low fill rate caused by floors set above what your audience clears, and it does nothing for page views where the ad request never happens.

Do header bidding or waterfall help with ad-blocked traffic?

Neither. Both decide who buys an impression once the request exists. If a blocker prevented the ad library from loading, there is no request and no auction, and the loss never appears as unsold inventory.

Put the best adblock killer script to the test.

Free up to 10,000 detections per month. 60-second install.

Keep reading

Explore more