What is header bidding, and what does it change for buyers?
Part of Supply path transparency

The short answer
Header bidding is a way for publishers to collect bids from several SSPs and exchanges at the same time, before the publisher's ad server is called. Code on the page, in an app or in a video player gathers the bids and passes them to the ad server, which weighs them against direct campaigns and serves the winner.
Key takeaways
- Header bidding asks many sellers' platforms for a price at once, where the older waterfall asked them one at a time.
- A wrapper is the code that calls the bidders, waits for a set time, and hands the bids to the ad server as key values.
- Because every SSP in the wrapper builds its own bid request, one page view can reach the same buyer several times.
- An exchange's win in a header auction is provisional, since the ad server makes the final decision.
- For buyers the practical result is more duplicate paths to the same impression, which is what supply path review sorts out.
What is header bidding?
Definition
- Header bidding
- A setup in which code controlled by the publisher requests bids from several demand partners at once and passes the results to the publisher's ad server, which makes the final choice for each ad slot.
Google's Ad Manager team described the technique in an April 27, 2022 post (opens in a new tab) as one that "runs an auction among multiple ad exchanges on a user's device before calling the publisher's ad server." The name comes from the first versions, which placed the code in the header of a web page. Prebid.org's introduction (opens in a new tab), the documentation of the open source header bidding project, now calls the term outdated, because bidding also happens in video players, mobile apps and on servers, and suggests pre-ad server bidding as more accurate.
The point of the technique is timing. Each demand partner in the wrapper sees the impression before the ad server decides, and any that bids returns a price for that impression rather than an average. The ad server then compares those prices with the publisher's direct campaigns and its own connected demand.
How does a header bidding wrapper work?
A wrapper is the piece of code that manages the bidders. The publisher chooses which SSPs and exchanges to include, sets how long to wait, and decides how the bids reach the ad server. Prebid.org's simplified sequence for display ads on a website runs in six steps.
Header bidding on one page load, following Prebid.org's sequence
- Start loading the page. The wrapper code runs while the content loads, and ad calls wait for a set period of time.
- Call the demand partners. The wrapper asks each configured SSP or exchange for a bid on each ad unit.
- Collect the responses. Each partner returns a bid or no bid; bids that arrive after the time limit are ignored.
- Call the ad server with the bids attached. The bids travel as key values, such as a bidder code and a price bucket.
- Let the ad server weigh everything. Line items set up to match those key values compete with direct campaigns and other demand.
- Serve the winner. The ad server displays the winning ad for each unit, which may or may not be one of the header bids.
The line item step is where much of the work sits. In its 2022 post Google said the classic setup required publishers to set up and manage hundreds to thousands of line items and ad creatives, one for each price bucket and bidder. Google Ad Manager Help now describes header bidding trafficking (opens in a new tab), available only in Google Ad Manager 360, which aims at more granular bidding using true bid values instead of Price Priority line items.
Why did publishers move from waterfalls to header bidding?
The setup header bidding replaced is the waterfall, also called a daisy chain. The ad server offered an impression to one demand partner at a time, in a fixed priority order the publisher set in advance, and moved down the list only when a partner passed. Google Ad Manager Help still describes the same pattern for app mediation, which uses a list of yield partners called individually, in sequence (opens in a new tab). The weakness is that a partner lower in the order might have paid more for this particular impression and was never asked.
| Question | Waterfall (sequential) | Header bidding (simultaneous) |
|---|---|---|
| How is each partner asked? | One at a time, in a fixed priority order | All at once, within a time limit |
| What sets the order or winner? | A priority order set in advance | The actual bids for this impression |
| Setup and upkeep | Simple to set up, but the order needs constant tuning | Needs wrapper code, line items or a trafficking feature, and timeout tuning |
| Page speed | Each pass adds a round trip, so long chains are slow | Ad calls wait for the time limit, so many bidders can delay ads |
| Visibility for the publisher | Little view of what lower partners would have paid | A price from each partner that bids on the impression |
| Effect on buyers | Fewer duplicate requests, but buyers late in the chain see leftovers | Bidders see the impression early, sometimes through several partners |
Waterfalls have not disappeared, and header bidding has its own costs. Moving the bidder calls from the page to a server reduces the load on the reader's device but changes what the buyer can see, a trade off covered separately from this page.
How does header bidding create duplicate bid requests?
Each SSP in a wrapper builds its own OpenRTB bid request for the same ad slot and sends it to its own connected buyers. A demand side platform connected to five of those SSPs can receive five requests for one impression, each with a different seller account, floor and fee. If a reseller in the wrapper also forwards the impression through another exchange, the copies multiply again.
OpenRTB was extended to describe this. The OpenRTB 2.6 specification (opens in a new tab) lists header bidding support among the additions in version 2.5 and defines a Source object for cases where the exchange does not control the final decision. Its fd field marks who decides, 0 for the exchange and 1 for an upstream source, and its tid field is a transaction ID that "must be common across all participants in this bid request (e.g., potentially multiple exchanges)." A shared tid lets a buyer recognize copies of one opportunity.
What does header bidding change for a buyer?
Header bidding was built for publishers, but it reshapes what arrives at the buyer's platform. The changes are practical: more requests per impression, wins that are not final, and longer lists of SSPs in each site's ads.txt file.
What a buyer should account for on header bidding inventory
- The same impression can arrive through several SSPs, so bids should be steered to the preferred path for each site.
- A request with fd set to 1 means the exchange's win is provisional and the ad server can still choose another ad.
- Slow responses lose, because the wrapper ignores bids that arrive after its time limit.
- A site's ads.txt may list a header wrapper as an advertising system, since the specification names header wrappers alongside SSPs and exchanges.
- Bid requests sampled from live traffic show which SSPs actually carry the site, which the files alone cannot.
None of this makes header bidding inventory worse. It means the buyer's choice is no longer only which site to buy but which route to buy it through. Choosing a direct account on a preferred SSP and leaving the extra copies alone is the core of supply path optimization, and the SSP guide explains where each route's seller account can be confirmed.
What does a header bidding review look like on a real plan?
Fictional example
A dental clinic group in Chicago and Indianapolis
A fictional group of family dental clinics in the Chicago area and Indianapolis wants display ads beside local news, parenting and health advice sites read in Illinois and Indiana, in English. The trading desk has an approved list of about forty sites and buys through one demand side platform.
Looking at a sample of bid requests, the desk sees that several local news sites arrive through four or five SSPs each, and that the same page and slot show up within moments through different seller accounts. The tid values match on some copies and are missing on others.
For each site the planner picks one preferred route: the SSP whose sellers.json lists the publisher's own account as PUBLISHER and that the platform is connected to. The desk targets those routes for the list and keeps a second route for sites where the preferred SSP lacks a format. Sites with only reseller routes stay on the plan with a note, rather than being cut.
Can PlacementGraph tell whether a site uses header bidding?
Frequently asked questions
Is header bidding only used on websites?
No. Prebid.org's introduction notes that bidding now also happens in video players, mobile apps and on servers, which is why it suggests the term pre-ad server bidding. The mechanics differ by environment, but the idea is the same: collect bids from several partners before the ad server makes its final choice.
Does the highest header bid always win the impression?
No. The header bids are passed to the publisher's ad server, which weighs them against direct campaigns and other demand. Prebid.org's sequence ends with the ad server displaying a winner that may or may not be one of the header bids, and publishers can protect direct line items from being bypassed.
Can a buyer tell that an impression came through header bidding?
Sometimes. In OpenRTB 2.6 a Source object with fd set to 1 says an upstream source, such as a header bidding wrapper, makes the final decision. The supply chain object can also list the systems the request passed through. Neither field is mandatory, so missing values do not prove that no wrapper was involved.
Who runs the header bidding wrapper on a site?
The publisher, or a monetization partner working for it, chooses the wrapper, the bidders and the time limit. Some publishers run open source code themselves, while others hand ad operations to a partner. When a wrapper operator sells the inventory itself, it should appear in the site's ads.txt like any other advertising system.
Sources
- Introduction to Header Bidding (opens in a new tab)Prebid.org documentation
- Improved header bidding support in Google Ad Manager (opens in a new tab)Google, April 27, 2022
- Header bidding trafficking with the Prebid wrapper (opens in a new tab)Google Ad Manager Help
- Introduction to Open Bidding (opens in a new tab)Google Ad Manager Help
- OpenRTB 2.6 specification (opens in a new tab)IAB Tech Lab, OpenRTB 2.x repository
- pbjs.setConfig reference (opens in a new tab)Prebid.org documentation
- ads.txt Specification Version 1.1 (opens in a new tab)IAB Tech Lab, Supply Chain Validation repository
Researched and written by PlacementGraph Research. Read how we research, source and update these pages. Corrections: diana@placementgraph.com.