The Prebid Sales Agent — a deal machine beside the wrapper, not inside it. 16 PREBID · THE SALES AGENT stewardship · Jan 29, 2026 BUYER AGENTS brief in natural language MCP · HTTP/SSE A2A · JSON-RPC 2.0 the vocabulary they carry is AdCP PUBLISHER INFRASTRUCTURE Sales Agent standalone Python server products · deals · audit log github.com/prebid/salesagent Prebid.js — the wrapper untouched · separate codebase HUMAN APPROVAL “submitted” until signed off AD SERVER GAM · line items 16 AdCP tasks exposed over MCP and A2A 1 production-ready ad-server adapter alpha v2.0.0 broke APIs six months in It lands beside the wrapper — not inside it. nofluffadvisory.com prebid.org · docs.prebid.org · github.com/prebid/salesagent Evgeny Popov
AdTech

The Prebid Sales Agent: AdCP's Sell Side Lands in the Wrapper

· 13 min read
The gist

AdCP's sell side is a deal machine beside the wrapper, not inside it — the architecture, the deal loop, five publisher decisions, the caveats nobody prints.

On this page

The Prebid Sales Agent is an open-source server that represents a publisher’s inventory to AI buying agents: it interprets a natural-language campaign brief, returns structured product proposals, accepts creatives, executes the buy against the publisher’s ad server, and reports delivery — all over the Ad Context Protocol (AdCP). Prebid.org took stewardship of the code on January 29, 2026, renaming what had been the AdCP consortium’s reference implementation and folding it into the same organization that maintains the wrapper running on most of the open web.

One correction before anything else, and it applies to this essay’s own title: the Sales Agent does not land in the wrapper. It is not a Prebid.js module, not a Prebid Server feature, not a line in your pbjs.setConfig. Per Prebid’s own documentation, it operates independently of Prebid.js and Prebid Server — a standalone Python server that talks to the ad server directly. What landed in “Prebid” is the brand, the governance, and the publisher community, not the codebase on your page. The gap between Prebid-the-organization and Prebid-the-wrapper is not pedantry. It is the most useful thing to understand about this release, because it tells you what kind of decision a publisher is actually facing: not a wrapper upgrade, but a second, parallel sales channel with its own server, its own database, and its own failure modes.

What shipped, and what merely moved

The code predates the announcement. AdCP launched publicly in October 2025 with 20+ founding members, and the protocol’s own site dates the first agent-to-agent media buy — executed against real LG Ads inventory — to October 16, 2025. The sell-side reference server was built by the founding consortium — Scope3, Triton Digital, Yahoo, PubMatic, Optable, and Swivel, per AdExchanger’s reporting — the same group that stood up AgenticAdvertising.org (AAO) as the protocol’s governance body.

January 2026 was a transfer, not a birth: the repository moved to the prebid GitHub organization, got the Prebid name, and inherited Prebid’s contribution machinery. The governance split is deliberate and worth stating precisely, because it will govern how disputes get resolved: AAO owns the protocol; Prebid owns the software. Garrett McGrath, Prebid’s board chair, drew the line himself in the AdExchanger piece: “We’re not a standards org; we’re a software org.” Prebid has also said it remains open to implementing other agentic standards — the Sales Agent is a bet on AdCP, not a marriage to it.

If the pattern sounds familiar, it should. Prebid.js exists because publishers needed a neutral, open implementation of a selling technique that would otherwise have been rented from vendors. The Sales Agent replays that move one layer up: the IAB-spec-plus-open-implementation pattern, with AAO in the spec seat and Prebid in the code seat.

The box beside the wrapper

Here is what the software actually is, from the repository and docs.prebid.org, as of July 2026:

  • A Python 3.12+ server backed by PostgreSQL, licensed Apache 2.0, deployable via Docker Compose, Fly.io, or Cloud Run.
  • Two agent-facing front doors. An MCP endpoint (HTTP/SSE, built on FastMCP) for assistant-to-agent traffic — a buyer’s AI assistant connecting directly — and an A2A endpoint (JSON-RPC 2.0, bearer-token auth) for agent-to-agent traffic. These are transports; the vocabulary they carry is AdCP. If you want the protocol-wide picture — all seven task domains, the governance rail, the 3.0-to-3.1 migration — that lives on the AdCP reference page; this essay stays on the sell-side implementation.
  • 16 AdCP tools exposed, implementing AdCP 3.1.0-beta.3 via the adcp==5.7.0 SDK.
  • An adapter layer toward ad servers. Google Ad Manager is the one production-ready adapter (CPM, VCPM, CPC, and flat-rate line items). Broadstreet, Kevel, and Triton Digital adapters exist but are early-stage. A mock adapter handles testing. This is the integration point that matters: the Sales Agent plugs into the ad server, not the wrapper.
  • Multi-tenancy — one deployment can serve many publishers with per-tenant data isolation and a REST tenant-management API — plus an admin UI (Google OAuth, live activity dashboard), human-in-the-loop approval workflows, and audit logging.
  • Discovery plumbing. The agent advertises itself via a /.well-known/agent.json manifest, and publishers declare which agents are authorized to sell their inventory via adagents.json — a March 30, 2026 spec that extends the ads.txt idea with placement-level, geographic, and time-windowed authorization.

