provide_performance_feedback sends one optimizer-ready assertion across either hop of a buyer-controlled feedback path. A measurement provider submits to the orchestrator’s gateway; the orchestrator validates and normalizes the assertion before forwarding appropriate feedback to each media-buy seller. The payload carries the decision signal and enough provenance to interpret it, not raw exposure logs, attribution models, or a complete measurement study.
The caller is therefore either:
- an authenticated measurement agent calling the buyer orchestrator; or
- the buyer orchestrator calling a seller.
get_media_buy_delivery task and returns compact assertions through its provide_performance_feedback task.
Request schema: provide-performance-feedback-request.json
Response schema: provide-performance-feedback-response.json
Compact contract
Required fields
baseline is optional in the JSON Schema so legacy 3.x requests remain valid. Producers using the compact contract MUST populate it.
Scope
Omit both for media-buy-level feedback.
media_buy_id, package_id, and creative_id are scoped to the receiver: the gateway exposes measurement-facing identifiers to the provider and maps them to each seller’s local identifiers during fan-out. The initial compact contract deliberately does not enumerate every delivery dimension. A later revision can add an opaque receiver-issued delivery key without copying the entire reporting-dimension taxonomy into this task.
Metric identity
metric reuses the standard/vendor discriminator used by committed_metrics, missing_metrics, and delivery metric aggregates:
metric.vendor identifies who defines the metric. It can differ from top-level producer, which identifies who produced this assertion.
metric_type remains accepted for backwards compatibility but is deprecated. When both fields are present, consumers use metric.
Baseline
baseline names what performance_index = 1.0 represents:
The producer does not need to disclose the raw baseline value. For ratio-compatible metrics, compact-contract producers (baseline present) MUST use
observed / baseline for higher-is-better measures and baseline / observed for lower-is-better measures such as CPA. In both cases values above 1.0 mean better performance.
Producer and methodology
producer is the BrandRef of the party that produced the analysis. On the provider-to-orchestrator hop, authenticated caller identity is authoritative and the orchestrator verifies that producer matches it. On the orchestrator-to-seller hop, producer preserves analytical provenance while the authenticated orchestrator remains responsible for the submission. Sellers never need to authenticate or authorize the measurement provider directly.
methodology and methodology_version are producer-scoped open strings. AdCP does not impose a universal methodology enum: geo_incrementality, media_mix_model, and deterministic_attribution mean what the identified producer’s catalog and methodology documentation say they mean.
study_ref is opaque correlation metadata. It does not instruct the seller to create experiment arms or assign users/geographies. Buyers and measurement providers define cohorts once and apply them consistently through ordinary audience and geographic targeting.
Evidence and historical backfill
The inlineevidence object is intentionally small:
sample_size;confidence_intervalon the performance-index scale.
evidence_ref points to the provider-hosted result for authorized reviewers. Large historical datasets and study artifacts stay with the measurement provider. Historical backfills use measurement_period plus as_of; submit one assertion per task call.
final: false means the producer expects maturation. A later correction is a new immutable assertion carrying supersedes_feedback_id from the prior response.
Response and application status
Legacy task bodies may contain only
success. Orchestrator gateways and sellers declaring media_buy.performance_feedback return a hop-local feedback_id. A gateway normally reports receipt only. Sellers declaring reports_application_status: true return an honest application_status. Top-level status remains the protocol task lifecycle and is not optimizer disposition.
The initial contract reports disposition at response time. A durable asynchronous status read or webhook is deferred until implementations demonstrate that optimizers can expose it reliably.
Orchestrator-hosted measurement gateway
Measurement agents are discoverable throughbrand.json entries with type: "measurement" and publish their metric catalogs in get_adcp_capabilities.measurement.metrics[].
A measurement agent that sets measurement.produces_performance_feedback: true can produce this task’s compact assertion. A buyer orchestrator exposes the receiving boundary through the separate experimental measurement_gateway capability, without claiming to be a media-buy seller.
The orchestrator gives each provider a scoped account. The first experimental tier uses existing task authorization:
- The orchestrator discovers a measurement agent and its metrics.
- The provider calls the orchestrator’s
get_media_buy_deliverytask for buyer-approved, cross-seller delivery. - The provider calls
provide_performance_feedbackon the orchestrator gateway. The orchestrator authenticates the provider, validates provenance, and stores its ownfeedback_id. - The orchestrator decides what to share with each seller, maps its cross-seller identifiers to seller-local media-buy/package/creative IDs, and calls each seller’s
provide_performance_feedbackunder the buyer’s identity. - Seller receipts and
application_statusvalues return to the orchestrator, which owns the cross-seller audit trail.
report_usage; that task reports consumption and billing for vendor services.
Capability examples
Buyer orchestrator gateway:Privacy and trust
- Submit aggregate decision signals, not user-level outcomes or identity paths.
- The orchestrator authorizes each measurement provider; sellers authorize only the orchestrator.
- A
producerfield cannot override provider identity at the gateway or orchestrator identity at the seller. evidence_refremains subject to the provider’s access controls.- Accepted feedback is not necessarily true or applied. Identity, evidence, attestation, and disposition answer different questions.