feat(schemas): vendor: BrandRef on viewability + performance-feedback rows#3866
Merged
Conversation
…edback rows Closes #3862 (delivery-metrics.viewability) and #3859 (performance-feedback). Both rows previously lacked structured vendor identity, breaking the BrandRef pattern used everywhere else in the verification surface (vendor_metric_values, performance-standard.vendor, committed_metrics vendor-scope entries). delivery-metrics.json viewability: - Optional vendor: BrandRef (RECOMMENDED). Makes the viewability row self-describing so buyer agents reading delivery in isolation can attribute the numbers without joining back to package.committed_metrics. Same shape as vendor_metric_value.vendor. performance-feedback.json: - Optional vendor: BrandRef. Required when feedback_source is third_party_measurement or verification_partner; described in the field rather than enforced via JSON Schema if/then, matching the precedent set by performance-standard.standard's "required when metric is viewability" pattern. Without it, third-party feedback rows are unattributed and consumers can't verify authorization, resolve metric definitions, or route disputes. Both fields additive and backwards-compatible. Origin: schema audit findings §3.4 and §3.9 (run during PR #3843 review). Aligns with the measurement taxonomy doctrinal framing that vendor-attested measurement is anchored on BrandRef → brand.json agents[type='measurement'] discoverable identities. Doc updates: provide_performance_feedback.mdx (vendor field row, example payload), optimization-reporting.mdx (viewability field list). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ded outputs Per product review on PR #3866: the original "required when feedback_source is third_party_measurement or verification_partner" framing was too strict. MMM mixes (Nielsen MMM, Analytic Partners, in-house mix models combining multiple vendor inputs), multi-touch attribution that joins across vendors, and clean-room outputs (LiveRamp, Habu, AWS Clean Rooms where the clean room is not the measurement source) are exactly the highest-value third_party_measurement signals — and they don't have a single attesting vendor. A strict "required" reading forces junk values or blocks the feedback entirely. Softened to: SHOULD populate when feedback_source is third_party_measurement or verification_partner AND a single attesting vendor exists; OMIT for blended outputs and use the response's narrative payload to describe provenance. Updates schema description, doc table row (Conditional → No, with prose), and changeset language to reflect. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #3862 (delivery-metrics.viewability) and #3859 (performance-feedback). Two small additive schema fixes from the audit run during PR #3843 review (findings §3.4 and §3.9).
Both rows previously lacked structured vendor identity, breaking the BrandRef pattern used everywhere else in the verification surface (
vendor_metric_values,performance-standard.vendor,committed_metricsvendor-scope entries).Changes
core/delivery-metrics.jsonviewabilityOptional
vendor: BrandRef. RECOMMENDED — makes the viewability row self-describing. Buyer agents reading delivery in isolation can attribute the numbers without joining back topackage.committed_metricsorpackage.performance_standards. Same shape asvendor_metric_value.vendorfor symmetry.core/performance-feedback.jsonOptional
vendor: BrandRef. Required whenfeedback_sourceisthird_party_measurementorverification_partner; described in the field rather than enforced via JSON Schemaif/then, matching the precedent set byperformance-standard.standard's "required when metric is viewability" pattern. Optional forbuyer_attributionandplatform_analytics(sources implicit from context).Without it, third-party feedback rows are unattributed — consumers can't verify authorization, resolve metric definitions via the vendor's
get_adcp_capabilities.measurement.metrics[], or route disputes.Doc updates
docs/media-buy/task-reference/provide_performance_feedback.mdx— addedvendorfield row to the request table; added vendor to the third-party-measurement example payloaddocs/media-buy/media-buys/optimization-reporting.mdx— viewability field list mentions vendorWhy
Aligns these two surfaces with the measurement taxonomy's framing that vendor-attested measurement is anchored on
BrandRef → brand.json agents[type='measurement']discoverable identities. Closes two of the audit findings without WG ceremony — both are additive and the design is uncontroversial.Test plan
Related
committed_metrics(the BrandRef precedent on contract surface)feedback-sourceneeds BrandRef) and §3.9 (viewabilitylacks vendor pointer)🤖 Generated with Claude Code