> ## Documentation Index
> Fetch the complete documentation index at: https://agenticadvertisingorg-snap-format-preview-links.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Buyer / brand track

> AdCP buyer track (C1-C4): multi-agent buying orchestration, brand identity protocols, creative workflows, sponsored intelligence, and a buyer agent build project.

# Buyer / brand track (C1–C4)

<Info>
  **Members only** — Requires Basics credential (A1–A3). Four modules, \~105 minutes total.
</Info>

This track teaches you the demand side of AdCP. You'll learn how buyer agents orchestrate across multiple sellers, how brand identity and compliance protocols work, and how creative workflows and Sponsored Intelligence fit together. The track culminates in a build project where you create a working buyer agent.

Completing this track (plus A1–A3) earns the **AdCP practitioner** credential.

***

## C1: Multi-agent buying and media planning

**\~20 min** | Prerequisite: A3

How buyer agents orchestrate across multiple sales agents simultaneously: discovery, portfolio allocation, proposals, and measuring reach across publishers.

### Reading list

<CardGroup cols={2}>
  <Card title="Media buy overview" icon="shopping-cart" href="/docs/media-buy/index">
    The media buy protocol: how agents discover, negotiate, and execute advertising campaigns.
  </Card>

  <Card title="get_products task" icon="magnifying-glass" href="/docs/media-buy/task-reference/get_products">
    Product discovery from multiple sellers — the first step in any buying workflow.
  </Card>

  <Card title="create_media_buy task" icon="receipt" href="/docs/media-buy/task-reference/create_media_buy">
    Campaign creation: manual mode, proposal mode, validation, and approval lifecycle.
  </Card>

  <Card title="Orchestrator design" icon="diagram-project" href="/docs/building/implementation/orchestrator-design">
    Architecture patterns for agents that coordinate across multiple sellers.
  </Card>

  <Card title="Pricing models" icon="tag" href="/docs/media-buy/advanced-topics/pricing-models">
    `pricing_options[]` on products, buyer selects by `pricing_option_id`: CPM, vCPM, CPP, CPA, flat rate, time.
  </Card>

  <Card title="Accountability terms" icon="handshake" href="/docs/media-buy/advanced-topics/accountability">
    `performance_standards`, `measurement_terms`, and `cancellation_policy` — negotiable on guaranteed buys.
  </Card>

  <Card title="Targeting" icon="crosshairs" href="/docs/media-buy/advanced-topics/targeting">
    Targeting options, audience overlays, and geo-targeting.
  </Card>

  <Card title="Version negotiation" icon="code-branch" href="/docs/reference/versioning#version-negotiation">
    Declare `adcp_major_version` on requests; sellers respond with `VERSION_UNSUPPORTED` when incompatible.
  </Card>

  <Card title="Error handling" icon="triangle-exclamation" href="/docs/building/implementation/error-handling">
    Error taxonomy: transient, correctable, terminal. Includes `GOVERNANCE_DENIED`, `TERMS_REJECTED`, `VERSION_UNSUPPORTED`.
  </Card>

  <Card title="Trusted Match Protocol" icon="microchip" href="/docs/trusted-match">
    How your campaigns execute at impression time: context match, identity match, and cross-publisher frequency capping.
  </Card>

  <Card title="TMP Buyer Guide" icon="code" href="/docs/trusted-match/buyer-guide">
    Endpoint integration: responding to Context Match and Identity Match requests, structuring offers, provider registration.
  </Card>

  <Card title="get_media_buys task" icon="list-check" href="/docs/media-buy/task-reference/get_media_buys">
    Operational monitoring: lifecycle state, creative approvals, valid actions, delivery snapshots.
  </Card>
</CardGroup>

### Key concepts

