This is the buy-side view. For the seller (supply) side — connecting your own AdCP sales agent as a storefront
source — see Connect your sales agent. When this page and
the AdCP spec disagree on what the protocol means, the AdCP spec wins.
Two AdCP directions, one direct campaign mode
AdCP addresses one storefront at a time. Whether the storefront is reached through an external buyer endpoint or a connected account, the campaign is directed:
A task addressed directly to one storefront is directed because Interchange does not
perform cross-storefront discovery or allocation. A platform-managed discovery
campaign can still finish with one seller when Interchange performed that selection;
the result count does not change its mode. See
Directed campaigns for the shared model.
You may also hear this called a mediated AdCP campaign. Mediation is the platform
invariant, so these docs use inbound when distinguishing the protocol direction.
Neither “inbound” nor “mediated” is a campaign
mode.
The cross-seller pattern
The defining difference between AdCP and Interchange on the buy side is the same everywhere: AdCP defines a task against one agent; Interchange runs it across many. That fan-out is our core scaling layer.
An external AdCP client can also call one Interchange-hosted storefront directly.
That is deliberately a single-seller protocol interaction, while Interchange still
provides the buyer identity, contract, governance, audit, campaign, and ledger around
the seller call.
Conformance (buy side)
Status: 1:1 conforms as written · +ext with a Scope3 scaling layer · none not implemented yet.External buyer to Interchange to seller (alpha)
An external AdCP client connects to one storefront at:- Call
get_adcp_capabilitiesandget_productson that storefront. - Send
create_media_buywith anidempotency_key, brand identity, flight, currency, and one or more explicitly budgeted packages. - Use the returned
media_buy_idwithget_media_buysandget_media_buy_delivery.
brand.domain only when that domain identifies
exactly one active advertiser in the buyer account; missing or ambiguous identity
fails closed.
What Interchange adds before seller dispatch
For an enrolled relationship, media-buy writes do more than relay the protocol request:- checks a buyer/storefront currency policy plus per-buy and aggregate exposure caps;
- journals create, update, and cancellation idempotently so an uncertain seller outcome is not silently dispatched twice;
- creates the directed campaign projection, media buy, and package records in the buyer account;
- pins the buyer’s zero-fee AdCP entitlement terms for the life of the buy;
- commits the authorized amount to the campaign ledger after the seller accepts or begins processing the buy; and
- records dark alpha usage at zero billable amount.
get_media_buys and
get_media_buy_delivery therefore remain addressable with the external buyer’s
AdCP ID without making the seller’s ID the buyer-account primary key.
Current reporting behavior
get_media_buy_delivery is live read-through: Interchange calls the seller, returns
the current delivery response, and opportunistically records realized spend against
the pinned zero-fee entitlement ledger. The alpha does not promise a cached time series, change
webhooks, scheduled delivery, or billing UI from that read.
Current eligibility and limits
- The buyer campaign spine is customer-scoped and fail-closed. There is no environment-variable bypass.
- Every enrolled active storefront route creates the governed campaign, contract,
operation, and ledger anchor before dispatch. This includes platform-composed
storefronts and direct social/ad-platform
ADAPTERstorefronts. Wonderstruck ESA is the first live managed-agent proof; adapter routes also require a delegated, advertiser-mapped provider account. - Seller rejection and non-retryable dispatch failures mark the campaign as failed. A temporary source or adapter outage remains pending while Interchange retries for up to six hours, then becomes failed if the retry window ends without a successful dispatch.
- The governed endpoint spine covers
create_media_buy, supportedupdate_media_buyfields, and cancellation. Update/cancel share the pinned policy, durable directed-write journal, budget-delta caps, SCD2 activation, dark metering, ledger commitment sync, and ambiguous-outcome fence. Adding packages still returns a capability error. - Strict SDK lifecycle testing and source-specific end-to-end verification are both required before enrolling another seller.
Where the truth lives
AdCP specification
The protocol’s source of truth.
Connect your sales agent
The seller (supply) side — bring your AdCP agent in as a storefront source.
Discover Products
The cross-seller discovery surface.
Create a campaign
How a campaign spawns media buys across sellers.
Budgets and fees
Why the buyer budget is gross while the seller receives net media spend.
Directed campaigns
Seller-managed campaign mirrors — the opposite ownership direction.