> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose how your storefront gets supply

> Choose an ad-server connection, external sales agent, linked storefront, modular source, or storefront adapter based on the systems you already operate

Every storefront draws inventory from one or more **inventory sources**. The
source path depends on what you already run and which system owns the sell-side
lifecycle. This page is the canonical decision guide for setup.

<Note>
  Your storefront **is** your sales agent to buyers — they call your storefront
  and your Merchandising Agent answers. An external sales-agent **source** is a
  *separate* AdCP agent you registered as upstream supply. Don't confuse the two:
  buyers never see your sources, only your storefront.
</Note>

## Decision table

Start from what you operate today.

| You already run…                                                                                                                 | Pick                     | `executionType`                                       |
| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------- |
| An ad server with a supported direct or Interchange-managed integration — Google Ad Manager, FreeWheel, SpringServe, or CitrusAd | **Ad-server connection** | Managed connection; implementation varies by provider |
| Your own AdCP-compatible sales agent at a URL                                                                                    | **External sales agent** | `AGENT`                                               |
| Wholesale supply from other listed, transacting storefronts                                                                      | **Linked storefront**    | Resolved as `LINKED_STOREFRONT` at runtime            |
| Inventory and execution split across files, back-office systems, or people                                                       | **Modular source**       | `MODULAR_SOURCE`                                      |
| One supported expert provider should run the entire buyer-facing storefront                                                      | **Storefront adapter**   | Storefront `ADAPTER` routing; not an inventory source |

## The five setup paths

The authoritative definition of each family:

> `AGENT` is an external AdCP-compatible sales agent the Merchandising Agent connects to; `MANAGED_SALES_AGENT` is an operator-owned ad server with Interchange-managed sales-agent plumbing; `LINKED_STOREFRONT` is wholesale inventory discovered automatically from the ambient pool of LISTED, transacting storefronts (resolved at runtime, never persisted as a source row); `MODULAR_SOURCE` is a private composed implementation assembled from modules such as avails, booking, trafficking, and reporting. A standard modular recipe such as CitrusAd is presented as an ad-server connection, while custom compositions use the advanced modular-source workflow. Storefront-level `ADAPTER` dispatch is configured on the storefront, not as an inventory source.

### Ad-server connection

Pick this when you own an ad server — Google Ad Manager, FreeWheel,
SpringServe, or CitrusAd — and want to sell its inventory through your
storefront. Buyers transact against your storefront while a supported direct
integration or Interchange-managed sales agent reads the ad server's existing
ad units, placements, and products. The setup surface may hide that
implementation difference because the seller outcome is the same. These
sources use the ad-server connection and
lifecycle endpoints (connect, save config, test, launch, deactivate,
reactivate), not the generic external-agent create flow. Some providers use a
managed ESA tenant; others, including CitrusAd, use a preconfigured private
module recipe. That implementation detail does not change the seller or buyer
experience.

For what each ad server asks for and why, see
[Why Interchange needs access to your ad server](/v2/storefront/inventory-sources/ad-server-access).
See also [Get ad-server connection](/v2/storefront/inventory-sources/tasks/get-ad-server-connection)
and [Replace ad-server config](/v2/storefront/inventory-sources/tasks/replace-ad-server-config).

### External sales agent (`AGENT`)

Pick this when you already run — or want to connect — your own
AdCP-compatible sales agent reachable at a URL. You register it with the source
endpoint, supplying the endpoint URL, protocol (`MCP` or `A2A`), and auth. Your
Merchandising Agent then calls that agent for discovery and media buys. This is
the only family created and updated through the generic inventory-source create
and update flow.

An external sales-agent source can be used two ways:

* **Passthrough:** buyer briefs are sent to your sales agent and it answers live.
  Use this when the upstream agent already knows how to sell and rank its own
  products.
* **Merchandising:** your source exposes raw products/components that
  Interchange caches, then the Merchandising Agent composes buyer-facing
  products from those cached components and your operating instructions.

For merchandising, cache success means Interchange can read stable component
ids, pricing options, formats, publisher properties or other inventory
selectors, delivery type, and execution metadata without making a live source
call during buyer-request composition. If the source cannot provide a usable
component cache, Murph reports that as a cache/readiness complaint; passthrough
brief discovery can still be healthy.

Interchange only attempts wholesale product or signal catalog requests to an
external sales agent when product composition is on and the agent reports AdCP
3.1+ support. With product composition off, the source stays in passthrough:
buyer briefs and media buys call your sales agent live, and component-cache
readiness is not used as a health signal.

See [Create inventory source](/v2/storefront/inventory-sources/tasks/create-inventory-source)
and [Diagnose third-party sales agents](/v2/storefront/inventory-sources/diagnostics).

### Linked storefront (`LINKED_STOREFRONT`)

Pick this when you want supply from other storefronts already transacting on the
Interchange. Linked inventory is discovered automatically from the ambient pool
of LISTED storefronts and resolved at runtime — there is no source row to create
or manage. You participate by being LISTED; matching wholesale inventory surfaces
to your storefront scoped by your own channel and geography.

### Modular (`MODULAR_SOURCE`)

Pick this when inventory and execution do not come from one compliant upstream
agent. A modular source is composed from private modules — an avails feed, a
booking ledger, trafficking, status sync, reporting import — and presents one
buyer-facing surface. Use it when, for example, a publisher sends a periodic
avails file, confirms bookings by hand, and uploads delivery reports after the
campaign ends.

See the [Modular lifecycle guide](/v2/storefront/inventory-sources/modular-lifecycle).

### Storefront adapter (`ADAPTER` routing)

Pick this only when Scope3 supports an expert provider that should dispatch the
whole buyer-facing storefront directly. The adapter is configured on the
storefront itself; it is not an inventory source and cannot be added through an
inventory-source form. This differs from an external AdCP sales agent, which is
private upstream supply behind a storefront, and from a modular source, whose
modules are combined behind the storefront. Adapter availability and lifecycle
capabilities are provider-specific, so do not assume that an adapter automates
booking, creative, or reporting unless its setup explicitly says so.

## Still unsure?

* You operate an ad server and want to sell its inventory → **ad-server connection**.
* You have an AdCP agent at a URL → **external sales agent**.
* You want inventory from the marketplace with nothing to connect → **linked storefront**.
* Your supply is stitched together from feeds and manual steps → **modular**.
* One supported provider should operate the whole storefront → **storefront adapter**.

## Related

<CardGroup cols={2}>
  <Card title="Inventory sources" href="/v2/storefront/inventory-sources/overview" icon="plug">
    Register and manage the sources behind your storefront
  </Card>

  <Card title="Create inventory source" href="/v2/storefront/inventory-sources/tasks/create-inventory-source" icon="plus">
    Register an external AGENT source
  </Card>

  <Card title="Modular lifecycle guide" href="/v2/storefront/inventory-sources/modular-lifecycle" icon="diagram-project">
    Compose a source from avails, booking, and reporting modules
  </Card>

  <Card title="Glossary" href="/v2/concepts/glossary" icon="book-a">
    Ad Server vs Sales Agent, side by side
  </Card>
</CardGroup>
