skip to content

Search

← The Google Marketing Stack

Part V — The Sell Side: Ad Manager and AdX

Open-Source as Antitrust Remedy

Prebid.js and Prebid.org solved a competition problem with code and a foundation, years before the DOJ proposed doing the same to Google's auction logic.

2015–2025 11 min read 12 papers

Early in 2015, two engineers at AppNexus, Matt Kendall and Paul Yang, worked with Nick Jacob at a publisher called Aplus on a piece of JavaScript that solved an unglamorous problem. Publishers wanted several exchanges to bid on an impression before their ad server saw it. Every exchange had shipped its own way of doing that, which meant a publisher adding a fourth demand partner was editing page code and hoping the timeouts still lined up. The code the three of them wrote became Prebid.js (Prebid.org). It was not a policy intervention. It was an interface.

Ten years later, the United States Department of Justice asked a federal court to require Google to open-source the final auction logic inside its publisher ad server, as part of the remedy for monopolization (AdExchanger, 2025). The two events are not the same thing, and pretending otherwise flatters both. They do sit close enough together to raise a question worth taking seriously: when the industry has already demonstrated that shared code plus neutral governance can restore competition to a chokepoint, what exactly is a court adding?

The Problem Prebid Solved Was a Governance Problem

The mechanic that made header bidding necessary is the subject of The Last Look. The short version is that dynamic allocation let AdX see the price to beat inside Google’s ad server, and rival exchanges got a passback tag instead. Header bidding moved the auction into the browser, ahead of the ad server call, so that the number AdX had to beat was a real competing bid rather than an internal estimate.

The technical fix was straightforward enough that multiple vendors built it independently. That was precisely the problem. Each wrapper was proprietary, which meant that whoever controlled a publisher’s wrapper controlled the order in which demand partners were called, the timeout each partner got, and which partners were available at all. A publisher escaping one company’s structural advantage in the ad server could easily walk into a different company’s structural advantage in the header. Prebid.js was written to make the wrapper layer boring: one adapter interface, one auction loop, one configuration file, no privileged position for the company that wrote it.

That is the part worth naming precisely. Prebid did not add a capability that nobody had. It removed a control point.

AppNexus Gave It Away on Purpose

AppNexus built Prebid.js and then concluded the project was too important to be owned by any one company. In September 2017 the code moved to Prebid.org, an independent organization funded by member dues and chartered to promote fair, transparent, and efficient header bidding across the industry (Prebid.org). Governance moved to product management committees rather than a vendor roadmap. Matt Kendall, who co-wrote the original code, went on to chair the Prebid.js committee (PRWeb, 2019).

The commercial logic was not charity. AppNexus was an exchange, and an exchange competing against a rival with last look benefits enormously from an industry-standard mechanism that neutralizes last look. Handing the wrapper to a foundation made adoption easier for publishers who would never install infrastructure controlled by one of their demand partners, and easier for competing exchanges who would never write adapters for a competitor’s proprietary stack. Neutrality was the feature that made the thing spread.

The structure also survived the corporate churn around it. AppNexus was acquired by AT&T and became Xandr, then was sold to Microsoft. Prebid did not move with it. That is what a foundation buys: the code outlives the sponsor’s cap table (AdMonsters).

What began as one browser script grew into a family. Prebid Server moved the same auction logic server-side for publishers who could not afford the browser latency. Prebid Mobile and the Prebid SDK extended it to apps. The pattern held throughout: a shared reference implementation, adapters contributed by the companies that wanted to be called, and no single vendor holding the sequencing decision.

The governance detail that makes this work, and that gets lost when people describe Prebid as simply open source, is that the adapters are contributed by the demand partners themselves. An exchange that wants publishers to call it writes and maintains its own adapter against a public interface. The foundation does not have to evaluate whether a partner deserves inclusion, and no partner has to trust a competitor with its integration code. Membership dues fund the shared infrastructure, testing, and the release process rather than a product roadmap that any single member controls. That structure is unremarkable in software and almost unheard of at a market chokepoint, which is why it is worth studying as a competition mechanism rather than only as a project.

