Skip to main content
Retrieve comprehensive delivery metrics and performance data for media buy reporting. Response Time: ~60 seconds (reporting query) Request Schema: /schemas/v2/media-buy/get-media-buy-delivery-request.json Response Schema: /schemas/v2/media-buy/get-media-buy-delivery-response.json

Request Parameters

*Either media_buy_ids or buyer_refs can be provided. If neither provided, returns all media buys in current session context.

Response

Returns delivery report with aggregated totals and per-media-buy breakdowns:

Media Buy Delivery Object

See schema for complete field list.

Common Scenarios

Single Media Buy

Multiple Media Buys

Date Range Reporting

Multi-Status Query

Buyer Reference Query

Metrics Definitions

Query Behavior

Context-Based Queries

  • If neither media_buy_ids nor buyer_refs provided, returns all media buys from current session context
  • Context established by previous operations (e.g., create_media_buy)

Status Filtering

  • Defaults to ["active"] if not specified
  • Can be single string ("active") or array (["active", "paused"])
  • Use "all" to return media buys of any status

Date Ranges

  • If dates not specified, returns lifetime delivery data
  • Date format: YYYY-MM-DD
  • Daily breakdown may be truncated for long date ranges to reduce response size

Metric Availability

  • Universal: Impressions, spend (available on all platforms)
  • Format-dependent: Clicks, video completions (depends on inventory type and platform capabilities)
  • Package-level: All metrics broken down by package with pacing_index

Data Freshness

  • Reporting data typically has 2-4 hour delay
  • Real-time impression counts not available
  • Use for periodic reporting and optimization decisions, not live monitoring

Error Handling

Package-Level Metrics

The by_package array provides per-package delivery details with these key fields: Buyer Control:
  • paused: Whether the package is currently paused by the buyer (true/false)
System State:
  • delivery_status: System-reported operational state:
    • delivering - Package is actively delivering impressions
    • completed - Package finished successfully
    • budget_exhausted - Package ran out of budget
    • flight_ended - Package reached its end date
    • goal_met - Package achieved its impression/conversion goal
Performance:
  • pacing_index: Delivery pace (1.0 = on track, below 1.0 = behind, above 1.0 = ahead)
  • rate: Effective pricing rate (e.g., CPM)
  • pricing_model: How the package is billed (cpm, cpcv, cpp, etc.)
Key Distinction: paused reflects buyer control, while delivery_status reflects system reality. A package can be not paused but have delivery_status: "budget_exhausted".

Best Practices

1. Use Date Ranges for Analysis Specify date ranges for period-over-period comparisons and trend analysis. 2. Monitor Pacing Index Aim for 0.95-1.05 pacing index. Values outside this range indicate delivery issues. 3. Check Daily Breakdown Identify delivery patterns and weekend/weekday performance differences. 4. Compare Package Performance Use by_package breakdowns to identify best-performing inventory. Check both paused state and delivery_status to understand why packages aren’t delivering. 5. Track Status Changes Use multi-status queries to understand why campaigns were paused or completed.

Next Steps

After retrieving delivery data:
  1. Optimize Campaigns: Use update_media_buy to adjust budgets, pacing, or targeting
  2. Provide Feedback: Use provide_performance_feedback to share results with seller
  3. Update Creatives: Use sync_creatives to refresh underperforming assets
  4. Create Follow-Up Campaigns: Use create_media_buy based on insights

Learn More