Let me be upfront: if you're reading this expecting a "should I switch from waterfall to header bidding?" article, you're about a decade late. The waterfall model is history. The vast majority of publishers who take monetization seriously moved to header bidding years ago.

So why write about waterfall vs header bidding at all?

Two reasons. First, because understanding the waterfall is foundational knowledge for anyone managing a publisher's programmatic ad stack. If you started in ad tech within the last five years, you may never have worked with a waterfall — and that's perfectly fine. But the waterfall's logic, its flaws, and the problems it created are embedded in the DNA of how header bidding works today. You can't fully understand why your current setup is configured the way it is without understanding what it replaced and why.

Second — and this is the part that made me sit down and write this — because I'm seeing a waterfall-like practice quietly creep back into modern header bidding setups. Not as a waterfall per se, but through a configuration setting that effectively reintroduces the same structural bias the waterfall was built on. Most publishers have no idea it's happening. More on that at the end.

A Brief History: From Waterfall to Header Bidding

If you've been in programmatic for a while, you lived through this transition. If you haven't, here's the context you need.

How Publishers Have Sold Ad Inventory: The Evolution

From sequential waterfalls to simultaneous auctions — and the subtle ways the old thinking is creeping back in.

~2009 – ~2015 The Waterfall Era Obsolete
Impressions were offered to demand sources one at a time in a fixed priority order. The first partner to meet the floor price won — regardless of whether a partner further down the chain would have paid more. Simple to manage, structurally inefficient.
📉 Why it died: Publishers realized the priority order was based on historical averages and commercial relationships — not on who would pay the most for any given impression. Revenue was being left on the table by design.
~2015 – ~2019 Early Header Bidding
The industry's response to the waterfall's limitations. Multiple demand sources could now bid simultaneously before the ad server made its decision. Client-side implementations became the standard, with Prebid.js emerging as the dominant open-source wrapper.
🔑 Key shift: Publishers gained bid-level transparency and real competition per impression for the first time. Revenue uplifts of 20–40% over waterfall were common during adoption.
~2019 – Present Modern Header Bidding Current standard
Header bidding is now table stakes for any serious publisher. Client-side, server-side, and hybrid setups coexist. Prebid.js defaults to random bidder call order to ensure fair auctions. Google's Open Bidding and header bidding trafficking in GAM360 further refined the ecosystem.
⚙️ Where we are now: The technology is mature. The differentiator is no longer having header bidding — it's how well it's configured, monitored, and optimized.
Emerging The "New Waterfall" — Fixed Bidder Sequences Watch out
Some managed wrapper providers are quietly setting bidderSequence: "fixed" in Prebid configurations — overriding the random default. This means bidders are called in a predetermined order, and the ones called first get a measurable advantage. Sound familiar?
⚠️ Why it matters: Prebid's own community confirmed that fixed call order creates bid-rate bias. When your managed partner sets the sequence — and puts their own demand first — they've effectively rebuilt a waterfall inside your header bidding. Most publishers don't even know this setting exists.
programmatic.expert · Gediminas Blažys

The programmatic selling model has evolved significantly — but some of the old problems are finding new ways to persist.

The Waterfall Model (~2009–2015)

The timeline above covers the broad strokes, but the waterfall's core flaw deserves a concrete example. A partner averaging €3.00 CPM might be willing to pay €6.00 for a specific impression targeting a high-value user segment. But if another partner averaging €3.50 sits higher in the chain and fills at their floor, that €6.00 bid never gets submitted. The publisher never even knows it existed.

🔍 Insider note: The priority order wasn't always based on pure performance data, either. In many setups I managed or audited, the order was influenced by commercial relationships — revenue share agreements, exclusivity commitments, or simply whoever pushed hardest for position #1. The publisher's yield was not always the primary consideration in how that chain was ordered.

Header Bidding Replaces the Waterfall (~2015 onward)

The revenue uplift wasn't from adding new demand or growing traffic — it came simply from letting existing buyers compete for the same inventory. If you want to understand the full mechanics of how header bidding works today — the wrapper, the timeout settings, the ad server integration — I've covered that in detail in my guide to what header bidding is. This article is about the broader picture: why the transition happened, what it fixed, and what to watch for now.

What the Waterfall Got Wrong (And Why It Matters Today)