The Layer Prebid Could Reach, and the Layer It Could Not

It is worth being exact about the boundary, because the boundary is the whole argument of this chapter.

The header is page code. A publisher owns its own pages, can put whatever JavaScript it likes in them, and can change the order of calls at will. That is why an industry consortium could fix the wrapper layer without anybody’s permission. The ad server is a hosted product. A publisher on DFP could configure line items, set priorities, and define pricing rules, but could not inspect how the final allocation decision was computed, could not verify the reported clearing price against the bids actually received, and after 2019 could not price differently against different exchanges. Every one of those constraints lived on the far side of a product boundary that no amount of open-source enthusiasm could cross.

So the industry did the thing it was able to do, at real cost, and stopped precisely where the code stopped being writable. Publishers ran Prebid in the header, Open Bidding in the server, and reconciled the two against a revenue report they had to take on faith. That is not a market that solved its problem. It is a market that solved the part of its problem it had standing to solve.

The DOJ Arrives at the Same Idea, With Subpoena Power

In April 2025, Judge Leonie Brinkema found Google liable for monopolizing the open-web publisher ad server market and the open-web display ad exchange market, and for unlawfully tying DFP to AdX (Simpson Thacher, 2025). That put the case into a remedies phase, where the argument stopped being about what Google did and became about what a court can practically order.

The DOJ’s proposal combined structural and behavioral elements: divestiture of AdX on a defined timeline, open-sourcing the ad server’s final auction logic, and divestiture of the remainder of DFP if the first two proved insufficient (Digiday, 2025). Google countered with behavioral commitments and interoperability undertakings rather than a sale (AdExchanger, 2025).

The open-source component is the one that echoes 2015. The final auction logic is, in plain terms, the code that decides why a given impression went to a given buyer at a given price. Publishing it would make it possible for a publisher to verify that decision rather than accept a report of it, and would lower the cost of building a competing ad server, since the hardest part of matching DFP is not serving creative but reproducing auction behavior that thousands of campaigns are already tuned against (Public Knowledge, 2025).

Judge Brinkema has been openly skeptical that behavioral commitments can do the work, describing a preference for remedies that are less window dressing, while also probing whether there is a credible buyer for AdX at all and what happens to publishers who currently get the exchange bundled at no separate cost (Digiday, 2025). A final remedies order has been expected in 2026. The competing remedy theories, including how the European Commission’s approach differs, are worked through in Remedies.

The industry built a remedy the DOJ later asked a court to compel Shared code plus neutral governance restored competition once. A federal remedy proposal asks whether it can again. Grey monospace text names who held the pen at each step. 2015 Prebid.js written three engineers solve a governance problem AppNexus and Aplus, early 2015 2016 Exchange Bidding ships Google's server-side answer to header bidding the auction moves back inside 2017 Prebid.org formed dues-funded, independent governance code outlives the sponsor 2023 DOJ files suit US v Google, Eastern District of Virginia January 2023 2024 Prebid at trial evidence for both sides, chokepoint or contested market argued by both sides 2025 Liability, then a remedy Brinkema rules; DOJ asks for open auction logic the ask echoes 2015 2026 Remedies order expected what a court can compel a foundation could not final order pending industry governance that worked Google's own absorption litigation Prebid fixed the layer publishers controlled. The auction logic underneath stayed unreadable.
Prebid fixed the layer publishers controlled. The auction logic underneath stayed unreadable, which is exactly what the DOJ's remedy now asks a court to open. PNG ↓

Prebid Showed Up at Trial as Evidence for Both Sides

