Skip to main content
AdCP provides unified task management for tracking all async operations across media-buy and signals domains. This enables state reconciliation, progress monitoring, and webhook integration for long-running operations.

Overview

AdCP operations may complete immediately (~1 second), take processing time (~60 seconds), or require extended execution (minutes to days). Task management provides visibility and control over these async operations regardless of their domain or complexity. Core Tasks:
  • tasks/list - List and filter async operations for state reconciliation
  • tasks/get - Poll specific tasks for status, progress, and results
Key Features:
  • Cross-Domain Coverage: Works for both media-buy and signals operations
  • State Reconciliation: Prevents lost or orphaned operations
  • Webhook Integration: Optional push notifications for completion
  • Progress Tracking: Real-time status updates for active operations
  • Error Recovery: Detailed error information and retry guidance

Task Status Lifecycle

All AdCP operations follow a consistent status progression:

Status Definitions

Status Transitions

Immediate Completion: Simple operations may skip to completed without intermediate states. Working vs Submitted: working indicates active processing with completion expected within 120 seconds, while submitted indicates queued execution that may take much longer.

tasks/list

List and filter async tasks across your account to enable state reconciliation and operation tracking. Response Time: ~1 second (simple database lookup) Request Schema: https://adcontextprotocol.org/schemas/v2/core/tasks-list-request.json Response Schema: https://adcontextprotocol.org/schemas/v2/core/tasks-list-response.json

Request Parameters

Filtering Options

Status and Type Filtering

Domain-Specific Filtering

Date and Context Filtering

Response Structure

Common Use Cases

State Reconciliation

Find all pending operations across domains:

Domain-Specific Monitoring

Track only media-buy operations:

Operations Needing Attention

Lost Connection Recovery

Recover from lost task submissions by examining conversation history:
Then check history[0].data to see original requests and identify your lost task:

tasks/get

Poll a specific task by ID to check status, progress, and retrieve results when complete. Response Time: ~1 second (simple database lookup) Request Schema: https://adcontextprotocol.org/schemas/v2/core/tasks-get-request.json Response Schema: https://adcontextprotocol.org/schemas/v2/core/tasks-get-response.json

Request Parameters

Response Structure

Basic Task Information

Progress Information

Task with Conversation History

Failed Task Errors

Polling Patterns

Basic Polling Loop

Smart Polling with Domain Awareness

Protocol Integration

Task management works consistently across all AdCP protocols.

MCP Integration

A2A Integration

Natural Language

Explicit Skill Invocation

Webhook Integration

For async operations, you can configure webhooks instead of polling. See Protocol Comparison - Push Notifications for protocol differences and Core Concepts - Webhook Reliability for implementation patterns. Webhook trigger conditions: Webhooks fire when the task type supports async, pushNotificationConfig is provided, and the task actually runs asynchronously (initial response is working or submitted).

Error Handling

Common Error Scenarios

  1. Task Not Found: Invalid task ID or access permissions
  2. Invalid Filters: Malformed filter criteria in tasks/list
  3. Pagination Errors: Invalid offset or limit values
  4. Permission Denied: Task exists but user lacks access

Error Response Format

Best Practices

State Reconciliation

  • Run tasks/list with pending filters during application startup
  • Check for old tasks that may be stuck in submitted status
  • Use domain filtering to focus on relevant operation types
  • Include webhook status to understand notification expectations

Performance Optimization

  • Use pagination for accounts with many operations
  • Filter by date ranges to limit results to relevant periods
  • Use include_history: false by default to keep responses lightweight
  • Implement exponential backoff for polling loops

Monitoring and Alerting

  • Monitor input-required tasks for user attention needs
  • Alert on tasks stuck in submitted status beyond expected duration
  • Track failed tasks for error reporting and system health
  • Use domain breakdown to understand operation distribution

Integration Patterns

  • Store task IDs with your application entities for later reference
  • Use webhooks as primary notification mechanism, polling as backup
  • Implement proper error handling for both webhook and polling failures
  • Consider domain-specific polling intervals and timeout values