> ## 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, [`sync_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/sync_creatives) is defined in the Creative Protocol but may also be implemented by Media Buy sales agents. Canonical format discovery itself is no longer a shared task: each owning surface publishes its declaration directly.

## Shared

Every AdCP agent, regardless of protocol, implements:

| Task                                                                                                  | Requirement | Reference                                                                                                                                                                                                                                         |
| ----------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`get_adcp_capabilities`](/dist/docs/3.2.0-beta.0/protocol/get_adcp_capabilities)                     | Required    | [Capability discovery](/dist/docs/3.2.0-beta.0/protocol/get_adcp_capabilities)                                                                                                                                                                    |
| [`sync_agent_notification_configs`](/dist/docs/3.2.0-beta.0/protocol/sync_agent_notification_configs) | Conditional | Required when `get_adcp_capabilities.adcp.capability_changes.notifications.supported` is `true`; registers caller-scoped agent-level `capabilities.changed` webhooks. Sellers MUST reject registrations without a stable authenticated principal. |

Caller-scope RBAC introspection is not a standalone task. Sellers that support scope introspection return a per-account `authorization` object on [`sync_accounts`](/dist/docs/3.2.0-beta.0/accounts/tasks/sync_accounts) and [`list_accounts`](/dist/docs/3.2.0-beta.0/accounts/tasks/list_accounts) responses. See [Accounts Protocol — Caller authorization](/dist/docs/3.2.0-beta.0/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`](https://adcontextprotocol.org/schemas/3.2.0-beta.0/protocol/get-task-status-request.json) for legacy `tasks/get`, and [`list_tasks`](https://adcontextprotocol.org/schemas/3.2.0-beta.0/protocol/list-tasks-request.json) for legacy `tasks/list`. These aliases remain optional compatibility surfaces generally in 3.x; callers MUST continue to support the legacy names through the 3.x line. The [AdCP A2A Profile Extension v3](/dist/docs/3.2.0-beta.0/building/by-layer/L0/a2a-profile-extension) is the scoped exception: an agent that can return an AdCP Submitted response on that profile MUST expose `get_task_status`, and the A2A caller uses that non-colliding task. 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`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/get_products)                                 | Required    | Inventory discovery                                                                               |
| [`get_adcp_capabilities`](/dist/docs/3.2.0-beta.0/protocol/get_adcp_capabilities)                               | Required    | Agent capabilities; sellable formats remain product-scoped in `get_products`                      |
| [`create_media_buy`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/create_media_buy)                         | Required    | Campaign creation and order confirmation                                                          |
| [`update_media_buy`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/update_media_buy)                         | Required    | Budget, targeting, pause, cancel                                                                  |
| [`get_media_buys`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/get_media_buys)                             | Required    | Operational state retrieval                                                                       |
| [`get_media_buy_delivery`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/get_media_buy_delivery)             | Required    | Delivery metrics at the package level; `reporting_capabilities` MUST be included on every product |
| [`provide_performance_feedback`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/provide_performance_feedback) | Required    | Accept buyer optimization signals                                                                 |
| [`sync_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/sync_creatives)                              | Conditional | Required when the sales agent hosts a creative library (Creative Protocol task)                   |
| [`list_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/list_creatives)                              | Optional    | Creative catalog browsing (Creative Protocol task)                                                |
| [`sync_catalogs`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/sync_catalogs)                               | Optional    | Product/inventory catalog sync                                                                    |
| [`sync_event_sources`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/sync_event_sources)                     | Optional    | Conversion tracking setup                                                                         |
| [`log_event`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/log_event)                                       | Conditional | Required when event sources are configured                                                        |
| [`sync_audiences`](/dist/docs/3.2.0-beta.0/media-buy/task-reference/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.2.0-beta.0/media-buy/specification) · [Seller integration guide](/dist/docs/3.2.0-beta.0/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.2.0-beta.0/media-buy/specification#orchestrator-conformance)

## Creative Protocol

### Creative agent

| Task                                                                                             | Requirement | Notes                                                                          |
| ------------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------------------------------------ |
| [`get_adcp_capabilities`](/dist/docs/3.2.0-beta.0/protocol/get_adcp_capabilities)                | Required    | Canonical creative capability discovery through `creative.supported_formats[]` |
| [`list_transformers`](/dist/docs/3.2.0-beta.0/creative/task-reference/list_transformers)         | Conditional | Required when the agent advertises `creative.supports_transformers: true`      |
| [`build_creative`](/dist/docs/3.2.0-beta.0/creative/task-reference/build_creative)               | Optional    | Generation, transformation, or library retrieval                               |
| [`preview_creative`](/dist/docs/3.2.0-beta.0/creative/task-reference/preview_creative)           | Optional    | Preview rendering                                                              |
| [`list_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/list_creatives)               | Conditional | Required when `has_creative_library: true`                                     |
| [`sync_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/sync_creatives)               | Conditional | Required when the agent accepts creative uploads                               |
| [`get_creative_delivery`](/dist/docs/3.2.0-beta.0/creative/task-reference/get_creative_delivery) | Optional    | Variant-level delivery metrics                                                 |

Creative agents MUST publish accurate canonical capability declarations. Exact publisher-format claims carry publisher identity; generic claims carry an honest parameter envelope.

**Reference**: [Creative Specification](/dist/docs/3.2.0-beta.0/creative/specification)

## Signals Protocol

### Signal agent

| Task                                                                       | Requirement | Notes                                      |
| -------------------------------------------------------------------------- | ----------- | ------------------------------------------ |
| [`get_signals`](/dist/docs/3.2.0-beta.0/signals/tasks/get_signals)         | Required    | Signal discovery                           |
| [`activate_signal`](/dist/docs/3.2.0-beta.0/signals/tasks/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.2.0-beta.0/signals/specification)

## Brand Protocol

### Brand agent

| Task                                                                                    | Requirement | Notes                                                       |
| --------------------------------------------------------------------------------------- | ----------- | ----------------------------------------------------------- |
| [`get_brand_identity`](/dist/docs/3.2.0-beta.0/brand-protocol/tasks/get_brand_identity) | Required    | Core identity is public; authorized callers get deeper data |
| [`get_rights`](/dist/docs/3.2.0-beta.0/brand-protocol/tasks/get_rights)                 | Conditional | Required when the agent manages brand rights                |
| [`acquire_rights`](/dist/docs/3.2.0-beta.0/brand-protocol/tasks/acquire_rights)         | Conditional | Required when the agent manages brand rights                |
| [`update_rights`](/dist/docs/3.2.0-beta.0/brand-protocol/tasks/update_rights)           | Conditional | Required when the agent manages brand rights                |

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

Creative approval is delivered to the `approval_webhook` declared by
[`acquire_rights`](/dist/docs/3.2.0-beta.0/brand-protocol/tasks/acquire_rights); its
`creative-approval-request.json` shape is a webhook payload, not an AdCP task.

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

## Accounts Protocol

### Any agent accepting accounts

| Task                                                                                      | Requirement               | Notes                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------------------------------------------------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`sync_accounts`](/dist/docs/3.2.0-beta.0/accounts/tasks/sync_accounts)                   | Conditional               | Buyer-declared accounts (`require_operator_auth: false`) use this when the buyer must select billing, terms, sandbox setup, notifications, or other settings before use. It MAY be omitted only for unambiguous lazy provisioning from the natural key when [`list_accounts`](/dist/docs/3.2.0-beta.0/accounts/tasks/list_accounts) is exposed. Account-id namespaces may use it only for settings updates unless a future explicit capability declares provisioning. |
| [`list_accounts`](/dist/docs/3.2.0-beta.0/accounts/tasks/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 and MUST expose it when they lazily provision instead of implementing `sync_accounts`.                                                                                                  |
| [`sync_governance`](/dist/docs/3.2.0-beta.0/accounts/tasks/sync_governance)               | Conditional               | Required when the buyer uses campaign governance                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [`report_usage`](/dist/docs/3.2.0-beta.0/accounts/tasks/report_usage)                     | Conditional               | Required when the agent charges for services                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [`get_account_financials`](/dist/docs/3.2.0-beta.0/accounts/tasks/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. A buyer-declared seller that exposes only `list_accounts` is conformant only when it lazily provisions on the first natural-key account-scoped request and can determine every required account setting without additional buyer input.

**Reference**: [Accounts Protocol](/dist/docs/3.2.0-beta.0/accounts/overview)

## Governance: Campaign

### Governance agent

| Task                                                                                           | Requirement | Notes                                                     |
| ---------------------------------------------------------------------------------------------- | ----------- | --------------------------------------------------------- |
| [`sync_plans`](/dist/docs/3.2.0-beta.0/governance/campaign/tasks/sync_plans)                   | Required    | Plan creation and amendment                               |
| [`check_governance`](/dist/docs/3.2.0-beta.0/governance/campaign/tasks/check_governance)       | Required    | Validation at purchase, modification, and delivery phases |
| [`report_plan_outcome`](/dist/docs/3.2.0-beta.0/governance/campaign/tasks/report_plan_outcome) | Required    | Outcome reporting and budget commitment                   |
| [`get_plan_audit_logs`](/dist/docs/3.2.0-beta.0/governance/campaign/tasks/get_plan_audit_logs) | Required    | Audit trail retrieval                                     |

**Reference**: [Campaign Governance Specification](/dist/docs/3.2.0-beta.0/governance/campaign/specification)

## Governance: Property

### Governance agent

| Task                                                                                                            | Requirement | Notes                               |
| --------------------------------------------------------------------------------------------------------------- | ----------- | ----------------------------------- |
| [`create_property_list`](/dist/docs/3.2.0-beta.0/governance/property/tasks/property_lists#create_property_list) | Required    | List creation with filters          |
| [`get_property_list`](/dist/docs/3.2.0-beta.0/governance/property/tasks/property_lists#get_property_list)       | Required    | Resolved property retrieval         |
| [`update_property_list`](/dist/docs/3.2.0-beta.0/governance/property/tasks/property_lists#update_property_list) | Required    | List modification                   |
| [`delete_property_list`](/dist/docs/3.2.0-beta.0/governance/property/tasks/property_lists#delete_property_list) | Required    | List removal                        |
| [`list_property_lists`](/dist/docs/3.2.0-beta.0/governance/property/tasks/property_lists#list_property_lists)   | Required    | List enumeration                    |
| [`validate_property_delivery`](/dist/docs/3.2.0-beta.0/governance/property/tasks/validate_property_delivery)    | Optional    | Post-campaign compliance validation |

**Reference**: [Property Governance Specification](/dist/docs/3.2.0-beta.0/governance/property/specification)

## Governance: Collection

### Governance agent

| Task                                                                                                                    | Requirement | Notes                                             |
| ----------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------- |
| [`create_collection_list`](/dist/docs/3.2.0-beta.0/governance/collection/tasks/collection_lists#create_collection_list) | Required    | List creation with collection sources and filters |
| [`get_collection_list`](/dist/docs/3.2.0-beta.0/governance/collection/tasks/collection_lists#get_collection_list)       | Required    | Resolved collection retrieval                     |
| [`update_collection_list`](/dist/docs/3.2.0-beta.0/governance/collection/tasks/collection_lists#update_collection_list) | Required    | List modification                                 |
| [`list_collection_lists`](/dist/docs/3.2.0-beta.0/governance/collection/tasks/collection_lists#list_collection_lists)   | Required    | List enumeration                                  |
| [`delete_collection_list`](/dist/docs/3.2.0-beta.0/governance/collection/tasks/collection_lists#delete_collection_list) | Required    | List removal                                      |

**Reference**: [Collection Governance](/dist/docs/3.2.0-beta.0/governance/collection)

## Governance: Content Standards

### Content standards agent

| Task                                                                                                                | Requirement | Notes                                |
| ------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------ |
| [`create_content_standards`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/create_content_standards)   | Required    | Standards creation                   |
| [`get_content_standards`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/get_content_standards)         | Required    | Standards retrieval                  |
| [`list_content_standards`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/list_content_standards)       | Required    | Standards enumeration                |
| [`update_content_standards`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/update_content_standards)   | Required    | Standards modification               |
| [`calibrate_content`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/calibrate_content)                 | Optional    | Seller calibration against standards |
| [`validate_content_delivery`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/validate_content_delivery) | Optional    | Post-delivery content compliance     |
| [`get_media_buy_artifacts`](/dist/docs/3.2.0-beta.0/governance/content-standards/tasks/get_media_buy_artifacts)     | Optional    | Artifact retrieval for validation    |

**Reference**: [Content Standards](/dist/docs/3.2.0-beta.0/governance/content-standards)

## Governance: Creative

### Creative governance agent

| Task                                                                                         | Requirement | Notes                                     |
| -------------------------------------------------------------------------------------------- | ----------- | ----------------------------------------- |
| [`get_creative_features`](/dist/docs/3.2.0-beta.0/governance/creative/get_creative_features) | Required    | Security scanning, content categorization |

**Reference**: [Creative Governance](/dist/docs/3.2.0-beta.0/governance/creative)

## Sponsored Intelligence Protocol

### Brand agent

| Task                                                                                                | Requirement | Notes                         |
| --------------------------------------------------------------------------------------------------- | ----------- | ----------------------------- |
| [`si_get_offering`](/dist/docs/3.2.0-beta.0/sponsored-intelligence/tasks/si_get_offering)           | Optional    | Pre-session offering lookup   |
| [`si_initiate_session`](/dist/docs/3.2.0-beta.0/sponsored-intelligence/tasks/si_initiate_session)   | Required    | Session creation with consent |
| [`si_send_message`](/dist/docs/3.2.0-beta.0/sponsored-intelligence/tasks/si_send_message)           | Required    | Conversational messaging      |
| [`si_terminate_session`](/dist/docs/3.2.0-beta.0/sponsored-intelligence/tasks/si_terminate_session) | Required    | Session cleanup               |

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

**Reference**: [Sponsored Intelligence Specification](/dist/docs/3.2.0-beta.0/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.2.0-beta.0/trusted-match/specification) for message types and conformance requirements.
