Operation Types
AdCP operations fall into three categories:1. Synchronous Operations
Return immediately withcompleted or failed:
| Operation | Description |
|---|---|
get_adcp_capabilities | Agent capability discovery |
list_creative_formats | Format catalog |
2. Interactive Operations
May returninput-required before proceeding:
| Operation | Description |
|---|---|
get_products | When brief is vague or needs clarification |
create_media_buy | When approval is required |
3. Asynchronous Operations
Returnworking or submitted and require polling/streaming:
| Operation | Description |
|---|---|
create_media_buy | Creates campaigns with external systems |
sync_creatives | Uploads and processes creative assets |
get_products | Complex inventory searches |
activate_signal | Activates audience segments |
Timeout Configuration
Set reasonable timeouts based on operation type:Human-in-the-Loop Workflows
Design Principles
- Optional by default - Approvals are configured per implementation
- Clear messaging - Users understand what they’re approving
- Timeout gracefully - Don’t block forever on human input
- Audit trail - Track who approved what when
Approval Patterns
Common Approval Triggers
- Budget thresholds: Campaigns over $100K
- New advertisers: First-time buyers
- Policy-sensitive content: Certain industries or topics
- Manual inventory: Premium placements requiring publisher approval
Progress Tracking
Progress Updates
Long-running operations may provide progress information:Displaying Progress
Protocol-Agnostic Patterns
These patterns work with both MCP and A2A.Product Discovery with Clarification
Campaign Creation with Approval
Waiting for Completion
Asynchronous-First Design
Store State Persistently
Don’t rely on in-memory state for async operations:Handle Restarts Gracefully
Resume tracking after orchestrator restarts:Best Practices
- Design async first - Assume any operation could take time
- Persist state - Don’t rely on in-memory tracking
- Handle restarts - Resume tracking on startup
- Implement timeouts - Don’t wait forever
- Show progress - Keep users informed
- Support cancellation - Let users cancel long operations
- Audit trail - Log all status transitions
Next Steps
- Webhooks: See Webhooks for push notifications instead of polling
- Task Lifecycle: See Task Lifecycle for status handling details
- Orchestrator Design: See Orchestrator Design for production patterns