Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/property-governance-protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"adcontextprotocol": minor
---

Add Property Governance Protocol support to get_products

- Add optional `property_list` parameter to get_products request for filtering products by property list
- Add `property_list_applied` response field to indicate whether filtering was applied
- Enables buyers to pass property lists from governance agents to sales agents for compliant inventory discovery
37 changes: 30 additions & 7 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,6 @@
"docs/protocols/envelope-examples"
]
},
{
"group": "adagents.json",
"pages": [
"docs/media-buy/capability-discovery/adagents",
"docs/media-buy/capability-discovery/authorized-properties"
]
},
{
"group": "Signals Protocol",
"pages": [
Expand All @@ -101,6 +94,36 @@
}
]
},
{
"group": "Governance Protocol [3.0]",
"pages": [
"docs/governance/index",
{
"group": "Property Governance",
"pages": [
"docs/governance/property/index",
"docs/governance/property/specification",
"docs/governance/property/authorized-properties",
"docs/governance/property/adagents",
{
"group": "Tasks",
"pages": [
"docs/governance/property/tasks/index",
"docs/governance/property/tasks/list_property_features",
"docs/governance/property/tasks/property_lists",
"docs/governance/property/tasks/validate_property_delivery"
]
}
]
},
{
"group": "Brand Standards",
"pages": [
"docs/governance/brand-standards/index"
]
}
]
},
{
"group": "Curation Protocol",
"pages": [
Expand Down
90 changes: 90 additions & 0 deletions docs/governance/brand-standards/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
sidebar_position: 1
title: Brand Standards
---

<Info>
**AdCP 3.0 Proposal** - This protocol is under development for AdCP 3.0. Feedback welcome via [GitHub Discussions](https://github.com/adcontextprotocol/adcp/discussions).
</Info>

Brand Standards governance enables buyers to declare brand requirements that governance agents use to automatically apply appropriate rules across advertising workflows.

## Overview

Brand Standards addresses three concerns:

| Concern | Description | Mechanism |
|---------|-------------|-----------|
| **Brand Identity** | Who is the advertiser? | Brand manifest declarations |
| **Creative Guidelines** | What can the brand show? | Creative constraints and policies |
| **Audience Constraints** | Who should see the ads? | Industry-specific targeting rules |

## Brand Manifest

The brand manifest is the core declaration that buyers provide to governance agents:

```json
{
"brand_manifest": {
"brand_name": "ToyBrand",
"industry": "toys",
"target_audience": "children_under_13",
"prohibited_categories": ["gambling", "alcohol", "tobacco"],
"creative_guidelines": {
"max_animation_duration": 15,
"require_accessibility": true
}
}
}
```

When governance agents receive a brand manifest, they automatically apply:

- **Regulatory compliance**: COPPA for children's brands, GDPR consent requirements
- **Content filtering**: Block categories inappropriate for the brand's audience
- **Creative validation**: Enforce brand-specific creative guidelines

## Integration with Property Governance

Brand manifests work alongside property lists. When creating a property list, include the brand manifest to get automatic rule application:

```json
{
"tool": "create_property_list",
"arguments": {
"name": "ToyBrand Q1 Properties",
"base_properties": [
{
"selection_type": "publisher_tags",
"publisher_domain": "kidsmedia.com",
"tags": ["kids_family", "educational"]
}
],
"filters": {
"countries_all": ["US"],
"channels_any": ["display", "video"],
"feature_requirements": [
{ "feature_id": "brand_safety", "min_value": 90, "max_value": 100 }
]
},
"brand_manifest": {
"brand_name": "ToyBrand",
"industry": "toys",
"target_audience": "children_under_13"
}
}
}
```

The governance agent uses the brand manifest to apply COPPA requirements, filter out non-child-safe properties, and enforce relevant industry rules.

## Coming Soon

Detailed specification and task definitions for Brand Standards governance are under development. Key planned features:

- **Brand manifest validation**: Verify manifest completeness and consistency
- **Industry rule sets**: Pre-defined rules for common industries (toys, alcohol, pharmaceuticals, finance)
- **Creative compliance**: Validate creatives against brand guidelines
- **Audience verification**: Ensure targeting complies with brand audience constraints

See the [Governance Protocol overview](/docs/governance/index) for the broader context of how Brand Standards fits into AdCP governance.
187 changes: 187 additions & 0 deletions docs/governance/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
---
sidebar_position: 1
title: Governance Protocol
---

<Warning>
**Draft for AdCP 3.0** - These governance protocols are under active development by the AAO Governance Working Group. Feedback welcome via [GitHub Discussions](https://github.com/adcontextprotocol/adcp/discussions).
</Warning>

The Governance Protocol provides standardized mechanisms for compliance, brand safety, and quality control across advertising workflows. It enables specialized agents to evaluate, filter, and score advertising entities against configurable criteria.

## Mission

> Define and operate transparent, privacy-safe, brand-suitable campaign governance that encodes human heuristics in open protocol objects, making campaigns easy to launch, safe to scale, and measurable against verifiable outcomes for buyers, sellers, and auditors.

## Protocol Domains

The Governance Protocol covers four distinct governance domains:

| Domain | What It Governs | Key Mechanisms |
|--------|-----------------|----------------|
| **[Property Governance](/docs/governance/property/index)** | Where ads can run | Property lists, compliance filtering, adagents.json authorization |
| **[Brand Standards](/docs/governance/brand-standards/index)** | Brand requirements | Brand manifests, creative guidelines, audience constraints |
| **Creative Governance** | What creatives are compliant | Format validation, content moderation, accessibility |
| **Campaign Governance** | What can be bought | Budget controls, approval workflows, policy compliance |

Each domain has specialized governance agents that provide data, filtering, and scoring capabilities.

## Working Group Areas

The AAO Governance Working Group is developing standards across six areas that inform these protocols:

| Area | Focus | Protocol Impact |
|------|-------|-----------------|
| Brand Safety & Suitability | Safe, appropriate ad contexts | Property Governance, Content filtering |
| Brand Manifesto & Standards Library | Machine-readable brand policies | Brand Standards |
| Creative Standards & Validation | Technical and ethical creative criteria | Creative Governance |
| Process & Human Oversight | Human-in-the-loop checkpoints | All protocols |
| Regulatory & Compliance | Legal and regional frameworks | All protocols |
| Measurement & Verification | Proving compliance | All protocols |

## Architecture

Governance agents operate across the **full campaign lifecycle**:

- **Setup time**: Configure property lists, brand requirements, and compliance rules
- **Real-time**: Influence bid-time decisions through cached rules and scoring
- **Post-bid**: Measurement, verification, and reporting on compliance

```
┌─────────────────────────────────────────────────────────────────────────┐
│ BUYER AGENT │
│ - Aggregates governance from specialized agents │
│ - Issues auth_tokens for sellers to access governance data │
│ - Source of truth for compliant lists and brand requirements │
└───────────────────────────┬─────────────────────────────────────────────┘
│ create_property_list, webhooks
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Consent Agent │ │ Scope3 Agent │ │ Brand Safety │
│ (Compliance) │ │ │ │ Agent │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ consent_qual │ │ carbon_score │ │ content_cat │
│ tcf_version │ │ climate_risk │ │ brand_risk │
│ coppa_cert │ │ green_host │ │ sentiment │
└───────────────┘ └───────────────┘ └───────────────┘
│ get_property_list (with auth_token)
┌─────────────────────────────────────────────────────────────────────────┐
│ SELLER AGENT (DSP/SSP) │
│ - Caches resolved property lists for bid-time decisions │
│ - Receives updates via webhooks when lists change │
└─────────────────────────────────────────────────────────────────────────┘
```

## Common Patterns

### Feature Discovery

All governance agents advertise their capabilities via discovery tasks:

```json
{
"tool": "list_property_features",
"arguments": {}
}
```

Response:
```json
{
"features": [
{ "feature_id": "consent_quality", "type": "quantitative", "range": { "min": 0, "max": 100 } },
{ "feature_id": "coppa_certified", "type": "binary" },
{ "feature_id": "carbon_score", "type": "quantitative", "range": { "min": 0, "max": 100 } }
]
}
```

### Brand Manifest

Buyers declare their brand identity, and governance agents automatically apply appropriate rules:

```json
{
"brand_manifest": {
"brand_name": "ToyBrand",
"industry": "toys",
"target_audience": "children_under_13"
}
}
```

When a governance agent sees this manifest, it automatically applies COPPA requirements, content filtering for children's brands, and other industry-specific rules.

### Prompt-Based Policies

Governance protocols support **natural language prompts** for policy definitions rather than rigid keyword lists:

```json
{
"policy": "Avoid content about violence, controversial politics, or adult themes. Sports news is excellent. Entertainment is generally acceptable.",
"exclusions_prompt": "Block content containing hate speech, illegal activities, or ongoing litigation against our company."
}
```

This enables AI-powered verification agents to understand context and nuance.

### Webhook Notifications

Governance agents notify subscribers when evaluations change:

```json
{
"webhook_url": "https://buyer.example.com/webhooks/list-changed",
"events": ["list_updated", "property_removed", "score_changed"]
}
```

## Integration with Media Buy

The Media Buy Protocol consumes governance data at multiple stages:

- **Product discovery**: Pass `property_list_ref` to `get_products` to filter inventory
- **Media buy creation**: Reference property lists to constrain where ads can run
- **Authorization**: adagents.json validates agent authority to sell properties

```json
{
"tool": "get_products",
"arguments": {
"brief": "UK video inventory for Q1",
"property_list_ref": {
"agent_url": "https://buyer-agent.example.com",
"list_id": "pl_q1_uk_premium",
"auth_token": "..."
}
}
}
```

## Getting Started

**Buyers:**
1. Subscribe to governance agents for property data and brand safety
2. Create property lists with filters and brand manifests
3. Aggregate results into final compliant lists
4. Share references with sellers (with auth tokens)

**Governance Agent Implementers:**
1. Implement feature discovery tasks (`list_property_features`, etc.)
2. Implement stateful list management (CRUD operations)
3. Support webhooks to notify when evaluations change
4. See the [Property Protocol Specification](/docs/governance/property/specification) for detailed implementation guidance

## Protocol Sections

<CardGroup cols={2}>
<Card title="Property Governance" icon="building" href="/docs/governance/property/index">
Control where ads can run with property lists, compliance filtering, and publisher authorization via adagents.json.
</Card>
<Card title="Brand Standards" icon="shield-check" href="/docs/governance/brand-standards/index">
Define brand requirements including creative guidelines, audience constraints, and industry-specific rules.
</Card>
</CardGroup>
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
sidebar_position: 8
sidebar_position: 3
title: adagents.json Tech Spec
---

The `adagents.json` file provides a standardized way for publishers to declare which sales agents are authorized to sell their advertising inventory. This specification addresses authorization transparency and helps prevent unauthorized reselling of publisher inventory.
The `adagents.json` file provides a standardized way for publishers to declare their properties and authorize sales agents. This is the foundation of Property Governance - it defines what properties exist and who can sell them.

<Tip>
**[AdAgents.json Builder](https://adcontextprotocol.org/adagents)** - Validate existing files or create new ones with guided validation
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
title: Authorized Properties
sidebar_position: 2.5
title: Understanding Authorization
description: Understanding property authorization in AdCP - preventing unauthorized resale and validating sales agent relationships
keywords: [authorized properties, adagents.json, unauthorized resale, ads.txt, sales agent authorization, property validation]
---
Expand Down Expand Up @@ -268,11 +269,11 @@ For complete technical details on implementing the `adagents.json` file format,
- Validation code examples and error handling
- Security considerations and best practices

See the **[adagents.json Tech Spec](/docs/media-buy/capability-discovery/adagents)** for complete implementation guidance.
See the **[adagents.json Tech Spec](/docs/governance/property/adagents)** for complete implementation guidance.

## Related Documentation

- **[`list_authorized_properties`](/docs/media-buy/task-reference/list_authorized_properties)** - API reference for property discovery
- **[Product Discovery](/docs/media-buy/product-discovery/)** - How authorization integrates with product discovery
- **[Properties Schema](https://adcontextprotocol.org/schemas/v2/core/property.json)** - Technical property data model
- **[adagents.json Tech Spec](/docs/media-buy/capability-discovery/adagents)** - Complete `adagents.json` implementation guide
- **[adagents.json Tech Spec](/docs/governance/property/adagents)** - Complete `adagents.json` implementation guide
Loading