* **Multi-agent buying** — query multiple sellers in parallel, compare, allocate, execute
* **Orchestration pattern** — discover, evaluate, allocate, execute, monitor
* **Order lifecycle** — `pending_creatives` → `pending_start` → `active`; check `valid_actions` from `get_media_buys` before acting. S1 covers the full state machine and recovery
* **Version negotiation** — declare `adcp_major_version` on every request; handle `VERSION_UNSUPPORTED` by selecting a compatible seller or downgrading the payload
* **Pricing selection** — products return `pricing_options[]`; buyer selects one via `pricing_option_id` in `create_media_buy`
* **Negotiated accountability** — for guaranteed buys, propose `measurement_terms` / `performance_standards`; seller accepts, adjusts, or returns `TERMS_REJECTED`. S1 covers the recovery patterns
* **Account required on updates** — `update_media_buy` takes `account` + `media_buy_id`; omitting `account` is a protocol error
* **Audience targeting** — `sync_audiences` for custom segments
* **Impression-time execution** — campaigns activate through TMP at serve time; frequency caps, audience eligibility, and brand suitability are enforced via Identity Match without exposing user data to buyers alongside content context. TMP is an [experimental surface](/docs/reference/experimental-status) in AdCP 3.0 (feature id `trusted_match.core`); the privacy architecture and identity-match details may change between 3.x releases with at least 6 weeks' notice.
* **Account setup** — `sync_accounts` to establish billing before buying

<Card title="Start C1 with Addie" icon="play" href="https://agenticadvertising.org/chat">
  "I'd like to start certification module C1."
</Card>

***

## C2: Brand identity, compliance, and safety

**\~20 min** | Prerequisite: C1

The Brand Protocol (`brand.json`), content standards, and how brand agents enforce guidelines across automated buying.

### Reading list

<CardGroup cols={2}>
  <Card title="Brand protocol" icon="fingerprint" href="/docs/brand-protocol/index">
    Brand identity claims, brand.json discovery, brand hierarchy, and brand agents.
  </Card>

  <Card title="brand.json specification" icon="file-code" href="/docs/brand-protocol/brand-json">
    The brand.json format: identity, logos, colors, guidelines, and agent declarations.
  </Card>

  <Card title="Seller verification" icon="shield-halved" href="/docs/verification/overview">
    How buyer agents verify seller identity and publisher authorization before transacting.
  </Card>

  <Card title="For advertisers" icon="bullhorn" href="/docs/brand-protocol/for-advertisers">
    How advertisers license talent rights through the brand protocol — pricing, scopes, and what you get.
  </Card>

  <Card title="get_rights task" icon="key" href="/docs/brand-protocol/tasks/get_rights">
    Search for licensable talent rights — pricing, availability, and exclusion filtering.
  </Card>

  <Card title="acquire_rights task" icon="handshake" href="/docs/brand-protocol/tasks/acquire_rights">
    License talent rights: generation credentials, rights constraints, revocation, and approval workflows.
  </Card>

  <Card title="update_rights task" icon="rotate" href="/docs/brand-protocol/tasks/update_rights">
    Extend, adjust, or pause an existing rights grant.
  </Card>

  <Card title="For rights holders" icon="shield" href="/docs/brand-protocol/for-rights-holders">
    How rights holders monetize talent through the brand protocol.
  </Card>

  <Card title="Content standards" icon="scale-balanced" href="/docs/governance/content-standards/index">
    How content standards define what's appropriate, how calibration works, and local execution.
  </Card>

  <Card title="calibrate_content task" icon="sliders" href="/docs/governance/content-standards/tasks/calibrate_content">
    Testing whether content meets brand standards before placement.
  </Card>

  <Card title="Policy compliance" icon="shield-halved" href="/docs/media-buy/media-buys/policy-compliance">
    How compliance is enforced during media buy execution.
  </Card>

  <Card title="Creative governance" icon="eye" href="/docs/governance/creative/index">
    Creative quality and compliance governance.
  </Card>

  <Card title="Campaign governance" icon="shield-check" href="/docs/governance/campaign">
    Tie campaigns to media plans: budget authority, multi-party validation, and always-on compliance.
  </Card>

  <Card title="Policy registry" icon="book" href="/docs/governance/policy-registry">
    Community-maintained compliance policies (COPPA, GDPR, HFSS) that brands reference by ID.
  </Card>

  <Card title="Your measurement & verification stack" icon="ruler-combined" href="/docs/reference/known-limitations">
    AdCP's content standards are generation-time brand safety — they do **not** replace your verification vendors. AdCP carries the delivery and usage data your existing IAS, DV, Nielsen, Comscore, and attribution tools consume; you keep those contracts and accreditations. See also the [FAQ](/docs/faq).
  </Card>
