Architecture: Setup Time, Not Real-Time
Property lists are designed for setup-time operations, not real-time bid decisions:- Static lists: Curated sets of approved properties
- Dynamic lists: Properties matching criteria (country, channel, score thresholds)
- Hybrid lists: Base set modified by filters
Tasks Overview
Property List Structure
A property list contains:Brand
Instead of manually specifying all filters, provide a brand reference and let the governance agent apply appropriate rules based on who you are:- A consent agent applies COPPA requirements based on the brand’s target audience
- A brand safety agent infers content categories from the brand’s industry
- A sustainability agent applies requirements from the brand’s profile
brand.json file.
Webhooks
Configure webhooks viaupdate_property_list to receive notifications when the resolved list changes.
Important: Webhooks provide notification only. They tell you that the list has changed, but do not stream the updated properties. After receiving a webhook, you must call get_property_list to retrieve the updated property set.
Webhook Flow
Webhook Payload
signature before processing and MUST dedupe by idempotency_key so retried deliveries of the same change event are ignored.
Webhook Use Cases
- Buyer agent aggregation: Receive updates from multiple specialized agents, intersect results
- Seller cache invalidation: Know when to re-fetch the compliant property list
- Alerting: Notify when significant changes occur to compliance status
Filters
Filters are applied when the list is resolved (viaget_property_list):
Feature Requirements
Feature requirements reference features discovered viaget_adcp_capabilities. Each agent exposes different features (mfa_score, carbon_score, coppa_certified, etc.).
For quantitative features (scores, ranges):
Handling Missing Coverage
When a property doesn’t have data for a required feature, you can control the behavior withif_not_covered:
When
if_not_covered: "include" is used, the response includes a coverage_gaps field showing which properties were included despite missing data:
Required Filters
Every property list must include at least:- One country in
countries_all(ISO 3166-1 alpha-2 code, case-insensitive) - One channel in
channels_any(display, video, audio, etc.)
Filter Logic
The filter field names make the logic explicit:countries_all: Property must have feature data for ALL listed countries.channels_any: Property must support ANY of the listed channels.feature_requirements: Property must pass ALL requirements (AND).
Base Properties
base_properties is an array of property sources to evaluate. Each entry is a discriminated union with selection_type as the discriminator:
selection_type:
If
base_properties is omitted, the agent queries its entire property database for properties matching the filters.
See the base-property-source schema for the full specification.
create_property_list
Create a new property list.Request
Response
Dynamic List (Filters Only)
Create a list that dynamically queries the governance agent’s database (no base_properties - uses agent’s full coverage):update_property_list
Modify an existing property list.Request - Update Filters
Request - Replace Base Properties
Request - Add Exclusions
Response
get_property_list
Retrieve a property list with optional resolution of filters.Request - Get Resolved Properties
Response
The response returns a compact list of identifiers only (not full property objects) for efficiency. Only identifiers that pass the feature requirements are included - no scores or metadata.The
auth_token is only returned when the list is created via create_property_list. Store it securely - you’ll need it to share access with sellers.Request - Get Metadata Only
Response (Metadata Only)
list_property_lists
List property lists owned by a given account, or all property lists accessible to the authenticated agent whenaccount is omitted.
Request
Response
delete_property_list
Delete a property list.Request
Response
Integration with Other Tasks
Using Lists in score_properties
Reference a property list instead of passing properties inline:Using Lists in Media Buys
Pass property lists to media buy creation:Error Codes
Caching and Refresh
Theget_property_list response includes caching guidance:
Typical flow for orchestrators/sellers:
Usage Notes
- Setup time only: Governance agents are not in the real-time bid path; resolve lists during campaign setup
- Local caching: Orchestrators/sellers must cache resolved properties locally for bid-time decisions
- Refresh on schedule: Re-fetch lists based on
cache_valid_until(typically every 1-24 hours) - Dynamic vs Static: Use filters-only lists when you want the agent to maintain the property set; use base_properties when you need explicit control
- Pagination: Large lists may require multiple requests with cursor-based pagination
- No score leakage: Raw scores are kept internal to governance agents; responses contain pass/fail lists, not scores