Read that list again with an operator’s eye and the shape becomes clear: this is a small commerce backend. A database of products, a set of API endpoints, an approval queue, an audit log, and a connector to the system of record. The novelty is entirely in who the customer is — software, not people — and in the shared vocabulary that lets any buyer agent speak to any compliant seller without a bespoke integration.

The deal loop, task by task

The AdCP Media Buy protocol defines the workflow the Sales Agent executes. A deal runs like this:

  1. get_products — the buyer agent sends a brief in natural language (“$40K for a March campaign reaching outdoor enthusiasts, video preferred”). The Sales Agent interprets it against the publisher’s catalog and returns structured product proposals in a uniform JSON schema.
  2. Refinement — the buyer counters: different formats, different flighting, a price question. Optional per the spec; sellers may implement negotiation logic or return static products.
  3. list_creative_formats / sync_creatives — the seller declares what formats it accepts; the buyer pushes assets.
  4. create_media_buy — the buyer commits budget and packages. Critically, the buy lands in a submitted state, pending human sign-off on the publisher side. Autonomy ends at the order form by default.
  5. get_media_buy_delivery — reporting: impressions, spend, pacing, in the same schema every compliant seller uses.
  6. update_media_buy — in-flight changes: budget shifts, package pauses, makegoods where implemented.
The deal loop, task by task — and why it is a sales protocol, not an auction protocol THE DEAL LOOP One negotiated buy, six tasks, one human gate. get_products brief in, proposals out refinement counter-proposals (optional) sync_creatives formats declared, assets in create_media_buy lands in “submitted” human approval publisher signs off AUTONOMY ENDS HERE ad server GAM · line items live get_media_buy_delivery → update_media_buy: reporting feeds revisions back into the loop WHY IT IS NOT AN AUCTION PROTOCOL AdCP — a stateful sales workflow one negotiated deal · lives for days or weeks carries context: brief, creatives, delivery history human gate on commit, by default OpenRTB — a stateless auction bid / no-bid, per impression · milliseconds no memory between requests no negotiation, no workflow, no approval state

The contrast with OpenRTB is the durable insight, because it explains why this is not “RTB with extra steps.” OpenRTB is stateless by design: every impression is a fresh auction, decided in milliseconds, with no memory of the last one. AdCP’s Media Buy loop is stateful by design: one deal object that accumulates context — brief, proposals, creatives, delivery — over days. That makes AdCP a sales workflow protocol where OpenRTB is an auction protocol, and it is why the two coexist rather than compete. At Prebid’s May 14, 2026 webinar, the framing was explicitly coexistence — RTB persists the way waterfalls persisted after header bidding.

Scope matters too: today the Sales Agent transacts direct and programmatic-guaranteed deals only, per AdExchanger. McGrath has floated agents participating in open auctions as an eventual possibility; that is speculation on the record, not a roadmap item.

Five decisions, not a hype checklist

For a publisher, “should we care about agentic selling” decomposes into five concrete decisions.

1. Deploy posture: self-host, managed, or wait. Self-hosting is genuinely cheap to start — Docker Compose and a Postgres instance — but you are then a maintainer of alpha software tracking a moving protocol. This deserves plain language the vendor coverage omits: the v2.0.0 release of July 1, 2026 shipped breaking changes six months after the Prebid announcement, and the repository itself says to treat the software as alpha and validate before relying on it. There is drift between spec and implementation, too: adcontextprotocol.org declares AdCP 3.1 GA (v3.1.1, June 2026), while the Sales Agent tracks 3.1.0-beta.3 through its SDK pin. And the activity is real but small — at fetch time in July 2026, the repo showed 34 stars, 48 forks, and 167 open issues. None of this is disqualifying for a pilot. All of it says: pin versions, wrap it in your own tests, and do not put quota-bearing revenue behind it yet.

