> ## 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.

# Ad platform compatibility

> Versioned public mappings between AdCP and provider-native advertising APIs.

These pages publish the compatibility contract: how each claim is classified,
which current-code surfaces exist, what is certified or blocked, what has
account-bound proof, and what remains unavailable. A callable surface is not by
itself a claim of safe or certified execution. The implementation machinery,
credentials, raw evidence, and reconciliation heuristics remain private.

<Note>
  The catalog was last updated **2026-08-16**. Provider accounts,
  permissions, markets, and beta access can narrow the effective surface.
</Note>

<CardGroup cols={2}>
  <Card title="OpenAI Ads" icon="link" href="/v2/guides/ad-platform-compatibility/openai-ads">
    OpenAI Ads maps an AdCP media buy to a campaign, one or more ad groups, and ads. Both current OpenAI creative types and impression-, click-, and conversion-optimized buying are implemented.
  </Card>

  <Card title="Meta Ads" icon="link" href="/v2/guides/ad-platform-compatibility/meta">
    Meta Ads maps AdCP media buys to campaigns, packages to ad sets, and creative assignments to ads across the governed Facebook and Instagram placement catalog.
  </Card>

  <Card title="Snap Ads" icon="link" href="/v2/guides/ad-platform-compatibility/snap">
    Snap Ads maps AdCP media buys to campaigns, packages to ad squads, and creative assignments to ads and creatives. Three product families and two ordinary creative formats have deterministic/static round-trip coverage; this is not provider-observed full-lifecycle proof or fresh provider eligibility.
  </Card>

  <Card title="Pinterest Ads" icon="link" href="/v2/guides/ad-platform-compatibility/pinterest">
    Pinterest Ads maps AdCP media buys to campaigns, packages to ad groups, and creative assignments to ads backed by Pins. Current code classifies seven product families as executable through deterministic contract coverage; this is not fresh provider eligibility. Catalog sales and Idea Pins remain explicitly blocked.
  </Card>

  <Card title="Amazon Ads" icon="link" href="/v2/guides/ad-platform-compatibility/amazon">
    Amazon Ads is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="CitrusAd" icon="link" href="/v2/guides/ad-platform-compatibility/citrusad">
    CitrusAd is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="Criteo Retail Media" icon="link" href="/v2/guides/ad-platform-compatibility/criteo">
    Criteo Retail Media is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="Google Ads" icon="link" href="/v2/guides/ad-platform-compatibility/google">
    Google Ads is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="LinkedIn Ads" icon="link" href="/v2/guides/ad-platform-compatibility/linkedin">
    LinkedIn Ads has a partial 16-flow static planning denominator. Four products are ordinary current-code classifications; six remain blocked. Lead Gen implementation and exact local readback exist only behind a protected exact-SHA canary gate, so ordinary buyer discovery and execution remain dark. Operation rows distinguish callable surfaces from certified behavior, and none implies fresh provider eligibility.
  </Card>

  <Card title="Reddit Ads" icon="link" href="/v2/guides/ad-platform-compatibility/reddit">
    Reddit Ads is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="Spotify Ads" icon="link" href="/v2/guides/ad-platform-compatibility/spotify">
    Spotify Ads is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="TikTok Ads" icon="link" href="/v2/guides/ad-platform-compatibility/tiktok">
    TikTok Ads is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>

  <Card title="Universal Ads" icon="link" href="/v2/guides/ad-platform-compatibility/universal-ads">
    Universal Ads is included from the current direct-adapter catalog. Product rows are current-code classifications; operation rows cover the canonical buyer-facing denominator and distinguish callable, absent, and safety-blocked surfaces. None is promoted to deterministic provider certification or fresh account eligibility.
  </Card>
</CardGroup>

<Note>
  AudioStack is intentionally outside this direct media-buy adapter denominator.
  Its separate creative-only surface and limitations are documented in
  [AudioStack creative-tool compatibility](/v2/guides/ad-platform-compatibility/audiostack-creative).
</Note>

## Public contract boundary

These pages publish mapping semantics, limitations, market scope, evidence
state, upstream sources, and public review endpoints. They intentionally exclude
credentials, raw fixtures and logs, provider account IDs, customer data,
reconciliation or security heuristics, private canary configuration, and
unreleased roadmap. A public staging endpoint identifies a review surface; it
does not grant access or authorize a mutation.

## How to read the mapping

1. **Start with a provider-observed flow.** A provider creation path counts in
   the denominator even when Interchange has not modeled or implemented it.
   Pages say when that denominator is partial or not certified; an execution
   registry alone is never presented as complete provider coverage.
2. **Classify the launch choice.** A materially different objective,
   destination, inventory, optimization, billing, publication, or measurement
   contract becomes a wholesale product archetype. An audience signal, event
   source, catalog, form, identity, targeting or delivery overlay, or creative
   choice remains a binding on that archetype, not another product row.
3. **Build the exact execution package.** The archetype fixes the provider
   objective, optimization, and billing base. Planning then binds the selected
   account's compatible signals, activation resources, overlays, creative,
   budget, bid, and flight. Missing or ambiguous inputs remain explicit.
4. **Keep lifecycle claims independent.** Implemented means the write/read path
   exists. Deterministically certified means static contract tests pass. Fresh
   signed live evidence means the exact paused package was recently proven
   against the provider with readback and cleanup. Currently eligible means the
   selected account passes its live permission, market, resource, and feature
   checks now.

## Evidence and status model

| State                                       | Meaning                                                                                                                                                                              |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `implemented`                               | The adapter has an ordinary provider write/read path.                                                                                                                                |
| `surface_present`                           | A callable adapter method exists in current code; this contract does not promote method presence to certified provider behavior.                                                     |
| `deterministic_contract`                    | Static tests prove the specific code-owned classifications and fail-closed boundaries named by the page; this is not a live provider result.                                         |
| fresh signed live evidence                  | Dated, signed, account- and fixture-bound proof covers the exact requested package, provider readback, no-spend result, and cleanup. It expires after 30 days; a newer failure wins. |
| `account_check_required`                    | The public contract cannot claim present eligibility; the selected account must pass current permissions, markets, resource-readiness, and provider-feature checks.                  |
| `canary_only`                               | Available only through a governed, account-bound proof path.                                                                                                                         |
| `provider_limited`                          | The provider or selected account restricts the capability.                                                                                                                           |
| `activation_blocked`                        | A callable code surface exists, but Interchange blocks activation because a local authority, safety, or result-integrity requirement is not yet satisfied.                           |
| `safety_blocked`                            | A callable read or write surface exists, but a known local correctness defect prevents it from being presented as safe.                                                              |
| `catalog_declared`                          | Current code declares the format, but this public contract has not certified its ordinary write/read path.                                                                           |
| `blocked` / `declared_not_buyer_selectable` | Known to the catalog, but not safely sold or executed.                                                                                                                               |

Compatibility is versioned separately from provider marketing claims. Every
page is review-ready, not provider-endorsed, and links the upstream provider
documentation and public AAO discovery record used during review. The governed
JSON contract generates all 13 pages. Repository tests compare load-bearing
products, operations, formats, placements, targeting declarations, and selected
state assertions with current code where exported denominators exist. They
validate object-mapping and reporting rows for shape, presence, and uniqueness,
but do not compare those rows with complete code-owned denominators; each page
therefore publishes their `drift_enforced: false` provenance gap.
