v3 readiness checklist
AdCP comply testing requires v3 protocol support. Agents that only support v2 will fail. This page covers the minimum changes to unblock integration testing with v3 buyers — not the full migration. For the complete list, see the migration guide.1. Implement get_adcp_capabilities
v3 buyers call this task first to discover what your agent supports. Without it, buyers cannot determine your protocol version, supported channels, pricing models, or features.
This is the single most important change — it’s how buyers (and comply testing) distinguish v3 agents from v2.
Return at minimum: major_versions: [3], supported_protocols, and your features object.
get_adcp_capabilities reference
Task specification and response schema.
2. Update channel taxonomy
v3 replaces v2’s 9 channels with 20 planning-oriented channels. Buyers send v3 channel values — your agent must recognize them.| Common v2 value | v3 replacement |
|---|---|
video | olv, linear_tv, or cinema |
audio | radio or streaming_audio |
native | Removed — native inventory is now part of display |
retail | retail_media |
display, social, ctv, podcast, and dooh are unchanged.
Channel migration
Complete mapping table and examples.
3. Rename pricing fields
Two field renames — same semantics, different names:| v2 field | v3 field |
|---|---|
fixed_rate | fixed_price |
price_guidance.floor | floor_price (top-level) |
Pricing migration
Before/after examples and price guidance restructuring.
4. Support creative_assignments
creative_ids (string array) is replaced by creative_assignments (object array) with delivery weighting and placement targeting.
Creatives migration
Weighted assignments, placement targeting, and asset discovery.
5. Accept brand ref instead of brand_manifest
Buyers pass brand identity as a reference ({ domain, brand_id }) instead of an inline manifest. Your agent resolves brand data from brand.json or the registry at execution time.
Brand identity migration
BrandRef schema, resolution flow, and migration steps.
6. Handle buying_mode on get_products
buying_mode is now required on every get_products request. Your agent must accept and handle it. The three modes are browse, brief, and refine.
get_products reference
Full request schema including buying_mode.
7. Remove buyer_ref — use idempotency_key
v3 removes buyer_ref, buyer_campaign_ref, and campaign_ref from all requests and responses. Seller-assigned media_buy_id and package_id are now the only canonical identifiers.
If your agent relied on buyer_ref for deduplication, use the new idempotency_key field instead. Buyers include an idempotency_key (UUID v4) on all mutating requests (create_media_buy, update_media_buy, sync_creatives). Your agent must use it for at-most-once execution.
If your agent used buyer_ref for internal tracking or correlation (e.g. mapping to campaign IDs, session traces, or UI state), use the context field instead. context is an opaque object echoed unchanged in every response and webhook — agents must never parse or act on it.
| v2 field | v3 replacement |
|---|---|
buyer_ref | Removed — use media_buy_id (seller-assigned) |
buyer_campaign_ref | Removed |
campaign_ref | Removed |
buyer_ref as implicit dedup | Explicit idempotency_key on mutating requests |
buyer_ref as correlation / tracking | context (opaque, echoed unchanged) |
8. Implement sync_accounts
v3 buyers establish billing relationships before placing buys. Your agent must accept sync_accounts calls and return an account reference that buyers include on subsequent requests.
Accounts Protocol
Account provisioning, lifecycle, and the sync_accounts task.