</CardGroup>

### Key concepts

* **Brand identity protocol** — `brand.json` at `/.well-known/brand.json` declares identity; buyers use their own brand.json for advertiser identity and sellers' brand.json files for seller identity and signing-key discovery
* **Content standards** — automated compliance checking via MCP-based brand agents
* **The Oracle model** — using AI to evaluate brand safety at scale
* **Supply chain preferences** — suitability, safety, and sustainability requirements
* **Campaign governance** — campaign plans define authorized parameters; `check_governance` validates every transaction before execution, returns a `governance_context` token you attach to the buy envelope, and uses `purchase_type` to scope which rules apply (`media_buy`, `rights_license`, `signal_activation`, `creative_services`)
* **Governance denial recovery** — `GOVERNANCE_DENIED` is a correctable buyer-side decision, not a transport error: fix targeting, creative, or plan reference and retry. S4 goes deeper on the correlation model
* **Policy registry** — shared compliance policies (regulations and standards) referenced by ID, not written per-brand
* **Governance adoption** — governance agents support incremental adoption (audit → advisory → enforce) as an internal configuration, not a protocol field
* **Policy categories** — regulatory regimes (`children_directed`, `fair_housing`, `fair_lending`) that plans declare and governance agents enforce
* **Restricted attributes** — personal data categories (`health_data`, `racial_ethnic_origin`) that must not be used for targeting under applicable policies

<Card title="Start C2 with Addie" icon="play" href="https://agenticadvertising.org/chat">
  "I'd like to start certification module C2."
</Card>

***

## C3: Creative workflows

**\~20 min** | Prerequisite: C2

How creative assets flow through AdCP: `build_creative`, `preview_creative`, `sync_creatives`. Cross-platform adaptation and the Sponsored Intelligence Protocol.

### Reading list

<CardGroup cols={2}>
  <Card title="Creative overview" icon="palette" href="/docs/creative/index">
    The creative protocol: assets, formats, manifests, creative agents.
  </Card>

  <Card title="build_creative task" icon="hammer" href="/docs/creative/task-reference/build_creative">
    Creative generation and transformation.
  </Card>

  <Card title="preview_creative task" icon="eye" href="/docs/creative/task-reference/preview_creative">
    Previewing creatives before deployment.
  </Card>

  <Card title="sync_creatives task" icon="rotate" href="/docs/creative/task-reference/sync_creatives">
    Synchronizing creative assets with publisher platforms.
  </Card>

  <Card title="Generative creative" icon="wand-magic-sparkles" href="/docs/creative/generative-creative">
    AI-generated creative workflows and best practices.
  </Card>

  <Card title="Creative agent pricing" icon="money-bill" href="/docs/creative/implementing-creative-agents#pricing-walkthrough">
    How creative agents charge: pricing discovery, build costs, and billing reconciliation.
  </Card>

  <Card title="Canonical formats" icon="shapes" href="/docs/creative/canonical-formats">
    Product-level `format_options[]`, `format_kind`, and canonical-first validation for 3.1 creative requirements.
  </Card>

  <Card title="Sponsored Intelligence" icon="message-bot" href="/docs/sponsored-intelligence/overview">
    Conversational brand experiences in AI assistants.
  </Card>

  <Card title="SI specification" icon="scroll" href="/docs/sponsored-intelligence/specification">
    The Sponsored Intelligence protocol: sessions, messages, and offerings.
  </Card>