Prebid was not a bystander in the litigation. Google’s defense leaned on it: header bidding exists, publishers use it, rival exchanges get bids in, therefore the market is contested. Publisher witnesses used the same facts in the opposite direction. Header bidding was not a market working, it was a market paying an engineering tax to route around a chokepoint, and adoption proved the chokepoint was real (AdExchanger, 2024).

Both readings are partly right, which is why the comparison in this chapter has to be handled carefully. Prebid did restore competition at the layer it touched. It did not restore competition at the layer beneath it. A publisher on Prebid still ran DFP as the ad server, still could not audit the final allocation decision, and still had no bidder-specific floor to price against AdX after 2019. The industry solved the part of the problem that was solvable with code it was allowed to write. The rest sat inside a binary nobody outside Google could read.

What a Court Can Do That a Foundation Cannot

The honest version of the comparison looks like this.

Prebid.js and Prebid.orgDOJ’s open-source proposal
Originindustry engineers, early 2015government remedy filing, 2025
Targetthe wrapper layer publishers already controlledauction logic inside a product publishers do not control
Mechanism of adoptionvoluntary, driven by publisher self-interestcourt order following a liability finding
Governancedues-funded foundation, product committeesto be specified by the court, then supervised
What it fixeswho gets called, in what order, with what timeoutwhy a given impression was awarded at a given price
What it cannot fixownership of the ad server or the exchangethe incentive to own both, absent divestiture

The category difference is consent. Prebid worked because the companies that adopted it wanted the outcome, and because the layer in question was one publishers could legally rewrite. The final auction logic is not that layer. No amount of industry goodwill produces it, which is why it took a monopolization finding to put it on the table.

There is also a real risk the comparison understates. Critics of the DOJ proposal have argued that open-sourcing a live auction implementation creates its own problems, from gaming by sophisticated bidders to freezing the code against improvements, and that mandated technical disclosure has a poor track record as a competition remedy (ITIF, 2025). Prebid did not face that objection, because it was a reference implementation for a coordination problem rather than a disclosure of a dominant firm’s pricing engine.

So the answer to whether regulators are catching up to what the market already proved is: partly, and about ten years late, on the narrow question of whether shared code and neutral governance can reduce a chokepoint’s value. The market proved that. The market also proved the limit of the method, which is that you cannot open-source something you cannot see, and the code that mattered most was on the other side of a product boundary. Whether the fee that boundary protects ever moved is the subject of The 20% That Never Moved.

Key Sources

SourceAuthor/OrgYearLinkWhy it matters
About Prebid.js for Header BiddingPrebid.orgcurrentdocsPrimary record of authorship in early 2015 by Kendall, Yang, and Jacob
What is Prebid.org?Prebid.orgcurrentdocsStates the September 2017 formation and the independent, dues-funded charter
Ad Ops Decoder: What Is Prebid.org?AdMonsterscurrentarticleExplains why AppNexus concluded the project should not be vendor-owned
Blockthrough Names Prebid.js Co-Creator Matt Kendall as Head of EngineeringPRWeb2019releaseConfirms Kendall’s co-authorship and his Prebid.js committee chair role
District Court Rules Google Is a Monopolist in Ad TechSimpson Thacher2025analysisSummarizes exactly which markets Brinkema found monopolized and the tying holding
The DOJ And Google Sharpen Their Remedy ProposalsAdExchanger2025articleSource for the open-source final auction logic request alongside AdX divestiture
The Rundown: What Google and the DOJ Are ProposingDigiday2025articleSide-by-side of the structural and behavioral proposals
How DOJ’s Proposed Ad Tech Remedies Could Do What the Court Would NotPublic Knowledge2025analysisArgues open-sourcing lowers switching costs and ad server entry barriers
The DOJ’s Problematic Remedies Proposal in the Google Ad Tech CaseITIF2025blogThe strongest published objection to mandated auction-logic disclosure
DOJ vs. Google, Day Five Rewind: Prebid Reality CheckAdExchanger2024articleShows both sides using Prebid’s existence as evidence at trial

PM Lens

Papers referenced