The timeline above shows what happened. What matters now is why — because these same failure modes are the lens through which you should evaluate any setup that introduces non-random prioritization of demand:

Revenue was capped by queue position, not by demand

The highest-paying buyer might never get asked. A partner averaging €3.00 CPM could be willing to pay €6.00 for a specific impression — but if someone higher in the chain fills at their floor first, that €6.00 bid is never submitted. The publisher never even knows it existed.

Backward-looking averages masked real-time value

What a partner paid last month said nothing about what they'd pay for a specific impression today. The waterfall's priority order was set based on historical CPM averages — a static ranking applied to a dynamic marketplace.

Position trumped performance

Whoever secured the top slot — through data, relationships, or negotiation — kept it regardless of per-impression willingness to pay. The order reflected commercial dynamics, not auction economics.

The gap was invisible

Publishers couldn't see what partners further down the chain would have bid, because those partners never got to bid. There was no transparency into unrealized demand — no way to quantify the revenue left on the table.

These aren't abstract lessons. They're a checklist for evaluating any modern setup that deviates from the principle of simultaneous, equal-access competition for your inventory.

Where We Are Now: Header Bidding as Table Stakes

The differentiator today isn't having header bidding — it's the quality of the implementation: the right number of demand partners, properly configured timeouts, correct floor price strategies, and — critically — whether the auction is actually being run fairly. And sometimes, the cause of a revenue decline isn't even inside the ad stack.

Which brings me to the part that prompted this article.

The Part Nobody Is Talking About: The Waterfall Coming Back Inside Header Bidding

This is where it gets interesting — and where my experience managing ad stacks for publishers of all sizes has shown me something that rarely gets discussed publicly.

The whole point of header bidding is that all demand partners compete at the same time, on equal terms. To ensure this, Prebid.js — the wrapper that runs header bidding on most publisher sites — randomizes the order in which it calls demand partners. Every auction, the sequence shuffles. No bidder gets a structural advantage. This was a deliberate design choice by the Prebid community, because they recognized that call order influences outcomes.

But that randomization can be turned off. There's a single configuration setting — bidderSequence — that can switch from random to fixed. When it's set to fixed, bidders are called in the same predetermined order on every single auction. The first bidder in that order always gets called first.

Prebid's own contributors ran experiments and confirmed what you'd expect: fixed call order creates measurable bid-rate bias. The bidder called first is more likely to respond within the timeout window, particularly on heavier pages with multiple partners. Being first in line is an advantage — exactly the advantage the waterfall used to provide.

And here's what I'm seeing in practice: some managed wrapper providers are switching this setting to fixed and placing their own demand at the top of the order.

Random vs Fixed Bidder Sequence: What's Actually Happening

Prebid.js defaults to random bidder call order for a reason — it ensures a fair auction. But that default can be overridden with a single line of configuration. Here's what that looks like in practice.

✅ Default: Fair Auction
Random Bidder Sequence
Every auction shuffles the call order. No bidder gets a structural advantage.
// Prebid default (since v1.0) pbjs.setConfig({ bidderSequence: "random" });
? SSP Alpha Random
? SSP Beta Random
? SSP Gamma Random
Result: Each bidder has an equal chance of being called first on any given auction. The order shuffles every time. Fair competition, maximum revenue.
⚠️ Override: Hidden Bias
Fixed Bidder Sequence
Bidders are always called in the same order — defined by whoever configured the wrapper.
// Override set by managed partner pbjs.setConfig({ bidderSequence: "fixed" });
1 Partner's Own SSP Always first
2 SSP Alpha Fixed #2
3 SSP Beta Lower priority → Fixed #3
Result: The partner's own demand gets called first — every single time. Prebid's own experiments showed this creates measurable bid-rate bias. You're running a waterfall inside your header bidding.
🔍

The question to ask your partner

"Is our bidder call sequence set to random or fixed — and why?" If you want to verify independently, your tech team can run pbjs.getConfig('bidderSequence') in the browser console on your site. If it returns "fixed", someone changed the Prebid default — and the follow-up question is who benefits from the order they chose.

programmatic.expert · Gediminas Blažys

