call_adcp_agent tool to execute these tasks against any AdCP sales agent.
Task Overview
| Task | Purpose | Response Time |
|---|---|---|
get_products | Discover inventory using natural language | ~60s |
list_authorized_properties | See publisher properties | ~1s |
list_creative_formats | View creative specifications | ~1s |
create_media_buy | Create campaigns | Minutes-Days |
update_media_buy | Modify campaigns | Minutes-Days |
sync_creatives | Upload creative assets | Minutes-Days |
list_creatives | Query creative library | ~1s |
get_media_buy_delivery | Get performance data | ~60s |
Typical Workflow
- Discover products:
get_productswith a natural language brief - Review formats:
list_creative_formatsto understand creative requirements - Create campaign:
create_media_buywith selected products and budget - Upload creatives:
sync_creativesto add creative assets - Monitor delivery:
get_media_buy_deliveryto track performance
Task Reference
get_products
Discover advertising products using natural language briefs.brief(string): Natural language description of campaign requirementsbrand_manifest(object): Brand context - can be{ "url": "https://..." }or inline manifestfilters(object, optional): Filter by channels, budget, delivery_type, format_types
products: Array of matching products withproduct_id,name,description,pricing_options- Each product includes
format_ids(supported creative formats) andtargeting(available targeting)
list_authorized_properties
Get the list of publisher properties this agent can sell.publisher_domains: Array of domain strings the agent is authorized to sell
list_creative_formats
View supported creative specifications.format_types(array, optional): Filter to specific format categories
formats: Array of format specifications with dimensions, requirements, and asset schemas
create_media_buy
Create an advertising campaign from selected products.buyer_ref(string, required): Your unique identifier for this campaignbrand_manifest(object, required): Brand identity - URL or inline manifestpackages(array, required): Products to purchase, each with:buyer_ref: Your identifier for this packageproduct_id: Fromget_productsresponsepricing_option_id: From product’spricing_optionsbudget: Amount in dollarsbid_price: Required for auction pricingtargeting_overlay: Additional targeting constraintscreative_idsorcreatives: Creative assignments
start_time(object, required):{ "type": "asap" }or{ "type": "scheduled", "datetime": "..." }end_time(string, required): ISO 8601 datetime
media_buy_id: The created campaign identifierstatus: Current state (oftenpendingfor async approval)packages: Created packages with their IDs
update_media_buy
Modify an existing campaign.media_buy_id(string, required): The campaign to updateupdates(object): Changes to apply - budget_change, end_time, status, targeting, etc.
sync_creatives
Upload and manage creative assets.creatives(array, required): Creative assets to synccreative_id: Your unique identifierformat_id: Object withagent_urlandidfrom format specificationsassets: Asset content (video, image, html, etc.)
assignments(object, optional): Map creative_id to package IDsdry_run(boolean): Preview changes without applyingdelete_missing(boolean): Archive creatives not in this sync
list_creatives
Query the creative library with filtering.get_media_buy_delivery
Retrieve performance metrics for a campaign.delivery: Aggregated metrics (impressions, spend, clicks, etc.)by_package: Breakdown by packagetimeseries: Data points over time if granularity specified
Key Concepts
Brand Manifest
Brand context can be provided in two ways: URL reference (recommended):Format IDs
Creative format identifiers are structured objects:agent_url specifies which creative agent defines the format. Use https://creative.adcontextprotocol.org for standard IAB formats.
Pricing Options
Products includepricing_options array. Each option has:
pricing_option_id: Use this increate_media_buypricing_model: “cpm”, “cpm-auction”, “flat-fee”, etc.price: Base price (for fixed pricing)floor: Minimum bid (for auction)
bid_price in your package.
Asynchronous Operations
Operations likecreate_media_buy and sync_creatives may require human approval. The response includes:
status: "pending"- Operation awaiting approvaltask_id- For tracking async progress
Error Handling
Common error patterns:- 400 Bad Request: Invalid parameters - check required fields
- 401 Unauthorized: Invalid or missing authentication token
- 404 Not Found: Invalid product_id, media_buy_id, or creative_id
- 422 Validation Error: Schema validation failure - check field types