RTB Architecture
Header Bidding Explained: What It Is, How Wrappers Work, and Prebid Client Side vs Server Side
Published · Last updated
Next scheduled review:
Header bidding is a way for a website or app to ask many ad exchanges for a price at the same time, before its ad server picks the winning ad. It replaced the waterfall, which asked exchanges one at a time. A wrapper such as Prebid.js runs the auction in the browser, on a server, or in both.
Contents
Key facts
- Prebid is the shared toolkit. AppNexus (now Microsoft) created Prebid.js, which launched in 2015, and Prebid.org was formed in September 2017 to run it as an independent project (Prebid.org, accessed 9 November 2026; Prebid introduction).
- It ships often. Prebid.js 11.47.0 came out on 4 November 2026, the eighth release since 7 October 2026. Version 11.0 arrived on 12 March 2026 (Prebid.js releases, GitHub).
- Prebid Server has two builds. The Go version reached 4.11.1 on 2 November 2026 and the Java version reached 4.5.0 on 4 November 2026 (Prebid Server Go, GitHub; Prebid Server Java, GitHub).
- The bidder list is long. We counted more than 530 bid adapter files in the Prebid.js repository on 9 November 2026 (Prebid.js modules, GitHub). Prebid says it supports more than 300 demand partners (Prebid introduction).
- The server leg gets a slice of the time. Prebid advises a server-side timeout of 50% to 75% of the browser auction timeout; the default is 75% (Prebid timeouts guide, accessed 9 November 2026).
- Google is being ordered into Prebid. A proposed final judgment filed on 2 October 2026 requires an adapter that lets Prebid call Google's ad exchange, AdX. We found no report that the court had entered it by 9 November 2026 (PPC Land, October 2026).
Definition
Header bidding: a selling method in which a publisher's page, app or server asks several demand partners for bids at once and passes the best to the ad server, which weighs them against direct-sold campaigns.
The name is older than the practice. The first scripts sat in the <head> section of a web page, which is where "header" comes from. Today the same auction runs in video players, mobile apps and servers, and Prebid's own guide suggests "pre-ad server bidding" as the more accurate label (Prebid, accessed 9 November 2026). This page explains the mechanism. For the cost and identity trade-offs, see our header bidding vs server-side bidding comparison.
Key terms on this page: header bidding · Prebid.js · Prebid Server · supply-side platform (SSP) · ad exchange · ad server · timeout · tmax · cookie sync · floor price
Header bidding vs the waterfall: what changed
Before header bidding, most publishers sold unsold ad space through a waterfall. The ad server called one exchange or network, waited for its answer, and moved down the list if it passed. The order came from ad server priorities and past average prices. It did not reflect what each buyer would pay for this one impression.
Magnite, the largest independent supply-side platform (SSP) by its own description, sums up the change in its annual report. Impressions that used to go to demand sources in a sequence set by the ad server became open to all of them at once (Magnite 10-K, FY2025). That is the whole idea of header bidding in one sentence.
The waterfall had two costs. A buyer lower in the chain never got a chance to bid, even when it valued the impression most. And each step added a round trip to a server, so a long chain slowed the page. Header bidding fixed the first problem by asking everyone at once. It turned the second problem into a setting called the timeout, covered below.
A simple example shows the gap. The numbers in this table are made up to show the mechanism; they are not market data.
5 of 5 rows
Who is asked | Exchange A first, then B, then C | A, B and C at the same moment |
Floor price | $1.50 | $1.50 |
Bids received (hypothetical) | A bids $1.80, clears the floor and wins; B and C are never asked | A bids $1.80, B bids $2.40, C bids $2.10 |
What reaches the ad server | A at $1.80 | B at $2.40, compared with direct campaigns |
Time cost | One call per step, in sequence | One parallel round, capped by a timeout |
Who is asked
- Waterfall
Exchange A first, then B, then C
- Header bidding
A, B and C at the same moment
Floor price
- Waterfall
$1.50
- Header bidding
$1.50
Bids received (hypothetical)
- Waterfall
A bids $1.80, clears the floor and wins; B and C are never asked
- Header bidding
A bids $1.80, B bids $2.40, C bids $2.10
What reaches the ad server
- Waterfall
A at $1.80
- Header bidding
B at $2.40, compared with direct campaigns
Time cost
- Waterfall
One call per step, in sequence
- Header bidding
One parallel round, capped by a timeout
Table by AdSovereign, CC BY 4.0.
Header bidding spread in 2014 and 2015, according to the case timeline in coverage of the US v. Google liability ruling (PPC Land, 17 April 2025). The court later found that Google used auction rules it called First Look, Last Look and Unified Pricing Rules to blunt header bidding's effect (AdExchanger, September 2026). Magnite's annual report calls header bidding a counterweight to Google's hold on display ad serving, which is a company view, not a finding (Magnite 10-K, FY2025).
How a header bidding wrapper works, step by step
A header bidding wrapper is the code that manages the auction. It decides which bidders to call, for which ad slots, how long to wait and what to send to the ad server. In the early days each exchange shipped its own tag, and publishers stitched them together by hand. Prebid calls Prebid.js the most widely used wrapper (Prebid introduction, accessed 9 November 2026) and notes that many managed services also use it (Prebid, accessed 9 November 2026).
Here is one auction on a news article page, in seven steps:
- The page loads the wrapper and its settings. The publisher's file lists the ad units, their sizes, the bidders, any price floors and the auction timeout.
- Pre-auction modules run. A consent management platform (CMP) reads the reader's privacy choices, and identity and real-time data modules add signals. Prebid warns that slow pre-auction modules eat into the time left for bids (Prebid timeouts guide).
- Bid requests go out in parallel. Each bid adapter turns the request into the format its exchange expects, often OpenRTB, and sends it at the same time as the others.
- Bidders answer or time out. Bids that arrive after the timeout are dropped from this auction.
- The wrapper passes the best bids to the ad server. It attaches them as key-value pairs on the ad server call.
- The ad server decides. Line items set up by the ad operations team match those key-values, so header bids compete with direct-sold campaigns and with the ad server's own exchange (Prebid, accessed 9 November 2026).
- The winning ad renders. If a header bid wins, the ad server returns a small creative that tells the wrapper to show that bidder's ad.
The ad server step is the part people miss. Header bidding does not replace the ad server in the most common setup. It feeds the ad server better prices, and the ad server still protects sponsorships and guaranteed deals that the publisher has sold directly.
A safety net sits outside the wrapper. Prebid recommends a separate failsafe timer that calls the ad server anyway if something breaks, set well above the auction timeout (Prebid timeouts guide). Without it, one broken bidder can leave a slot blank.
The ad server can also become just another bidder. Prebid's documentation now describes a second setup in which Prebid picks the winner itself, and the publisher's ad server bids into the Prebid auction like any other source (Prebid introduction). Keep that model in mind for the Google remedies section below.
Diagram by AdSovereign, CC BY 4.0.
Prebid.js and Prebid Server: the two halves of Prebid
Prebid is a suite, not one product. Prebid.js is a JavaScript library that runs in the browser. Prebid Server runs the same kind of auction on a server, and Prebid Mobile is the software development kit (SDK) that apps use to talk to it. All of them are open source under the Apache 2.0 license and run by Prebid.org, which its dues-paying members fund (Prebid.org, accessed 9 November 2026).
Prebid.js is modular. Each exchange or SSP writes a bid adapter, and the publisher builds a file with only the adapters it needs. Other modules handle analytics, user IDs, price floors and currency. We counted 537 bid adapter files in the repository on 9 November 2026 (Prebid.js modules, GitHub). Most sites use a small subset: Prebid says client-side setups typically call 5 to 15 demand partners (Prebid introduction).
Prebid Server exists for places where a browser auction does not work. Apps, Accelerated Mobile Pages (AMP), connected TV (CTV), digital out-of-home screens and audio players have no web page header to run code in (Prebid Server overview, accessed 9 November 2026). Websites use it too, to cut the number of calls a browser makes. Unlike Prebid.js, it needs hosting. Prebid warns that installing it is much harder than adding Prebid.js and that the open-source project ships no configuration tools.
The project moves fast, so version numbers age quickly. The table records the versions we found on GitHub at our last check.
3 of 3 rows
Prebid.js | JavaScript | 11.47.0 (4 November 2026) | 11.0.0 (12 March 2026) | |
Prebid Server (PBS-Go) | Go | 4.11.1 (2 November 2026) | 4.0.0 (6 March 2026) | |
Prebid Server (PBS-Java) | Java | 4.5.0 (4 November 2026) | 4.0.0 (6 August 2026) |
Prebid.js
- Language
JavaScript
- Latest release (date)
11.47.0 (4 November 2026)
- Latest major version (date)
11.0.0 (12 March 2026)
- Source
Prebid Server (PBS-Go)
- Language
Go
- Latest release (date)
4.11.1 (2 November 2026)
- Latest major version (date)
4.0.0 (6 March 2026)
- Source
Prebid Server (PBS-Java)
- Language
Java
- Latest release (date)
4.5.0 (4 November 2026)
- Latest major version (date)
4.0.0 (6 August 2026)
- Source
Table by AdSovereign, CC BY 4.0.
Major versions of Prebid.js now land about once a year: 10.0 on 1 July 2025 and 11.0 on 12 March 2026 (Prebid.js 10.0.0, GitHub). Each major release removes old features, so read the release notes before you upgrade. Our Prebid.js guide covers events, adapters, releases and debugging.
You can run Prebid Server yourself or rent it. Several Prebid.org members sell hosted Prebid Server with servers around the world and tools for stored requests (Prebid Server overview). PubMatic, for example, lists OpenWrap as its header bidding product in its annual report (PubMatic 10-K, FY2025). Our Prebid Server self-hosting guide covers the build path. The profiles of PubMatic OpenWrap and Magnite Prebid Server cover the rent path.
Prebid client side vs server side
Client side means the browser calls each bidder directly. Each bidder can read its own cookies, so it recognises more users and often bids higher. The cost is more network requests and more script on the page. That cost is highest on slow phones and busy pages.
Server side means the browser makes one call to Prebid Server, which calls the bidders from a data centre. Prebid's own example: move five bidders to the server and the browser sends one request instead of five (Prebid introduction). The catch is identity. The server cannot read each bidder's cookies, so it relies on user matching, also called cookie sync, to tell bidders who the reader is. Our explainer on Prebid Server cookie sync and user matching shows how that works.
Most large publishers mix the two. They keep their best-paying bidders in the browser and move the long tail to the server. Prebid does not prescribe a split. It recommends A/B tests of the number of bidders, the timeout values and the client-versus-server mix on each site (Prebid introduction).
6 of 6 rows
Where the auction runs | Reader's browser | Publisher or vendor data centre | Both, merged in Prebid.js |
Browser requests | One per bidder | One to Prebid Server | One per browser bidder, plus one |
How bidders recognise the reader | Each reads its own cookies | Cookie sync and shared IDs | Strong for browser bidders |
Works in apps and CTV | No | Yes | Web pages only |
Who runs it | Publisher's web team | Publisher or a hosting vendor | Both |
Typical use | Top bidders on web pages | Apps, AMP, CTV, long-tail web bidders | Large web publishers |
Where the auction runs
- Client side (Prebid.js)
Reader's browser
- Server side (Prebid Server)
Publisher or vendor data centre
- Hybrid
Both, merged in Prebid.js
Browser requests
- Client side (Prebid.js)
One per bidder
- Server side (Prebid Server)
One to Prebid Server
- Hybrid
One per browser bidder, plus one
How bidders recognise the reader
- Client side (Prebid.js)
Each reads its own cookies
- Server side (Prebid Server)
Cookie sync and shared IDs
- Hybrid
Strong for browser bidders
Works in apps and CTV
- Client side (Prebid.js)
No
- Server side (Prebid Server)
Yes
- Hybrid
Web pages only
Who runs it
- Client side (Prebid.js)
Publisher's web team
- Server side (Prebid Server)
Publisher or a hosting vendor
- Hybrid
Both
Typical use
- Client side (Prebid.js)
Top bidders on web pages
- Server side (Prebid Server)
Apps, AMP, CTV, long-tail web bidders
- Hybrid
Large web publishers
Table by AdSovereign, CC BY 4.0.
Sources for the table: Prebid introduction and Prebid Server overview, both accessed 9 November 2026.
Amazon TAM and UAM: Amazon's server-side header bidding
Amazon Publisher Services (APS) runs two header bidding marketplaces. Both work server to server: the page or app makes one call, and Amazon's servers collect bids from Amazon and from other buyers. Both pay the publisher in one combined payment, which APS says arrives within 60 days (APS Transparent Ad Marketplace, accessed 9 November 2026).
Transparent Ad Marketplace (TAM) is the version in which the publisher manages its own buyer relationships. The only technical need is the APS multi-slot tag, but the publisher signs a contract with each demand partner it wants. APS says more than 50 buyers work with TAM (company claim) (APS TAM, accessed 9 November 2026). It also says publishers get auction-level records that show every bidder, bid and winner.
Unified Ad Marketplace (UAM) is invitation-only and aimed at web publishers that use Google Ad Manager. Amazon brings the buyers. APS names OpenX, PubMatic, Magnite and Index Exchange among them (APS Unified Ad Marketplace, accessed 9 November 2026). UAM runs next to Prebid rather than inside it: APS asks publishers to place the UAM script outside any other wrapper, and it sets up the ad server line items for them.
A news site can run both. Prebid.js calls eight browser bidders, UAM collects Amazon's bids in parallel, and both sets of prices reach Google Ad Manager as key-values. The ad server then compares them with direct campaigns and with AdX.
Google Open Bidding: server-side bidding inside the ad server
Open Bidding is Google's own form of server-side bidding. Google Ad Manager calls third-party exchanges, which Google calls yield partners, from its own servers during its unified auction. The publisher adds no new code, because the existing Google tag does the work (Google Ad Manager Help, accessed 9 November 2026).
The key difference is where the auction lives. In header bidding, bids are gathered before Google Ad Manager is called. In Open Bidding, Google Ad Manager runs the whole auction and compares yield partner bids with the AdX bid and direct line items in one step (Google Ad Manager Help). Google pays the publisher for Open Bidding impressions net of Google's revenue share, under an addendum to the Ad Exchange agreement (Google Ad Manager Help). Those help pages do not state the size of the share.
5 of 5 rows
Where the auction runs | Browser or Prebid Server, before the ad server | Amazon's servers, before the ad server | Inside Google Ad Manager |
Code on the page | Prebid.js and its adapters | APS tag | Existing Google tag only |
Contracts | Publisher with each SSP | TAM: publisher with each buyer; UAM: through Amazon | Publisher with each exchange, plus a Google addendum |
Who pays the publisher | Each SSP | Amazon, one payment | Google, net of its revenue share |
Bid-level visibility | Full, in the publisher's own analytics | Auction-level records (TAM) | Google Ad Manager reporting |
Where the auction runs
- Prebid (browser or server)
Browser or Prebid Server, before the ad server
- Amazon TAM and UAM
Amazon's servers, before the ad server
- Google Open Bidding
Inside Google Ad Manager
Code on the page
- Prebid (browser or server)
Prebid.js and its adapters
- Amazon TAM and UAM
APS tag
- Google Open Bidding
Existing Google tag only
Contracts
- Prebid (browser or server)
Publisher with each SSP
- Amazon TAM and UAM
TAM: publisher with each buyer; UAM: through Amazon
- Google Open Bidding
Publisher with each exchange, plus a Google addendum
Who pays the publisher
- Prebid (browser or server)
Each SSP
- Amazon TAM and UAM
Amazon, one payment
- Google Open Bidding
Google, net of its revenue share
Bid-level visibility
- Prebid (browser or server)
Full, in the publisher's own analytics
- Amazon TAM and UAM
Auction-level records (TAM)
- Google Open Bidding
Google Ad Manager reporting
Table by AdSovereign, CC BY 4.0.
Sources for the table: Prebid introduction, APS pages and Google Ad Manager Help, accessed 9 November 2026. The full side-by-side, with fees and data access, is in Prebid vs Open Bidding vs Amazon TAM.
Timeouts and latency: how long to wait for bids
Every header bidding setup trades revenue against speed. Wait too briefly and good bids miss the auction. Wait too long and the ad server call slips, readers scroll away and impressions are lost. Prebid lists the factors to weigh: time on page, direct sell-through, the value of each channel and readers' network delay (Prebid timeouts guide, accessed 9 November 2026).
Prebid uses four timers. The failsafe timeout fires the ad server call if all else fails. The auction timeout caps the whole Prebid auction. The server-side timeout, set in s2sConfig.timeout, must be shorter, so that Prebid Server's answer gets back in time. It travels to bidders as the OpenRTB tmax field, and Prebid Server shaves a safety buffer off it before replying (Prebid timeouts guide).
Here is a worked budget for a publisher that picks a one-second auction.
4 of 4 rows
Auction timeout | 1,000 ms (publisher's choice) | Balance revenue against page speed |
Server-side timeout | 750 ms | 50% to 75% of the auction timeout; default 75% (Prebid) |
tmax sent to server-side bidders | Below 750 ms | Prebid Server trims a buffer for the return trip |
Failsafe timeout | Well above 1,000 ms | Much larger than the auction timeout |
Auction timeout
- Example value
1,000 ms (publisher's choice)
- Rule in Prebid's guide
Balance revenue against page speed
Server-side timeout
- Example value
750 ms
- Rule in Prebid's guide
50% to 75% of the auction timeout; default 75% (Prebid)
tmax sent to server-side bidders
- Example value
Below 750 ms
- Rule in Prebid's guide
Prebid Server trims a buffer for the return trip
Failsafe timeout
- Example value
Well above 1,000 ms
- Rule in Prebid's guide
Much larger than the auction timeout
Table by AdSovereign, CC BY 4.0.
When timeouts climb, Prebid suggests four checks (Prebid timeouts guide). Compare where your readers are with where each bidder's servers are. Measure how long consent and ID modules run before bids go out. Look for heavy scripts that block the browser. And make sure user syncs do not fire before the first auction. Our guide to QPS, latency and bid performance covers the same trade-off from the server side.
What changes with the Google remedies
On 17 April 2025 a US federal court ruled that Google had monopolized the publisher ad server and ad exchange markets for open-web display (PPC Land, 17 April 2025). Judge Leonie Brinkema issued her remedies order on 2 September 2026 and unsealed the 106-page opinion on 16 September 2026. She declined to order a sale of AdX. Instead she chose behavioural remedies, watched by a technical monitor for six years (AdExchanger, September 2026).
The headline change for header bidding: Google must build an adapter so that a qualified Prebid instance can request AdX bids and get them back. The draft judgment filed on 2 October 2026 also requires a server-to-server link between Google's ad server and Prebid Server within 12 months of the effective date. A second link, for programmatic guaranteed and preferred deals, follows within 15 months (PPC Land, October 2026).
The same draft contains four more items that matter to header bidding (PPC Land, October 2026):
- Header Bidding Trafficking for every publisher. Google's tool for handling Prebid bids without hand-built line items would reach every Google Ad Manager publisher within six months, whatever its size.
- Old pricing rules go. Unified Pricing Rules end for indirect demand, and First Look and Last Look may not return.
- One route per impression. A publisher can call AdX directly or through Prebid for a given impression, but not both, and logs must show which route was used.
- Narrow scope. The judgment covers open-web display. It excludes apps, CTV, in-stream video and Google's buying tool, Display & Video 360 (PPC Land, October 2026).
Status matters more than headlines here. The draft still carries bracketed alternatives where the government and Google disagree, mostly on deadlines. The judgment takes effect 60 days after the judge signs it, and the six-year term starts then. We found no report of entry by 9 November 2026, and the judge remarked at closing arguments in November 2025 that an appeal looked likely (PPC Land, October 2026). Plan against the signed text, not the draft.
What could change in practice? Today a publisher that wants AdX demand calls it through Google Ad Manager. Once the integrations ship, the same publisher could run Prebid as the main auction and let AdX bid inside it, or move to a rival ad server and keep AdX. Our guides to the Google ad tech remedies for publishers and switching ad servers without losing AdX demand track the details as they firm up.
Where to go next
- Header bidding vs server-side bidding compared: cost, identity, fees and the remedies, side by side.
- Prebid.js guide: events, bidder adapters, releases and debugging.
- Prebid Server self-hosting guide: what it takes to run the server leg yourself.
- Prebid vs Open Bidding vs Amazon TAM: the three demand paths in detail.
- How real-time bidding works: what happens inside each exchange after the bid request arrives.
- Publisher independence hub: every page on running supply without a single gatekeeper.
FAQ
What is header bidding in simple terms?
Is header bidding better than the waterfall?
What is a header bidding wrapper?
Prebid client side vs server side: which is faster?
What is a good header bidding timeout?
Can Google AdX bid through Prebid?
How this works on owned infrastructure
The real choice on this page is where the server-side auction runs and who keeps its records. With hosted Prebid Server, a vendor runs that leg, decides which logs you see and holds the bid data. Running Prebid Server in your own cloud account or data centre changes the answer: every bid request, response and timeout stays in your logs, and you decide which bidders receive which user signals. AdSovereign is an enterprise real-time bidding (RTB) stack designed to host the server-side auction, the bidder connections and the logs on infrastructure the publisher controls, next to the ad server it already uses. The architecture page shows where Prebid Server sits in that design, and the integrations page describes the supported connections.
Sources
- Prebid.org, "About Prebid.org" (accessed 9 November 2026). https://docs.prebid.org/overview/what-is-prebid-org.html
- Prebid.org, "Introduction to Prebid" (accessed 9 November 2026). https://docs.prebid.org/overview/intro.html
- Prebid.org, "Introduction to Header Bidding" (accessed 9 November 2026). https://docs.prebid.org/overview/intro-to-header-bidding.html
- Prebid.org, "Prebid Server overview" (accessed 9 November 2026). https://docs.prebid.org/prebid-server/overview/prebid-server-overview.html
- Prebid.org, "Prebid timeouts" (accessed 9 November 2026). https://docs.prebid.org/features/timeouts.html
- GitHub, Prebid.js releases 11.47.0 (4 November 2026), 11.0.0 (12 March 2026) and 10.0.0 (1 July 2025). https://github.com/prebid/Prebid.js/releases/tag/11.47.0
- GitHub, Prebid.js modules folder (counted 9 November 2026). https://github.com/prebid/Prebid.js/tree/master/modules
- GitHub, Prebid Server (Go) releases 4.11.1 (2 November 2026) and 4.0.0 (6 March 2026). https://github.com/prebid/prebid-server/releases/tag/v4.11.1
- GitHub, Prebid Server (Java) releases 4.5.0 (4 November 2026) and 4.0.0 (6 August 2026). https://github.com/prebid/prebid-server-java/releases/tag/4.5.0
- Magnite, Inc., Form 10-K for fiscal year 2025 (filed 25 February 2026). https://www.sec.gov/Archives/edgar/data/1595974/000159597426000007/mgni-20251231.htm
More sources (9)
- PubMatic, Inc., Form 10-K for fiscal year 2025 (filed 26 February 2026). https://www.sec.gov/Archives/edgar/data/1422930/000142293026000010/pubm-20251231.htm
- Amazon Publisher Services, "Transparent Ad Marketplace" (accessed 9 November 2026). https://aps.amazon.com/aps/transparent-ad-marketplace/
- Amazon Publisher Services, "Unified Ad Marketplace" (accessed 9 November 2026). https://aps.amazon.com/aps/unified-ad-marketplace/
- Google Ad Manager Help, "Introduction to Open Bidding" (accessed 9 November 2026). https://support.google.com/admanager/answer/7128453?hl=en
- Google Ad Manager Help, "How Open Bidding works" (accessed 9 November 2026). https://support.google.com/admanager/answer/7128958?hl=en
- Google Ad Manager Help, "Open Bidding payments" (accessed 9 November 2026). https://support.google.com/admanager/answer/9752368?hl=en
- PPC Land, "Court rules Google monopolized digital ad tech markets" (17 April 2025). https://ppc.land/court-rules-google-monopolized-digital-ad-tech-markets/
- AdExchanger, "The Court Just Unsealed Judge Brinkema's Remedies Decision In The Google Ad Tech Antitrust Case. Here's Your TL;DR" (September 2026, updated 17 September 2026). https://www.adexchanger.com/platforms/the-court-just-unsealed-judge-brinkemas-remedies-decision-in-the-google-ad-tech-antitrust-case-heres-your-tldr/
- PPC Land, proposed final judgment in US v. Google, Document 1861 (October 2026). https://ppc.land/doj-seeks-6-months-google-12-to-open-its-ad-exchange-to-rivals/
Changelog
- 9 November 2026: first draft. Prebid versions, APS pages, Google help pages and the status of the US v. Google judgment checked on this date.