{"name":"Prebid Sales Agent","description":"AI agent for programmatic advertising campaigns via AdCP protocol","supportedInterfaces":[{"url":"https://gam.test-salesagent.noetis.dev/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"version":"2.0.0","capabilities":{"pushNotifications":false,"extensions":[{"uri":"https://adcontextprotocol.org/schemas/3.1.1/protocols/adcp-extension.json","description":"AdCP protocol version and supported domains","params":{"adcp_version":"3.1.1","protocols_supported":["media_buy"]}}]},"defaultInputModes":["message"],"defaultOutputModes":["message"],"skills":[{"id":"get_adcp_capabilities","name":"get_adcp_capabilities","description":"Get this agent's supported protocols, features, and configuration. Call first to understand what this seller can do.","tags":["capabilities","discovery","adcp"]},{"id":"get_products","name":"get_products","description":"Search available advertising products matching campaign requirements. Returns products with pricing, formats, and delivery options. Use buying_mode='brief' for natural language or 'refine' for proposal negotiation. Products include product_ids needed for create_media_buy.","tags":["products","inventory","catalog","adcp"]},{"id":"list_creative_formats","name":"list_creative_formats","description":"List available creative formats with asset requirements. Returns format_ids needed for sync_creatives.","tags":["creative","formats","specs","discovery","adcp"]},{"id":"list_accounts","name":"list_accounts","description":"List advertiser accounts on this seller. Returns account_ids needed for other operations.","tags":["accounts","billing","discovery","adcp"]},{"id":"sync_accounts","name":"sync_accounts","description":"Create or update advertiser accounts. Idempotent: re-sending the same brand/operator pair updates the existing account.","tags":["accounts","billing","sync","upsert","adcp"]},{"id":"create_media_buy","name":"create_media_buy","description":"Create a new media buy with packages. Each package references a product_id from get_products and a pricing_option_id. Returns media_buy_id for tracking.","tags":["campaign","media","buy","adcp"]},{"id":"update_media_buy","name":"update_media_buy","description":"Update an existing media buy: pause, resume, cancel, or modify packages and budget. Requires revision for optimistic concurrency.","tags":["campaign","update","management","adcp"]},{"id":"get_media_buys","name":"get_media_buys","description":"List media buys with status, packages, and optional delivery snapshots. Filter by media_buy_ids.","tags":["media_buy","status","creative","snapshot","monitoring","adcp"]},{"id":"get_media_buy_delivery","name":"get_media_buy_delivery","description":"Get delivery metrics (impressions, clicks, spend) for active media buys. Returns totals and per-package breakdowns.","tags":["delivery","metrics","performance","monitoring","adcp"]},{"id":"sync_creatives","name":"sync_creatives","description":"Upload or update creative assets for a media buy. Idempotent: re-sending the same creative_id updates it. Returns approval status per creative.","tags":["creative","sync","library","adcp","spec"]},{"id":"list_creatives","name":"list_creatives","description":"List synced creatives with optional filtering by status, format, or media buy.","tags":["creative","library","search","adcp","spec"]},{"id":"list_tasks","name":"list_tasks","description":"List async tasks with optional filtering, sorting, pagination, and history expansion."},{"id":"get_task_status","name":"get_task_status","description":"Get status, progress, and optional result details for an async task."},{"id":"complete_task","name":"complete_task","description":"The transport-agnostic implementation of ``complete_task``."}]}