From my experience, this isn't rare. And it's almost never disclosed to the publisher. The managed partner configures the wrapper, the publisher sees "header bidding" in the reports, and assumes everything is competing fairly. But underneath, one demand source has a built-in advantage on every single auction — exactly the problem header bidding was designed to eliminate.

Why this happens

The incentives are straightforward. If a managed partner operates their own SSP — or has preferred commercial relationships with specific SSPs — giving those sources first-call advantage increases their win rate and revenue. The publisher's total revenue might still look acceptable because header bidding is still running, but it's not maximized. The auction is subtly tilted.

How to check your own setup

The diagram above includes the exact console command your tech team can run. If you don't have that technical access, the question to ask your managed partner is simple and direct: "Is our bidder call sequence set to random or fixed, and can you explain why?" If the answer is vague, evasive, or "we optimize the sequence for performance" without clear supporting data, you have your signal.

💡 Key takeaway: The waterfall died because it gave structural advantages to specific demand partners based on position rather than price. If your header bidding wrapper is running a fixed bidder sequence with your partner's demand at position #1, the same principle is at work — just wearing different clothes.

What to Take Away from All This

If you're relatively new to programmatic, here's the essential foundation: the waterfall was the old model, header bidding is the current standard, and the shift happened because simultaneous competition produces better outcomes than sequential access. That's not just monetization theory — it's basic auction economics, and it's been proven at scale across thousands of publishers over the past decade.

If you're experienced and managing a publisher's ad stack, here's the sharper takeaway: the waterfall is dead as a formal model, but waterfall thinking — giving certain demand preferential structural access — can creep back in through technical configuration choices that most publishers aren't monitoring.

The principle that made header bidding better than the waterfall is simple: every buyer should compete on equal terms for every impression, and the highest price should win. Any deviation from that principle — whether it's a 2012-era daisy chain or a 2026-era fixed bidder sequence — costs you money. The only question is whether you can see it happening.

Frequently Asked Questions

Is anyone still using a pure waterfall setup?

Very few publishers of any meaningful scale. You might still find waterfall remnants in smaller publishers who use a single ad network's managed solution, or in specific contexts like some mobile app mediation setups. But for web publishers, the waterfall as a primary selling mechanism is essentially gone. If you're working with a partner who tells you they're running a waterfall for your programmatic demand in 2026, that's a conversation worth having.

I started in programmatic after 2020 and never worked with a waterfall. Do I need to understand it?

Yes — not because you'll ever implement one, but because the waterfall's failures are the reason your current setup exists the way it does. Understanding why header bidding calls demand simultaneously, why random bidder ordering matters, and why bid-level transparency is valuable all trace back to the waterfall's specific shortcomings. It's foundational context.

How does the fixed bidder sequence actually affect my revenue?

The impact depends on how many bidders you're running and how close their bid prices are. In auctions where multiple SSPs are bidding within a narrow range, even a small timing advantage can determine the winner. Prebid's community documented measurable bid-rate differences in their experiments. The revenue impact compounds across millions of auctions — it's not dramatic on any single impression, but it's structural and ongoing.

My managed partner says they use fixed sequence "for performance optimization." Is that legitimate?

It can be — there are edge cases where controlling call order helps with specific latency problems. But the Prebid community deliberately set the default to random because fair auction mechanics produce better outcomes for publishers. If your partner overrides that, they should be able to show you concrete data on what latency issue they're solving and demonstrate that random ordering with proper timeout tuning wouldn't achieve the same result. "We optimize it for performance" without evidence isn't an explanation — it's a deflection.

How do I know if my header bidding setup is actually fair?

Three checks: (1) Confirm with your tech team or partner that the bidder sequence is set to random, not fixed. (2) Look at win-rate distribution across your demand partners — if one partner is winning disproportionately more than their bid prices would suggest, investigate why. (3) Check whether your managed partner's own demand source is included in the auction and whether it receives any structural advantages in call order or timeout treatment. If you can't get clear answers to these questions, you don't have full visibility into your own auction.

Understanding your setup isn't optional — it's the difference between earning what your inventory is worth and subsidizing someone else's margin. If you're not sure whether your header bidding is running a fair auction, I can help you find out. I offer a free diagnostic that looks at your configuration, your bid data, and your partner lineup with no vendor ties and no agenda other than transparency.

Book a free diagnostic call