</CardGroup>

### Key concepts

* **Creative lifecycle** — `build_creative`, `preview_creative`, `sync_creatives` — callable on any agent implementing the Creative Protocol, including sales agents
* **Preview modes** — `preview_creative` supports single, batch, and variant requests — choose the mode that fits the workflow (S2 covers the tradeoffs)
* **Cross-platform adaptation** — agents adapt assets across display, video, audio, native, and broadcast formats. In 3.1, sellers may publish canonical `format_options[]`; choose `format_kind` by creative shape, then validate the canonical first and the product's narrowing second. S2 covers the hands-on details
* **Seller-side generation** — sales agents can generate creatives at serve time from a brief provided in the media buy
* **Creative pricing** — creative agents can charge for their services. When they do, `list_creatives` returns `pricing_options` from your account's rate card, and `build_creative` returns the cost incurred. See the [creative pricing specification](/docs/creative/specification#pricing) for details.
* **Sponsored Intelligence** — brands participate in conversational AI with transparency and user control. SI is an [experimental surface](/docs/reference/experimental-status) in AdCP 3.0 (feature id `sponsored_intelligence.core`); session lifecycle and UI components may change between 3.x releases with at least 6 weeks' notice.

### Canonical-format buyer glossary

| Term               | Buyer-track meaning                                                                                                                                                                     |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `format_kind`      | The canonical creative shape a seller accepts, such as `image`, `video_hosted`, or `native_in_feed`. Pick it by the creative you can ship, not by the media channel alone.              |
| `format_options[]` | Product-level creative requirements returned by `get_products`. Each option narrows a canonical with seller-specific sizes, slots, selectors, or production constraints.                |
| `asset_source`     | Who produces the rendered bytes for a canonical asset. Buyers use it to decide whether they upload finished assets or provide a brief/input for seller, publisher, or agent production. |

S2 goes deeper on [authoring manifests](/docs/learning/specialist/creative), `format_option_id` vs creative-agent `capability_id`, and the canonical-first/product-second validation flow.

### Practice exercise

1. **Canonical-format selection from `get_products`** — Given a product response that includes multiple `format_options[]`:
   * List every available `format_kind` and the buyer-visible product constraints that matter for creative routing
   * Select the option that matches the campaign creative shape, using `format_option_id` when the product publishes one
   * State the validation order at a high level: canonical shape first, product narrowing second
   * Review canonical-format `FORMAT_*` entries in `errors[]` before routing: most are non-fatal advisories, while broken placement references require failing closed for that placement

| Advisory code                            | Buyer action                                                                                                                                                                           |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `FORMAT_PROJECTION_FAILED`               | The legacy format still exists, but the SDK could not project it to `format_options[]`. Prefer an explicit canonical option when available; otherwise flag the seller or registry gap. |
| `FORMAT_DECLARATION_DIVERGENT`           | The seller's v1 and v2 declarations disagree. Prefer `format_options[]` for 3.1 routing, and flag the seller declaration mismatch.                                                     |
| `FORMAT_DECLARATION_V1_AMBIGUOUS`        | The v2 declaration cannot safely map back to one v1 named format. Do not invent a v1 fallback; use the canonical path or ask the seller to add `v1_format_ref[]`.                      |
| `FORMAT_OPTION_UNRESOLVED`               | A placement references a missing publisher-catalog option. Fail closed for that placement reference and ask the publisher to fix the catalog.                                          |
| `FORMAT_DECLARATION_V1_LOSSY_MULTI_SIZE` | Some v1 size coverage was dropped from a multi-size v2 declaration. Continue only with the surfaced covered sizes, or choose a fully declared option.                                  |

<Card title="Start C3 with Addie" icon="play" href="https://agenticadvertising.org/chat">
  "I'd like to start certification module C3."
</Card>

***

## C4: Build project — your first buyer agent