2. Inventory scope: what becomes a product. The Sales Agent sells products — structured, described, priced packages — not ad slots. Turning internal inventory knowledge (“homepage takeover, sports section, first-party auto-intenders”) into products an agent can evaluate is unglamorous catalog work, and Prebid’s own webinar named this translation problem the single largest barrier to scaling. Start with the five deals your direct team already sells repeatedly.

3. Governance rails. The defaults are conservative — every create_media_buy waits in submitted for a human — but the rails are yours to configure: pricing floors, approval workflows, audit logging, and adagents.json declarations of which agents may represent your inventory at all. This is the same lesson the wrapper taught: the config surface is the policy surface. Decide the rails before the demand arrives, because loosening a gate later is a choice; discovering you never had one is an incident.

4. Demand realism. Total agentic ad spend disclosed at the May 2026 Prebid webinar was in the low six-figure range — a figure reported by PPC Land from speakers at Optable and Sigma Software, both vendor-adjacent to the effort, so label it accordingly. DataBeat’s May 2026 data has agentic demand trailing programmatic CPMs by roughly 13.4% (PPC Land). The bull case is Brian O’Kelley’s: when agents transact without humans on either side, “the friction cost approaches zero,” making small direct sponsorships — his example is $5,000 — economically viable for the first time (bokonads). O’Kelley founded Scope3 and drove AdCP’s creation; treat the thesis as founder advocacy, coherent but unproven. The honest summary: these are pipes before money. You deploy now to learn cheaply, not to book revenue.

5. The standards bet. AdCP-via-Prebid is not the only path. IAB Tech Lab’s Agentic RTB Framework (ARTF) is the built-on-OpenRTB alternative — opened for industry input in 2026 — and its CEO Anthony Katsur has argued that ripping out battle-tested infrastructure to start from scratch is the slowest path to agentic scale, with PubMatic and Chalice already shipping a custom bidding agent inside ARTF (The Current). The full IAB stack — AAMP, ARTF, the Agent Registry that went live in March 2026 — is mapped on the IAB agentic standards page. Prebid itself hedges: it stewards the AdCP implementation while stating openness to other standards. A publisher can hedge the same way — the Sales Agent touches the ad server, not the wrapper, so running it changes nothing about your RTB stack, your Prebid.js configuration, or your position in the wider wrapper schism. The unresolved risk, raised at Prebid’s own webinar, is whether any open standard reaches adoption before the largest platforms set de facto ones.

What is not shipped, not resolved, not documented

The list the announcement coverage will not print:

  • Production adoption: publishers running the Sales Agent against live revenue — not publicly documented.
  • Ad-server coverage: one production-ready adapter (GAM). Broadstreet, Kevel, and Triton Digital adapters are early-stage; everything else does not exist.
  • Open-auction participation: aspiration only, explicitly speculative.
  • Trust, fraud, and provenance in agent-to-agent deals: acknowledged as unresolved at Prebid’s own webinar. adagents.json and AAO governance are partial answers; verification and liability are open questions.
  • Total cost of ownership: hosting, maintenance, and protocol-churn engineering cost — not publicly documented.
  • Incrementality: whether agentic deals add revenue or re-route existing direct/PG spend — unmeasured by anyone, anywhere. Claims of yield lift you may encounter elsewhere are unsourced.
  • Spec/implementation alignment: the reference implementation trails the protocol’s own GA claim; the July 2026 v2.0.0 release broke APIs.

The precedent, honestly applied

The reason to take this seriously despite every caveat above is the organization now holding the code. Prebid.js won because it made the implementation of a new selling technique a commons, so publishers did not have to rent it from the vendors who profited from opacity. The Sales Agent is the same wager one layer up: if agentic buying materializes, the sell-side machinery should be open, neutral, and publisher-governed rather than a per-vendor black box.

But hold the analogy to its own standard. Header bidding spread because it unlocked demand publishers could already measure — the money preceded the standard. The Sales Agent inverts that: open, standardized supply infrastructure, built ahead of demand that currently totals six figures industry-wide. That inversion is not a flaw — protocols built after the money arrives tend to be written by whoever the money belongs to — but it does define what to watch instead of what to celebrate: a second production ad-server adapter, a 1.0 that stops breaking, disclosed spend crossing seven figures, and a named publisher putting real inventory behind /.well-known/agent.json. Until then, the accurate description is the one Prebid’s own docs quietly give you: a promising server standing beside the wrapper, waiting for someone to knock.