get_media_buy_delivery
Retrieve comprehensive delivery metrics and performance data for reporting. Response Time: ~60 seconds (reporting query) Request Schema:https://adcontextprotocol.org/schemas/v1/media-buy/get-media-buy-delivery-request.json
Response Schema: https://adcontextprotocol.org/schemas/v1/media-buy/get-media-buy-delivery-response.json
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
media_buy_ids | string[] | No* | Array of publisher media buy IDs to get delivery data for |
buyer_refs | string[] | No* | Array of buyer reference IDs to get delivery data for |
status_filter | string | string[] | No | Filter by status. Can be a single status or array of statuses: "active", "pending", "paused", "completed", "failed", "all". Defaults to ["active"] |
start_date | string | No | Start date for reporting period (YYYY-MM-DD) |
end_date | string | No | End date for reporting period (YYYY-MM-DD) |
media_buy_ids or buyer_refs can be provided. If neither is provided, returns all media buys in the current session context.
Response (Message)
The response includes a human-readable message that:- Summarizes campaign performance and key insights
- Highlights pacing and completion rates
- Provides recommendations based on performance
- Explains any delivery issues or optimizations
- MCP: Returned as a
messagefield in the JSON response - A2A: Returned as a text part in the artifact
Response (Payload)
Field Descriptions
- reporting_period: Date range for the report
- start: ISO 8601 start timestamp
- end: ISO 8601 end timestamp
- currency: ISO 4217 currency code (e.g.,
"USD","EUR","GBP") - aggregated_totals: Combined metrics across all returned media buys
- impressions: Total impressions delivered across all media buys
- spend: Total amount spent across all media buys
- clicks: Total clicks across all media buys (if applicable)
- video_completions: Total video completions across all media buys (if applicable)
- media_buy_count: Number of media buys included in the response
- media_buy_deliveries: Array of delivery data for each media buy
- media_buy_id: Publisher’s media buy identifier
- buyer_ref: Buyer’s reference identifier for this media buy
- status: Current media buy status (
pending,active,paused,completed,failed) - totals: Aggregate metrics for this media buy across all packages
- impressions: Total impressions delivered
- spend: Total amount spent
- clicks: Total clicks (if applicable)
- ctr: Click-through rate (clicks/impressions)
- video_completions: Total video completions (if applicable)
- completion_rate: Video completion rate (completions/impressions)
- by_package: Metrics broken down by package
- package_id: Publisher’s package identifier
- buyer_ref: Buyer’s reference identifier for this package
- impressions: Package impressions
- spend: Package spend
- clicks: Package clicks
- video_completions: Package video completions
- pacing_index: Delivery pace (1.0 = on track, <1.0 = behind, >1.0 = ahead)
- pricing_model: The pricing model used for this package (e.g.,
"cpm","cpcv","cpp","cpc","cpv","vcpm","flat_rate"). This indicates how the package is billed and which metrics are most relevant for optimization. See Pricing Models for details on each model. - rate: The pricing rate for this package in the specified currency. For fixed-rate pricing, this is the agreed rate (e.g., CPM rate of
12.50means $12.50 per 1,000 impressions). For auction-based pricing, this represents the effective rate based on actual delivery. The rate helps calculate expected delivery and compare performance across different pricing models. - currency: ISO 4217 currency code (e.g.,
"USD","EUR","GBP") for this specific package’s pricing. This indicates the currency in which therateandspendvalues are denominated. Different packages within the same media buy can use different currencies when supported by the publisher.
- daily_breakdown: Day-by-day delivery
- date: Date (YYYY-MM-DD)
- impressions: Daily impressions
- spend: Daily spend
Protocol-Specific Examples
The AdCP payload is identical across protocols. Only the request/response wrapper differs.MCP Request
MCP Response
A2A Request
Natural Language Invocation
Explicit Skill Invocation
A2A Response
A2A returns results as artifacts:Key Differences
- MCP: Direct tool call with arguments, returns flat JSON response
- A2A: Skill invocation with input, returns artifacts with text and data parts
- Payload: The
inputfield in A2A contains the exact same structure as MCP’sarguments
Scenarios
Example 1: Single Media Buy Query
Request
Response - Strong Performance
Message: “Your campaign delivered 450,000 impressions this week with strong engagement. The 0.2% CTR exceeds industry benchmarks, and your video completion rate of 70% is excellent. You’re currently pacing slightly behind (-9%) but should catch up with weekend delivery. Effective CPM is $37.50.” Payload:Example 2: Multiple Media Buys with Status Filter
Request - Single Status
Request - Multiple Statuses
Response - Multiple Active Campaigns
Metrics Definitions
- Impressions: Number of times ads were displayed
- Spend: Amount spent in the specified currency
- Clicks: Number of times users clicked on ads
- CTR (Click-Through Rate): Clicks divided by impressions
- Video Completions: Number of video ads watched to completion
- Completion Rate: Video completions divided by video impressions
- Pacing Index: Actual delivery rate vs. expected delivery rate
Usage Notes
- If
media_buy_idsis not provided, returns all media buys for the context - Use the
status_filterparameter to control which media buys are returned:- Can be a single status string or an array of statuses
- Use
"all"to return media buys of any status - Defaults to
["active"]if not specified
- If date range is not specified, returns lifetime delivery data
- Daily breakdown may be truncated for long campaigns or multiple media buys to reduce response size
- Some metrics (clicks, completions) may not be available for all formats
- Reporting data typically has a 2-4 hour delay
- Currency is always specified to avoid ambiguity
Aggregated Fields for Multi-Buy Queries
When querying multiple media buys, the response includesaggregated_totals with:
- impressions: Sum of all impressions across returned media buys
- spend: Total spend across all returned media buys
- clicks: Total clicks (where available)
- video_completions: Total video completions (where available)
- media_buy_count: Number of media buys included in the response
deliveries array contains detailed metrics for each individual media buy.
Implementation Guide
Generating Performance Messages
Themessage field should provide actionable insights:
Platform-Specific Metrics
Different platforms return different metrics based on their capabilities:- Total impressions delivered: Available on all platforms
- Total spend: Available on all platforms
- Clicks: Available where click tracking is supported (display, video)
- Video completions: Available for video inventory on supporting platforms
- Package-level breakdown: Granular performance by package/flight
Usage Notes
- If dates are not specified, returns lifetime delivery data
- Metrics availability depends on the media type and platform capabilities
- Video metrics (completions, completion rate) only appear for video campaigns
- The pacing index helps identify delivery issues (aim for 0.95-1.05)
- Daily breakdown may be truncated for long date ranges
- Use this data for regular reporting and optimization decisions