Skip to main content
Interchange is built on the Ad Context Protocol (AdCP). This page covers the buy side — how Interchange, acting as a buyer platform, consumes AdCP across many sellers.
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.
The external-buyer campaign spine described below is alpha and available only to explicitly enrolled buyer/storefront relationships. It supports governed create, update, cancellation, and live delivery through platform-composed storefronts and direct adapter storefronts. Adding packages during an endpoint update, change webhooks, and scheduled reporting exports are not part of this slice.

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:
Every hosted storefront has one deterministic endpoint at this path. The endpoint is the storefront’s external demand surface for AdCP buyers: it exposes that storefront’s products and directed media-buy lifecycle, rather than performing Interchange’s cross-seller discovery or allocation. The endpoint can exist before a buyer/storefront relationship is enrolled for alpha transactions; write tasks remain fail-closed until the relationship is eligible. Use the normal authenticated AdCP 3.0/3.1 task lifecycle:
  1. Call get_adcp_capabilities and get_products on that storefront.
  2. Send create_media_buy with an idempotency_key, brand identity, flight, currency, and one or more explicitly budgeted packages.
  3. Use the returned media_buy_id with get_media_buys and get_media_buy_delivery.
The same buyer credential must resolve to an Interchange buyer account. A transacting credential should be scoped to an advertiser. During the alpha, an unscoped credential may resolve by 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.
Zero-billable alpha usage applies to the feature’s usage meter, not to media. The authorized media budget and zero-fee AdCP entitlement still govern the buy. Every caller budget is gross: the all-in amount authorized by the buyer. Pure AdCP access pins a zero fee, so gross and net are equal and the full media budget reaches the seller. Ordinary buyer clearing fees are not inherited on this path; advanced value is governed by entitlements/IUs. The seller never receives buyer terms. See Budgets and fees. The route is dual-keyed. The Interchange campaign/media-buy identity drives contract, governance, and reporting records; the AdCP media-buy identity correlates the public task response and downstream seller object. 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.
Any future non-zero buyer-edge fee requires separate fee-inclusive delivery verification before rollout. The current alpha remains zero-fee and is not an invoice statement.

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 ADAPTER storefronts. 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, supported update_media_buy fields, 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.