Tracked campaigns
Connecting a seller account lets Interchange materialize its campaigns as read-only,management: "tracked" projections. The connected seller or ad
platform remains the source of truth. Interchange periodically reconciles the
projection and provides shared identity, audit, relationship rollups, and live
delivery access around it.
The compatibility API value for these projections is mode: "directed".
directed is a deprecated wire discriminator, not a product name. Use the
management field to understand who operates a campaign:
management: "tracked"means it was mirrored from connected-account activity that Interchange did not author. The projection is read-only.management: "managed"means the campaign uses the canonical Interchange buyer lifecycle. Discover products and create, read, update, pause, or cancel its media buys through the buyer media-buy APIs.
media_buy_id and the storefront’s adcp_media_buy_id.
Tracked connected-account campaigns return
directed.provenance: "connected_account" with connection/account IDs,
provider, mirror freshness, and upstream media-buy identity.
Connect and subscribe an account
First connect the official adapter and map its discovered account to an advertiser. For an agent-driven setup:- Call
list_storefronts, thenconnect_storefrontto obtain the human OAuth handoff URL. - Call
list_storefront_connectionsandlist_storefront_connection_accountsto choose a buyable account. - Read
list_storefront_connection_account_mappings. If needed, callmap_storefront_connection_account_to_advertiserwith the intended advertiser. - Call
subscribe_directed_campaignswith the mapped connection and account IDs to start the read-only mirror.
backfillStart, lastSyncedAt, lastSyncStatus,
lastSyncError, and mirrored/retired/skipped counts. Read the same state later
with:
backfillStart is a fixed metadata-history boundary, not a progress meter. A
subscription remains durable when enumeration is unsupported or temporarily
unhealthy; the status reports ERROR and the worker retries. Existing valid
mirrors survive a failed or incomplete snapshot.
When a broad account read omits a known nonterminal campaign, Interchange
performs a bounded direct read before retiring its projection. A complete
terminal response preserves campaign and package history even if the provider
returns no packages. A failed or incomplete direct read retains the last valid
mirror.
To stop mirroring, call unsubscribe_directed_campaigns. Interchange pauses
the sweep and retires local projections; it does not delete campaigns from the
seller platform.
Registered AdCP storefront sources
An enrolled buyer may project a registered third-party AdCP storefront source into the same connection plane. Register source credentials, discover the source account withlist_available_accounts, map it to an advertiser, then
call connect_adcp_storefront:
connectionId and connectionAccountId; use them with
the normal subscribe, subscription-status, campaign-read, and delivery-read
operations. The operation accepts only sources already registered on an active
storefront. It never accepts an arbitrary endpoint URL or raw secret.
For registered sellers, a snapshot is complete only when every requested page
returns boolean pagination.has_more, every cursor advances, every buy carries
a valid ISO currency, and any returned account ID matches the pinned account.
Incomplete snapshots never retire an existing projection.
List and inspect mirrors
Use the shared campaign surface and compatibility mode filter:GET /api/v2/buyer/campaigns/{campaignId} returns the tracked campaign and its
single mirrored media buy. Discovery, execute, pause, reactivate, and ordinary
campaign mutations reject tracked projections.
To prioritize a fresh upstream snapshot without changing the seller, send the
refresh-only compatibility request:
Relationship rollup
Scale lives on the connected-account relationship rather than the default campaign list. Each account may return acampaignRollup:
Money never rolls up across accounts because accounts on one connection may
use different currencies.
Presences: audiences and event sources
Connected accounts may expose first-party audiences and event sources as account presences. UseGET /api/v2/buyer/storefront-connections/{connectionId}/accounts/{accountId}/presences
or list_account_presences. This is a read-only discovery surface; it does not
sync an audience or authorize a provider mutation.
Read delivery through the seller
Use the normal campaign delivery endpoint:get_media_buy_delivery. Raw payloads and time series are not cached. Only the
latest aggregate media-buy/package metrics, exact requested window, and refresh
time are persisted. Subscription and metadata sweeps never pull delivery.
If dates are omitted, the read requests the one-year window through yesterday.
Provider window limits may cause Interchange to split the request into
consecutive chunks before merging aggregate results.
Errors and recovery
FEATURE_NOT_ENABLED: ask the Interchange account team about read-only alpha enrollment. Do not call a provider-specific endpoint as a bypass.- Account or mapping not found: re-list the official connection and discovered accounts, then use only returned IDs.
lastSyncStatus: "ERROR": inspect safeerrorCode,errorField,errorReason, andupstreamCodefields. Reconnect only for authentication or authorization failures; retry provider-shape or availability failures.mirrored: 0with successful sync is an empty eligible history window, not a failed backfill.
Alpha boundaries
- The connected-account surface is subscription, mirror, refresh, presence, relationship-rollup, and delivery read-only.
- Campaigns created or managed through Interchange use the canonical buyer product and media-buy lifecycle, not a connected-account campaign write path.
- Change webhooks, scheduled delivery/export, invoice-grade reporting, and BigQuery delivery history are not part of this alpha.
- Connected-account feature eligibility never subscribes an account and never grants authority to mutate its campaigns.