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

# Required tasks by protocol

> Consolidated reference of required and optional tasks for each AdCP protocol, organized by agent role.

# Required tasks by protocol

Each AdCP protocol defines tasks that agents implement depending on their role. This page consolidates the requirements from each protocol specification into a single reference.

**Legend**: **Required** — the specification mandates implementation. **Conditional** — required when the agent has a specific capability. **Optional** — the specification recommends but does not mandate.

Some tasks span protocols. For example, `list_creative_formats` and `sync_creatives` are defined in the Creative Protocol but also implemented by Media Buy sales agents. These appear under both protocols with a note indicating the source.

## Shared

Every AdCP agent, regardless of protocol, implements:

| Task | Requirement | Reference |
| - | - | - |
| `get_adcp_capabilities` | Required | [Capability discovery](/dist/docs/3.1.24/protocol/get_adcp_capabilities) |

Caller-scope RBAC introspection is not a standalone task. Sellers that support scope introspection return a per-account `authorization` object on `sync_accounts` and `list_accounts` responses. See [Accounts Protocol — Caller authorization](/dist/docs/3.1.24/accounts/overview#caller-authorization).

AdCP task lifecycle state is application-layer state, not MCP-native or A2A-native task state. 3.x sellers MAY advertise non-colliding AdCP aliases for polling and reconciliation: `get_task_status` for legacy `tasks/get`, and `list_tasks` for legacy `tasks/list`. These aliases are optional compatibility surfaces in 3.x; callers MUST continue to support the legacy names through the 3.x line. Alias and legacy request payloads use the same snake\_case shape, including the optional `account` scope used to keep task visibility within the caller's authenticated account + principal pair.

## Media Buy Protocol

### Sales agent (seller)

| Task | Requirement | Notes |
| - | - | - |
| `get_products` | Required | Inventory discovery |
| `list_creative_formats` | Required | Format specifications (Creative Protocol task) |
| `create_media_buy` | Required | Campaign creation and order confirmation |
| `update_media_buy` | Required | Budget, targeting, pause, cancel |
| `get_media_buys` | Required | Operational state retrieval |
| `get_media_buy_delivery` | Required | Delivery metrics at the package level; `reporting_capabilities` MUST be included on every product |
| `provide_performance_feedback` | Required | Accept buyer optimization signals |
| `sync_creatives` | Conditional | Required when the sales agent hosts a creative library (Creative Protocol task) |
| `list_creatives` | Optional | Creative catalog browsing (Creative Protocol task) |
| `sync_catalogs` | Optional | Product/inventory catalog sync |
| `sync_event_sources` | Optional | Conversion tracking setup |
| `log_event` | Conditional | Required when event sources are configured |
| `sync_audiences` | Optional | First-party CRM audience upload |

Sales agents MUST also support at least one transport (MCP or A2A) and declare `media_buy` in `supported_protocols`.

**Reference**: [Media Buy Specification](/dist/docs/3.1.24/media-buy/specification) · [Seller integration guide](/dist/docs/3.1.24/building/operating/seller-integration)

### Orchestrator (buyer)

Orchestrators are not MCP/A2A servers — they call sales agent tasks. Conformant orchestrators MUST:

1. Authenticate with sales agents
2. Include required fields per request schemas
3. Handle asynchronous task-level responses (`submitted`, `working`, `input-required`) and webhook delivery of completion artifacts
4. Use `media_buy_id` for all subsequent operations
5. Respect `creative_deadline` for creative uploads

**Reference**: [Media Buy Specification — Orchestrator conformance](/dist/docs/3.1.24/media-buy/specification#orchestrator-conformance)

## Creative Protocol

### Creative agent

| Task | Requirement | Notes |
| - | - | - |
| `list_creative_formats` | Required | Format discovery with technical specs |
| `list_transformers` | Conditional | Required when the agent advertises `creative.supports_transformers: true` |
| `build_creative` | Optional | Generation, transformation, or library retrieval |
| `preview_creative` | Optional | Preview rendering |
| `list_creatives` | Conditional | Required when `has_creative_library: true` |
| `sync_creatives` | Conditional | Required when the agent accepts creative uploads |
| `get_creative_delivery` | Optional | Variant-level delivery metrics |

Creative agents MUST return authoritative format definitions only for formats they own.

**Reference**: [Creative Specification](/dist/docs/3.1.24/creative/specification)

## Signals Protocol

### Signal agent

| Task | Requirement | Notes |
| - | - | - |
| `get_signals` | Required | Signal discovery |
| `activate_signal` | Required | Signal activation on decisioning platforms |

Signal agents MUST enforce access control for private signals and activation keys.

**Reference**: [Signals Specification](/dist/docs/3.1.24/signals/specification)

## Brand Protocol

### Brand agent

| Task | Requirement | Notes |
| - | - | - |
| `get_brand_identity` | Required | Core identity is public; authorized callers get deeper data |
| `get_rights` | Conditional | Required when the agent manages brand rights |
| `acquire_rights` | Conditional | Required when the agent manages brand rights |
| `update_rights` | Conditional | Required when the agent manages brand rights |
| `creative_approval` | Conditional | Required when the agent reviews AI-generated content |

Brand agents MUST declare `brand` in `supported_protocols`.

**Reference**: [Brand Protocol](/dist/docs/3.1.24/brand-protocol) · [Building a brand agent](/dist/docs/3.1.24/brand-protocol/building-a-brand-agent)

## Accounts Protocol

### Any agent accepting accounts

| Task | Requirement | Notes |
| - | - | - |
| `sync_accounts` | Conditional | Buyer-declared accounts (`require_operator_auth: false`) — buyer declares brand/operator pairs; account-id namespaces may use this only for settings updates unless a future explicit capability declares provisioning |
| `list_accounts` | Conditional / recommended | Account-id namespaces (`require_operator_auth: true`) MUST expose it when a credential can access multiple accounts and SHOULD return a singleton otherwise. Buyer-declared-account sellers (`require_operator_auth: false`) SHOULD expose it as the cold-start recovery read for stateless buyers. |
| `sync_governance` | Conditional | Required when the buyer uses campaign governance |
| `report_usage` | Conditional | Required when the agent charges for services |
| `get_account_financials` | Optional | Financial summary per account |

Agents MUST implement at least one of `sync_accounts` or `list_accounts` depending on their account model. An agent MAY implement both. Buyer-declared-account sellers SHOULD implement both: `sync_accounts` establishes the relationship, while `list_accounts` lets a stateless buyer recover the seller's acknowledged `(brand, operator, sandbox)` portfolio without already possessing the natural keys it lost.

**Reference**: [Accounts Protocol](/dist/docs/3.1.24/accounts/overview)

## Governance: Campaign

### Governance agent

| Task | Requirement | Notes |
| - | - | - |
| `sync_plans` | Required | Plan creation and amendment |
| `check_governance` | Required | Validation at purchase, modification, and delivery phases |
| `report_plan_outcome` | Required | Outcome reporting and budget commitment |
| `get_plan_audit_logs` | Required | Audit trail retrieval |

**Reference**: [Campaign Governance Specification](/dist/docs/3.1.24/governance/campaign/specification)

## Governance: Property

### Governance agent

| Task | Requirement | Notes |
| - | - | - |
| `create_property_list` | Required | List creation with filters |
| `get_property_list` | Required | Resolved property retrieval |
| `update_property_list` | Required | List modification |
| `delete_property_list` | Required | List removal |
| `list_property_lists` | Required | List enumeration |
| `validate_property_delivery` | Optional | Post-campaign compliance validation |

**Reference**: [Property Governance Specification](/dist/docs/3.1.24/governance/property/specification)

## Governance: Collection

### Governance agent

| Task | Requirement | Notes |
| - | - | - |
| `create_collection_list` | Required | List creation with collection sources and filters |
| `get_collection_list` | Required | Resolved collection retrieval |
| `update_collection_list` | Required | List modification |
| `list_collection_lists` | Required | List enumeration |
| `delete_collection_list` | Required | List removal |

**Reference**: [Collection Governance](/dist/docs/3.1.24/governance/collection)

## Governance: Content Standards

### Content standards agent

| Task | Requirement | Notes |
| - | - | - |
| `create_content_standards` | Required | Standards creation |
| `get_content_standards` | Required | Standards retrieval |
| `list_content_standards` | Required | Standards enumeration |
| `update_content_standards` | Required | Standards modification |
| `calibrate_content` | Optional | Seller calibration against standards |
| `validate_content_delivery` | Optional | Post-delivery content compliance |
| `get_media_buy_artifacts` | Optional | Artifact retrieval for validation |

**Reference**: [Content Standards](/dist/docs/3.1.24/governance/content-standards)

## Governance: Creative

### Creative governance agent

| Task | Requirement | Notes |
| - | - | - |
| `get_creative_features` | Required | Security scanning, content categorization |

**Reference**: [Creative Governance](/dist/docs/3.1.24/governance/creative)

## Sponsored Intelligence Protocol

### Brand agent

| Task | Requirement | Notes |
| - | - | - |
| `si_get_offering` | Optional | Pre-session offering lookup |
| `si_initiate_session` | Required | Session creation with consent |
| `si_send_message` | Required | Conversational messaging |
| `si_terminate_session` | Required | Session cleanup |

Brand agents MUST declare `sponsored_intelligence` in `supported_protocols`.

**Reference**: [Sponsored Intelligence Specification](/dist/docs/3.1.24/sponsored-intelligence/specification)

## Trusted Match Protocol

TMP uses a different communication model (direct HTTP, not MCP/A2A tasks). See the [TMP Specification](/dist/docs/3.1.24/trusted-match/specification) for message types and conformance requirements.