**\~45 min** | Prerequisite: C3

Create a working buyer agent that discovers products and executes media buys. Use any AI coding assistant (Claude Code, Cursor, Copilot) with the [`@adcp/sdk`](/docs/building/schemas-and-sdks) SDK, and point it at the [Build a caller](/docs/building/by-layer/L4/build-a-caller) guide — the buyer/caller-side reference for installing the client, discovering capabilities, and handling responses. The skill tested is orchestrating a buying workflow correctly.

<Tip>
  New to running tool calls and reading JSON in a terminal? Do [A2b: Testing your first agent](/docs/learning/foundations/a2b-testing-your-first-agent) first — it walks through initializing an MCP session, reading response fields, and telling errors apart from normal output, which this build project assumes you can do.
</Tip>

### What you'll build

* Account setup with `sync_accounts`
* Product discovery from at least 2 sellers
* Media buy creation with targeting and budget — including a fresh UUID v4 `idempotency_key` per logical buy, and correct retry behavior that resends the identical payload with the same key on network failure (the mechanics of what the seller does with the key — replay, conflict, expired — are taught in [S1: Media buy](/docs/learning/specialist/media-buy))
* Creative sync with at least 1 format
* Campaign monitoring via delivery reporting

### How you'll validate

Your buyer agent is a *caller* — it consumes seller tools rather than exposing them. Validate it by pointing your agent at the public test **seller** (`https://test-agent.adcontextprotocol.org/sales/mcp`) and confirming it drives the full workflow end to end: discovers products, creates a media buy, syncs a creative, and reads delivery.

To see the seller responses your agent must handle, you can inspect the test seller directly. This shows you the shape your buyer agent receives — it does **not** test your agent:

```bash theme={null}
# Inspects the test SELLER's get_products response — the shape your buyer agent must parse.
npx @adcp/sdk@latest test-mcp get_products '{"brief":"your campaign brief"}'
```

See [Build a caller](/docs/building/by-layer/L4/build-a-caller) for client setup and [Validate Your Agent](/docs/building/verification/validate-your-agent) for the storyboard workflow.

### Validating across sellers

Buyer agents don't claim specialisms — specialisms describe what sellers offer. But your buyer agent should handle every specialism it expects to transact against. The storyboards a seller passes (declared via `supported_protocols` and `specialisms` in their `get_adcp_capabilities`) tell you what behaviors to expect.

Review the [Compliance Catalog](/docs/building/compliance-catalog) and note which specialisms your target sellers claim — that's your test matrix.

### Assessment rubric

| Dimension             | Weight | What Addie evaluates                                   |
| --------------------- | ------ | ------------------------------------------------------ |
| Specification quality | 20%    | Can you specify a buying workflow in AdCP terms?       |
| Schema compliance     | 25%    | Agent requests and responses validate against schemas  |
| Error handling        | 15%    | Handles seller errors and async responses              |
| Design rationale      | 20%    | Can you explain orchestration and buying strategy?     |
| Extension ability     | 20%    | Can you extend the agent with new buying capabilities? |

Passing threshold: 70%.

Any AI coding assistant is welcome. The build must demonstrate cross-role interaction.

<Card title="Start C4 with Addie" icon="play" href="https://agenticadvertising.org/chat">
  "I'd like to start certification module C4."
</Card>

***

## What's next

After completing C1–C4, you've earned the **AdCP practitioner** credential. From here you can pursue specialist modules:

* [S1: Media buy](/docs/learning/specialist/media-buy) — transaction flows, pricing, orchestration
* [S2: Creative](/docs/learning/specialist/creative) — asset workflows, format compliance
* [S3: Signals](/docs/learning/specialist/signals) — measurement, attribution, optimization
* [S4: Governance](/docs/learning/specialist/governance) — brand safety, campaign governance, compliance, policy registry
* [S5: Sponsored Intelligence](/docs/learning/specialist/sponsored-intelligence) — conversational brand experiences
