Header bidding is a technique that offers a single advertising impression to several exchanges simultaneously, gathers their bids, and passes the best price into the publisher's ad server before that server picks what to serve. The auction runs in code loaded inside the page, historically in the HTML header, which is where the name comes from. It exists because the arrangement it replaced, the waterfall, ranked demand sources in a fixed order and called them one at a time, so a buyer further down the queue never had the chance to outbid one further up.
It is an implementation detail of demand solicitation rather than a separate market. What changed was sequence: parallel competition replaced priority order, and the price a publisher could see stopped being the price one intermediary chose to show it.
How the auction runs
A publisher defines ad units in JavaScript, each mapped to a slot the ad server already knows about, and each listing the bidders that may compete for it with their account parameters. Calling the bid request function dispatches those calls at once rather than in sequence. An auction timeout governs the wait: any adapter that has not answered in time is dropped from that auction. Prebid documentation recommends between five and 15 demand partners for browser-side setups, and advises upgrading the library at least every six months.
Bids that arrive are converted into key-value pairs that the ad server can target. The price is not passed as an exact number but as a price bucket, written to the key hb_pb. The default granularity setting, named medium, rounds to increments of 0.10 dollars and caps the bucket at a 20 dollar cost per thousand impressions; the high setting uses one-cent increments under the same cap, and video sellers expecting to clear above 20 dollars have to define custom buckets. Companion keys carry what the creative and the reporting need: hb_adid for the bid identifier, hb_bidder for the winning demand partner, hb_size, hb_format, hb_deal for negotiated inventory, and hb_uuid for video creatives stored in a cache.
Those pairs reach the ad server through the publisher tag, where line items priced at each bucket compete against directly sold campaigns and against the exchange the ad server operates. In the default configuration, known as send all bids, every bidder's values are sent, which allows per-bidder reporting at the cost of a much larger key payload. The ad server, not the wrapper, makes the final decision.
Running dozens of parallel requests on a phone is expensive, so a large share of the work moved off the device. In the server-side arrangement, the page sends one call to a bid server, which contacts the bidders on its own infrastructure. Prebid's guidance sets the server timeout below the page timeout, defaulting to 75% of it, and that value travels to bidders as the tmax field of the OpenRTB bid request. The trade is identity: a server cannot read the cookies bidders set in the browser, so match rates depend on synchronisation endpoints, and PPC Land's account of server-side advertising notes Index Exchange documentation stating its browser adapter matches users better than the server route.
Google Ad Manager added a route of its own. Header bidding trafficking, restricted to Ad Manager 360 and initially to banner formats on the web, lets the Google Publisher Tag collect bids from a standard Prebid implementation directly, so they enter ad serving at their true value rather than through price priority line items.
From waterfall to wrapper
The problem the technique attacked was structural. Google's 2008 purchase of DoubleClick combined the dominant publisher ad server with a nascent exchange, and policies bound the two together: by early 2014, PPC Land's history of open-web display records, that exchange was winning 53% of the inventory the ad server put to auction, helped by a right of first refusal called First Look.
The name arrived after the practice. Vendors had called it tagless, parallel auction, universal auction and dynamic bidding; Digiday's 2017 oral history records Index Exchange's Gabriel DeWitt saying the origin of the phrase is "an ad tech urban legend". AdExchanger published the first trade article carrying the term in its headline on June 18, 2015.
Standardisation followed. Matt Kendall and Paul Yang at AppNexus built Prebid.js in early 2015 with Nick Jacob of the publisher Aplus, and AppNexus, PubMatic and Rubicon Project spun the code into an independent organisation, Prebid.org, on September 11, 2017, counting 81 demand partners and 191 contributors at formation. Version 1.0 arrived on December 13, 2017 with a single ad unit model covering banner, video and native, simplified configuration and better handling of single-page sites. A server-side counterpart followed, and in February 2018 an integration with Accelerated Mobile Pages reached pages where no header script could run; AppNexus reported one publisher seeing a sixfold rise in revenue there, a figure supplied by the company.
Google answered with a server-side alternative inside its own ad server. Exchange Bidding, rolled out to publishers using DoubleClick for Publishers with yield partners including Index Exchange, OpenX, Rubicon Project, Smaato and Sovrn, was later renamed Open Bidding, opened to self-service onboarding across Ad Exchange accounts, and extended to app developers in 2021 as AdMob bidding. Google never joined Prebid.org, unlike every other large participant in real-time bidding; The Trade Desk took a board seat there in February 2020.
Adzerk data cited by eMarketer put usage at 79.2% of the 1,000 most popular sites selling programmatic advertising in March 2019. By the wrapper's fifth anniversary, Prebid reported 20,000 live implementations, more than 650 engineering contributors and over 250 approved bid adapters. Project documentation now describes more than 300 demand partners and roughly 50 analytics providers.
Why it matters
Pricing changed because of it. A wrapper produces several parallel auctions whose winners meet inside an ad server, and a second-price winner entering that comparison arrives at an artificially deflated number, which is why display moved to first-price clearing between 2018 and 2019 and why bid shading became a buy-side product.
Deduplication became a problem for the same reason. One page view can reach the same demand-side platform through five exchanges, so the OpenRTB Source object and its shared transaction identifier were added in version 2.5 with header bidding cited as the motivation. Request volume grew accordingly, and traffic shaping exists to filter it.
The technique also sits at the centre of the antitrust record. Internal Google correspondence cited at trial described its revenue effect on publishers as sharp, and Judge Leonie Brinkema found in April 2025 that the responses to it amounted to willful monopolisation; the European Commission reached a parallel conclusion and fined Google 2.95bn euros on September 5, 2025. Teads' August 2026 complaint alleges it was refused entry to Exchange Bidding on pretextual grounds.
Limitations and disputes
Latency remains the permanent cost. Bids are collected while the page waits, and the timeout that protects page speed also discards demand.
Volume is the second cost, and it is now billed. DataBeat found a 46% duplicated-domain rate across tier 1 supply-side platforms in June 2026, at an average of 1.31 intermediaries per domain. PubMatic began charging publishers 0.001 dollars per thousand bid requests above daily allocations on April 16, 2026. Publishers have responded with throttling, with Chegg cutting off slots that draw 20 or more requests without a bid.
Governance is contested. On August 27, 2025 Prebid made transaction identifiers bidder-specific, removing buyers' ability to recognise one impression arriving by several paths; the IAB Tech Lab said the change materially violated the OpenRTB specification, the first direct clash between the standards body and the implementation project, while publishers defended the change as yield protection and Prebid later stated that the setting had always been opt-in, enabled manually by publishers that want it. The Trade Desk forked the codebase, with chief executive Jeff Green describing supply-side practice as a strategy to "duplicate, obfuscate, and sometimes lie".
Free infrastructure proved fragile. Microsoft announced the end of the public Prebid Cache service used for video creatives, setting a final date of April 30, 2026 and pushing publishers into migrations, with some bypassing remote caching altogether and handing the video creative straight to the player.
Not the same as
The waterfall ranks demand sources and calls them in order until one fills; header bidding calls them together. Mediation in mobile apps is the same idea under another name.
Open Bidding, formerly Exchange Bidding, runs the multi-exchange auction inside Google's ad server rather than in the page, which removes browser latency and hands auction control to the server operator.
Real-time bidding is the per-impression auction mechanism and OpenRTB is its message format. Header bidding decides where those auctions happen, and uses them underneath.
Prebid is software, not the technique. It is the dominant open-source wrapper, described as such in IAB Spain's first supply-side platform guide of April 2026, but proprietary and managed wrappers implement the same technique.
Recent developments
Demand and tooling kept arriving through 2026. Amazon Publisher Services opened a Prebid adapter in beta on January 21, 2026, connecting existing setups to Amazon demand and the third-party buyers reachable through its marketplaces. Nine publishers including the Guardian, BuzzFeed and Hearst committed to The Trade Desk's forked auction platform on January 6, 2026.
The project also moved into agentic buying. Prebid took stewardship of an open-source sales agent on January 29, 2026, with chairman Garrett McGrath saying that "agentic advertising should be no different" from its existing remit. A module published by Patrick McCann of Raptive and merged in early August 2026 made live auction state readable by AI coding agents inside Chrome.
Timeline
- 2008: Google completes its acquisition of DoubleClick, combining the leading publisher ad server with a nascent exchange
- Early 2014: Google's exchange wins 53% of the inventory its ad server puts to auction
- Late 2014: The word header enters common use to describe bids solicited before the ad call
- Early 2015: Matt Kendall and Paul Yang at AppNexus build Prebid.js with Nick Jacob of Aplus
- June 18, 2015: AdExchanger publishes the first trade article using the term in a headline
- November 2016: OpenRTB 2.5 opens for public comment with a shared transaction identifier motivated by header bidding
- September 11, 2017: AppNexus, PubMatic and Rubicon Project launch Prebid.org with 81 demand partners
- December 13, 2017: Prebid.js 1.0 ships with universal ad unit support for banner, video and native
- February 2018: Prebid Server is integrated with Accelerated Mobile Pages
- 2018: Google launches Exchange Bidding, later renamed Open Bidding
- March 2019: Adzerk data put header bidding usage at 79.2% of the top 1,000 programmatic sites
- 2019: Google withdraws Last Look and moves Ad Manager to a unified first-price auction
- February 4, 2020: The Trade Desk joins Prebid.org as a leader member
- September 2020: Prebid reports 20,000 live implementations and over 250 approved bid adapters
- June 2023: Prebid.js 8 adds transaction identifier support on an opt-in basis
- April 2025: A US court finds Google willfully monopolised publisher ad serving and exchange markets
- August 27, 2025: Prebid makes transaction identifiers bidder-specific; IAB Tech Lab objects
- September 5, 2025: The European Commission fines Google 2.95bn euros in its ad tech case
- October 2, 2025: The Trade Desk announces a forked wrapper and a new auction platform
- December 12, 2025: Microsoft sets April 30, 2026 as the end date for the public Prebid Cache
- January 21, 2026: Amazon Publisher Services opens its Prebid adapter in beta
- April 2026: IAB Spain describes Prebid as the dominant open-source wrapper
- August 6, 2026: A DevTools module lands in Prebid.js, exposing auction state to AI agents
Related PPC Land coverage
- Explaining programmatic - Where the technique sits inside the wider automated buying market, and what it is not.
- Explaining server-side - The move from browser auctions to server auctions, and the cookie match rate cost.
- Explaining open-web display - The ad server and exchange combination publishers adopted header bidding to escape.
- Explaining first price - Why parallel auctions made second-price clearing unworkable for display.
- Explaining deduplication - The shared transaction identifier added to OpenRTB 2.5 to spot one impression arriving twice.
- Explaining traffic shaping - Filtering built to handle the request volume parallel auctions create.
- Header Bidding: Prebid.js 1.0 released today - The release that unified banner, video and native handling in one wrapper.
- Header Bidding: Prebid now works with AMP - The 2018 route into pages with no header script, and the revenue figure AppNexus reported.
- Prebid.js has how 5 years - Implementation, contributor and adapter counts at the project's fifth anniversary.
- Google rolls out Exchange Bidding for all publishers using DFP - The server-side answer built inside the ad server, and its first yield partners.
- Teads warns Google could cut its revenue in retaliation for antitrust suit - Allegations about exclusion from the server-side alternative to header bidding.
- Same ad slot bid twice: DataBeat finds 46% auction duplication at top SSPs - Duplication rates measured across the largest supply-side platforms.
- PubMatic is now charging publishers for sending too much inventory - The first fee attached to bid request volume regardless of revenue.
- Publishers deploy bid throttling to tackle programmatic waste - Thresholds publishers use to stop calling slots that draw no bids.
- IAB Tech Lab challenges Prebid transaction ID changes - The standards body's objection to bidder-specific identifiers.
- Publishers drive Prebid transaction ID changes amid yield protection concerns - The publisher case for limiting cross-exchange visibility.
- Microsoft kills free Prebid Cache publishers rely on for video ads - The withdrawal of donated infrastructure and the migration deadline it set.
- Amazon unleashes Prebid adapter publishers actually wanted - A large demand source shipping integration code to the open-source project.
- Major publishers back Trade Desk's OpenAds auction platform - The publishers that committed to a forked wrapper preserving shared identifiers.
- Prebid stewards open-source sales agent publishers needed for AI buying - The project extending beyond auctions into automated direct buying.
- Prebid.js gains DevTools MCP module letting AI agents read live auctions - Auction state made readable by coding agents inside the browser.
Summary
Who. Publishers and their ad operations teams configure it; supply-side platforms and exchanges supply the adapters that compete in it; demand-side platforms and networks bid into it through those adapters; Prebid.org maintains the dominant open-source implementation, and the IAB Tech Lab defines the message format underneath.
What. A method of offering one impression to several exchanges at the same time before the publisher's ad server decides, with bid prices passed into that server as key-value pairs representing price buckets.
When. The practice spread among large publishers during 2015, was standardised by Prebid.js from that year and by Prebid.org from September 2017, and reached roughly four in five of the largest programmatic sites by 2019.
Where. In the browser through a wrapper script, on servers through Prebid Server and comparable systems, inside mobile applications through a software development kit, and inside Google's ad server through the trafficking feature and Open Bidding.
Why. Sequential selling let one intermediary decide which buyers saw an impression and at what point. Parallel bidding exposed the whole of a publisher's inventory to competing demand at once, and in doing so reshaped auction pricing, request volume, supply-path economics and the antitrust record of the open web.
Discussion