validate_property_delivery
Validates delivery records against a property list to determine compliance. Answers two questions:- Property compliance: Did my impressions land on properties in my list?
- Supply path authorization: Was the sales agent authorized to sell that inventory?
Use Cases
- Post-campaign validation: Verify that impressions were delivered to compliant properties
- Supply path verification: Confirm sales agents were authorized by publishers
- Real-time monitoring: Check compliance rate during campaign execution
- Audit trails: Generate compliance reports for regulatory or brand safety reviews
Request
Parameters
Response
Response Fields
Summary Fields
The summary provides raw counts - consumers calculate rates as needed:Validation Statuses
Understanding not_covered vs unidentified
These two statuses distinguish different types of “unknown” scenarios:not_covered - The governance agent recognized the identifier (e.g., it’s a valid domain) but doesn’t have data for that specific property. This happens when:
- A property is too new to be in the agent’s database
- The property exists but hasn’t been evaluated yet
- The agent’s coverage doesn’t include that property category
unidentified - The governance agent couldn’t recognize the identifier at all. This happens when:
- Client-side detection failed to capture the property
- The identifier type isn’t supported (e.g., agent handles domains but received an app ID)
- The identifier value is malformed or invalid
Optional Aggregate Metrics
Governance agents can optionally return computed metrics in theaggregate field:
The
aggregate field is optional and agent-specific. Consumers should not assume a particular format - always check methodology_url for interpretation.
Calculating Your Own Rates
The response always includes raw counts. Calculate rates as needed:- Compliant impressions: 103
- Non-compliant impressions: 47
- not_covered + unidentified impressions: 50 (excluded)
- Compliance rate: 103 / (200 - 50) = 103 / 150 = 68.7%
Feature Results
Every entry infeatures[] carries a feature_id and a status. Data features come from the governance agent’s feature catalog (discovered via get_adcp_capabilities). Record-level structural checks use reserved namespaces so they sit in the same identity space as data features.
Reserved feature_id prefixes
Governance agents MAY add new checks within these namespaces and publish them in their feature catalog.
Feature-Level Failures
When a property fails a specific feature requirement, the entry references the feature by id. The response carries the verdict and a directional explanation. When the caller authored the requirement (e.g.,feature_requirements on a property list), the evaluator MAY echo the requirement back to enable fix-and-retry loops without re-reading the list definition.
Supply Path Authorization
Whensales_agent_url is provided in delivery records, the governance agent validates that the sales agent is authorized to sell the property by checking the publisher’s adagents.json.
Request with Authorization
Response with Authorization
When authorization is validated, each result includes anauthorization field:
Authorization Statuses
Authorization Violation Codes
Two Independent Checks
Property compliance and authorization are independent checks. A record can be:
Both checks use the same “unknown excludes from rate” pattern - you cannot penalize for detection gaps.
Best Practices
Batch Validation
For large-scale validation, batch records up to the 10,000 limit:Sampling Strategy
For real-time monitoring during campaign execution, validate a statistical sample rather than all records:Handling Unknown Records
Track unknown rates separately to identify detection gaps:Related Tasks
- create_property_list - Create the list to validate against
- get_property_list - Retrieve current list membership
- get_adcp_capabilities - Discover available filter features