Skip to main content
Share performance outcomes with publishers to enable data-driven optimization and improved campaign delivery. Response Time: ~5 seconds (data ingestion) Request Schema: https://adcontextprotocol.org/schemas/v3/media-buy/provide-performance-feedback-request.json Response Schema: https://adcontextprotocol.org/schemas/v3/media-buy/provide-performance-feedback-response.json

Request Parameters

ParameterTypeRequiredDescription
media_buy_idstringYesSeller’s media buy identifier
measurement_periodobjectYesTime period for performance measurement
performance_indexnumberYesNormalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above expected)
package_idstringNoSpecific package within the media buy (if feedback is package-specific)
creative_idstringNoSpecific creative asset (if feedback is creative-specific)
metric_typestringDeprecatedLegacy free-form metric enum (mixes metrics, verification, attribution into one list). New implementations SHOULD use metric instead. No longer required at the schema level; retained for one-minor backwards compatibility; removed at the next major. See the metric-type migration table for the mapping.
metricobjectNoThe metric this feedback row pertains to, using the (scope, metric_id, qualifier) row shape symmetric with committed_metrics. Preferred over the deprecated metric_type. Standard metrics: { scope: "standard", metric_id: "viewable_rate", qualifier: { viewability_standard: "mrc" } }. Vendor metrics: { scope: "vendor", vendor: { domain: "nielsen.com" }, metric_id: "brand_lift" }. Omit entirely for holistic feedback — a trader flagging a campaign as underperforming without a specific metric carries the signal via performance_index plus the response narrative, no metric row needed. Senders SHOULD populate metric when the feedback is metric-specific so consumers can route it.
feedback_sourcestringNoSource of the performance data (defaults to “buyer_attribution”)
vendorBrandRefNoVendor that produced this feedback. SHOULD be populated when feedback_source is third_party_measurement or verification_partner AND a single attesting vendor exists. OMIT for blended outputs (MMM mixes, multi-touch attribution that joins across vendors, clean-room outputs where the clean room is not the measurement source). Optional for buyer_attribution and platform_analytics. Distinct from the nested metric.vendor field — this top-level vendor identifies the source of the feedback (the party producing it); metric.vendor (when present in vendor-scope metric entries) identifies the vendor that defines the metric. Often the same; can differ.

Response (Message)

The response includes a human-readable message that:
  • Confirms receipt of the performance feedback
  • Summarizes the performance level provided
  • Explains how the feedback will be used for optimization
  • Provides next steps or recommendations
The message is returned differently in each protocol:
  • MCP: Returned as a message field in the JSON response
  • A2A: Returned as a text part in the artifact

Response (Payload)

Field Descriptions

  • success: Whether the performance feedback was successfully received
  • message: Optional human-readable message about the feedback processing

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 input field in A2A contains the exact same structure as MCP’s arguments

Scenarios

Example 1: Campaign-Level Performance Feedback

Request

Response - Below Expected Performance

Message: “Performance feedback received for campaign gam_1234567890. The 15% below-expected brand lift suggests targeting refinement is needed. Our optimization algorithms will reduce spend on underperforming segments starting with the next cycle.” Payload:

Example 2: Package-Specific Performance Feedback

Request

Response - Exceptional Performance

Message: “Outstanding performance feedback for package pkg_social_feed! The 110% above-expected click-through rate indicates this audience segment is highly engaged. We’ll increase allocation to similar inventory and audiences.” Payload:

Example 3: Creative-Specific Performance Feedback

Request

Response - Poor Creative Performance

Message: “Creative creative_video_123 shows 35% below-expected completion rate. Consider creative refresh or A/B testing alternative versions.” Payload:

Example 4: Multiple Performance Metrics

To report multiple metrics for the same media buy, send one request per metric type:

Request - Viewability Feedback

Request - Completion Rate Feedback

Request - Brand Safety Feedback

Performance Index Scale

The performance index provides a normalized way to communicate business outcomes:
  • 0.0: No measurable value or impact
  • 0.5: Significantly below expectations (-50%)
  • 1.0: Meets baseline expectations (0% variance)
  • 1.5: Exceeds expectations by 50%
  • 2.0+: Exceptional performance (100%+ above expected)

Common Metric Types

  • overall_performance: General campaign success (default)
  • conversion_rate: Post-click or post-view conversions
  • brand_lift: Brand awareness or consideration lift
  • click_through_rate: Engagement with creative
  • completion_rate: Video or audio completion rates
  • viewability: Viewable impression rate
  • brand_safety: Brand safety compliance
  • cost_efficiency: Cost per desired outcome

Feedback Sources

  • buyer_attribution: Buyer’s own measurement and attribution
  • third_party_measurement: Independent measurement partner
  • platform_analytics: Publisher platform’s analytics
  • verification_partner: Third-party verification service

How Publishers Use Performance Feedback

Publishers leverage performance indices to:
  1. Optimize Targeting: Shift impressions to high-performing segments and audiences
  2. Improve Inventory: Identify and prioritize high-value placements
  3. Adjust Pricing: Update CPMs based on proven value delivery
  4. Enhance Algorithms: Train machine learning models on actual business outcomes
  5. Product Development: Refine product definitions based on performance patterns

Usage Notes

  • Performance feedback is optional but highly valuable for optimization
  • Feedback can be provided at campaign or package level
  • Multiple performance indices can be shared for the same period (batch submission planned for future releases)
  • Optimization impact depends on the publisher’s algorithm sophistication
  • Feedback is processed asynchronously; status can be checked via the response
  • Historical feedback helps improve future campaign performance across the publisher’s inventory

Privacy and Data Sharing

  • Performance feedback sharing is voluntary and controlled by the buyer
  • Aggregate performance patterns may be used to improve overall platform performance
  • Individual campaign details remain confidential to the buyer-publisher relationship
  • Publishers should provide clear data usage policies in their AdCP documentation

Implementation Guide

Calculating Performance Index

Determining Metric Types

Choose metric types based on campaign objectives: