AdCP 3.0 提案 - この仕様は AdCP 3.0 向けに開発中です。フィードバックは GitHub Discussions へどうぞ。
Abstract
Property プロトコルは、プロパティの識別・認可・データ提供・選定のための標準 MCP/A2A インターフェースを定義します。これにより、パブリッシャーはプロパティと認可エージェントを宣言し、データプロバイダーはプロパティインテリジェンスを提供し、バイヤーは準拠したプロパティ集合を選択できます。概要
The Property Protocol addresses four distinct concerns:| Concern | Question | Owner | Mechanism |
|---|---|---|---|
| Property Identity | どのプロパティが存在するか | Publishers | adagents.json の properties 配列 |
| Sales Authorization | 誰がこのプロパティを販売できるか | Publishers | adagents.json の authorized_agents |
| Property Data | このプロパティについて何がわかるか | Data providers | get_adcp_capabilities 経由のガバナンスエージェント |
| Property Selection | 要件を満たすプロパティはどれか | Buyers | フィルター付きプロパティリスト |
プロパティデータと選定
プロパティデータと選定は ステートフル モデルです:- Feature discovery: Agents advertise what they can evaluate via
get_adcp_capabilities - Property list management: CRUD operations for managed property lists with filters
- Brand manifests: Let agents automatically apply rules based on brand characteristics
- Webhook notifications: Real-time updates when resolved lists change
- Marketplace architecture: Multiple specialized agents as subscription services
get_property_list でリストが解決されるときに暗黙的に行われます。
コア概念
リクエストの役割と関係
Every governance request involves two key roles:Orchestrator (Buyer Agent)
ガバナンスエージェントへ API リクエストを送るプラットフォーム/システム。メディアバイ文脈ではしばしば「buyer agent」と呼びます。- Examples: DSP、トレーディングデスク、キャンペーン管理ツール
- Responsibilities: API 呼び出し、認証、技術的なやり取りを管理
- Account: ガバナンスエージェントへの技術的な資格情報と API アクセスを持つ
Principal
リクエストを代理している主体:- Examples: 広告主(Nike)、代理店(Omnicom)、ブランドチーム
- Responsibilities: キャンペーン目標やポリシー要件の所有者
- Policies: 独自の閾値、ブロックリスト、コンプライアンス要件を持つ場合がある
プロパティ識別
Properties are identified using the standard AdCP property model:website, mobile_app, ctv_app, dooh, podcast, radio, streaming_audio。
プロパティリスト参照
For large property sets, use property list references instead of embedding properties:- スケール: ペイロード肥大化なしに 50,000 件以上のプロパティを扱える
- 更新: リクエストを変えずにリストを進化させられる
- 認可: トークンでリストへのアクセスを制御
ガバナンスエージェントの種類
Compliance Agents
プロパティのコンプライアンスインテリジェンスを提供するベンダー:- Examples: データ整合性スコア、同意品質の測定
- Business Model: サブスクリプションまたは従量課金
- Methodology: 透明性のための公開ルーブリック
Brand Safety Agents
コンテンツ分類とリスク評価:- Examples: コンテンツカテゴライズ、ブランドセーフティスコアリング
- Coverage: チャンネルや地域に特化する場合がある
Quality Agents
パフォーマンスと不正計測:- Examples: Viewability 予測、IVT 検知
- Integration: キャンペーン成果と相関させる場合がある
スコアリングとデータプライバシー
スコアは内部のみ
重要な設計原則: 生のスコアはバイヤーや下流クライアントに共有しません。データ漏洩を防ぎます。 ガバナンスエージェントは内部スコアモデルを保持しますが、プロトコルはスコアを露出させず リスト管理 を中心に設計されています:- Buyers specify thresholds via
feature_requirements(e.g.,"min_value": 85) - Agents return pass/fail lists of properties that meet the thresholds
- Raw scores never leave the governance agent
- スコア逆算のための列挙攻撃(閾値を変えたリスト要求など)
- 競合インテリジェンスの漏洩
- スコアデータの転売によるアービトラージ
バイヤーが受け取るもの
When callingget_property_list, buyers receive a compact list of identifiers (not full property objects) for efficiency:
メソドロジーの開示
Theget_adcp_capabilities task returns information about what features an agent evaluates and their methodology, but NOT the underlying scores:
- エージェントが何を測っているか把握
- エージェント間でメソドロジーを比較
- 適切な閾値を設定
タスク
ディスカバリ
get_adcp_capabilities
ガバナンスエージェントが評価できる機能を発見します。 ユースケース:- 機能ディスカバリ: 何を評価できるか把握
- マーケットプレイス閲覧: エージェント間で機能比較
- 統合計画: リスト作成前に利用可能なフィルターを把握
プロパティリスト管理
create_property_list
フィルターと任意の Brand Manifest を伴うプロパティリストを新規作成します。 必須パラメータ:countries_allに少なくとも 1 つの国(ISO 3166-1 alpha-2)channels_anyに少なくとも 1 つのチャネル(display, video, audio など)
selection_type を識別子とする判別可能ユニオンです:
publisher_tags:{ "selection_type": "publisher_tags", "publisher_domain": "...", "tags": [...] }- パブリッシャー内のタグpublisher_ids:{ "selection_type": "publisher_ids", "publisher_domain": "...", "property_ids": [...] }- パブリッシャー内の property_ididentifiers:{ "selection_type": "identifiers", "identifiers": [...] }- パブリッシャーコンテキスト不要- Omitted: エージェントのプロパティ DB 全体を参照
countries_all: 指定されたすべての国のフィーチャーデータが必要(AND)channels_any: 指定されたチャネルのいずれかをサポートしていれば可(OR)feature_requirements: すべての要件を満たす(AND)
- フィルター(国、チャネル、フィーチャー閾値)で準拠リストを定義
- Brand Manifest を渡してルールを自動適用
- 変更通知用の Webhook を登録
update_property_list
既存のプロパティリストを更新します。 ユースケース:- ベースリストにプロパティを追加/削除
- キャンペーン要件に応じてフィルター調整
- Webhook URL の更新
get_property_list
解決済みプロパティリストを取得します。 ユースケース:- フィルター適用後の準拠リストを取得
- 入札時利用のためリストをキャッシュ
- Webhook 通知後に更新版を取得
list_property_lists
認証済みプリンシパルがアクセスできるプロパティリストを列挙します。delete_property_list
プロパティリストを削除します。Validation
validate_property_delivery
配信記録をプロパティリストに照らして準拠性を判定し、「意図」と「結果」を突き合わせます。 独立した 2 つの検証を行います:- プロパティ準拠: 識別子が解決済みリストに含まれるか
- サプライパス認可: セールスエージェントがそのプロパティを販売する権限を持つか(任意、
sales_agent_urlが必要)
- ポストキャンペーン検証: インプレッションが準拠プロパティに配信されたか確認
- サプライパス検証: セールスエージェントがパブリッシャーに認可されているか確認
- リアルタイム監視: 実行中キャンペーンの準拠率を確認
- 監査証跡: 規制/ブランドセーフティ審査向けにレポート生成
compliant: 識別子が解決済みリストに含まれるnon_compliant: 識別子が解決済みリストに含まれないnot_covered: 識別子は認識したが当該プロパティのデータがない(新規など)unidentified: このエージェントでは解決できない識別子(検出失敗・非対応)
sales_agent_url を提供した場合):
authorized: セールスエージェントが adagents.json に記載されているunauthorized: authorized_agents に記載されていないunknown: adagents.json を取得/解析できない
not_covered と unidentified は準拠率計算から除外すべきです。データカバレッジの不足と識別子解決の問題を区別できます。
レスポンス形式: 準拠/非準拠/not_covered/unidentified の生カウントを返します。必要に応じてクライアント側で率を計算します。オプションで aggregate フィールドに算出指標(スコア、グレード、ラベルなど)を含めることもできます(フォーマットはエージェント依存)。
Typical Flows
Property List Flow
Property lists enable buyers to define and manage compliant property sets:- Create property list: Buyer defines list on governance agent with filters
- Resolve and iterate: Buyer calls
get_property_listto see resolved properties - Share list reference: Buyer provides
list_idto orchestrator/seller - Cache locally: Orchestrator/seller fetches and caches resolved properties
- Use at bid time: Orchestrator/seller uses local cache (no governance agent calls)
- Refresh periodically: Re-fetch based on
cache_valid_until(typically 1-24 hours)
Webhook and Caching Pattern
Webhooks provide notification that a property list has changed. The webhook payload contains a summary of changes, but you must callget_property_list to retrieve the actual updated properties.
-
Webhook-driven updates (recommended): Register a webhook URL when creating the property list. Re-fetch via
get_property_listwhen notified of changes. -
Polling with cache hints: Use
cache_valid_untilfromget_property_listresponses to schedule periodic re-fetches. Typical validity periods are 1-24 hours. - Hybrid approach: Use webhooks for immediate updates, with polling as a fallback safety net.
get_property_list response includes:
resolved_at: When the list was evaluatedcache_valid_until: When consumers should consider the cache stale
cache_valid_until without re-fetching.
Property Discovery Flow
- Define filters: Specify country, channel, quality thresholds when creating property list
- Resolve list: Call
get_property_listwithresolve=trueto get matching properties - Review candidates: Evaluate returned properties for fit
- Add to campaign: Include property list reference in media buy
Response Structure
All AdCP Governance responses follow a consistent structure:Core Response Fields
- message: Human-readable summary of the operation result
- context_id: Session continuity identifier for follow-up requests
- data: Task-specific payload (varies by task)
Protocol Transport
- MCP: Returns complete response as flat JSON object
- A2A: Returns as structured artifacts with message in text part, data in data part
- Data Consistency: Both protocols contain identical AdCP data structures
Error Handling
Error Codes
PROPERTY_NOT_FOUND: Property identifier not recognizedPROPERTY_NOT_MONITORED: Governance agent doesn’t cover this propertyPOLICY_NOT_FOUND: Referenced policy doesn’t existLIST_ACCESS_DENIED: Cannot access property list (auth failed)LIST_NOT_FOUND: Property list reference invalidMETHODOLOGY_NOT_SUPPORTED: Requested methodology version unavailablePARTIAL_RESULTS: Some properties couldn’t be evaluated
Partial Success
For bulk operations, the response may include partial results:Implementation Notes
Caching Architecture
Governance decisions are highly cacheable:Orchestrator-Side Caching
- Score cache: Store scores with TTL from
valid_untilfield - Decision cache: Pre-compute pass/fail for campaigns
- List cache: Cache property lists from
property_list_ref
Agent-Side Caching
- Profile cache: Maintain pre-computed property profiles
- Methodology cache: Cache scoring algorithm results
Performance Requirements
| Operation | Target Latency |
|---|---|
| Single property score | < 100ms |
| Bulk scoring (100 properties) | < 2s |
| Filter decision (cached) | < 5ms |
| Property discovery | < 5s |
Multi-Agent Strategies
Orchestrators may consult multiple governance agents:- Primary + Validation: Use primary agent, validate with secondary
- Specialization: Route by property type to specialist agents
- Consensus: Require multiple agents to agree
- Competitive: Track agent accuracy, weight by performance
Agent Discovery
There are two complementary discovery mechanisms:Publisher-Side Discovery via adagents.json
Publishers declare which governance agents have data about their properties using theproperty_features field in adagents.json:
property_features from the publisher’s adagents.json to find which agents have relevant data.
See the adagents.json Tech Spec for the complete discovery workflow.
Agent-Side Discovery via agent-card.json
Governance agents expose capabilities via.well-known/agent-card.json:
Detailed Capability Discovery
Useget_adcp_capabilities for detailed capability discovery:
Marketplace Architecture
The Property Protocol enables a marketplace of specialized data agents:Key Principles
- Buyer agent is source of truth: The buyer agent aggregates data from multiple specialized governance agents
- Seller sees one interface: Sellers interact only with the buyer agent using standard Property Protocol
- Subscription model: Each specialized agent is a paid service with its own features and coverage
- Webhook-driven updates: Specialized agents notify the buyer agent when property evaluations change
Multi-Agent Orchestration
A buyer agent can distribute a master property list to multiple specialized agents:Brand Manifest
Instead of specifying complex filters, buyers provide a brand manifest:- Consent agent: Applies COPPA requirements for children_under_13
- Brand safety agent: Filters to kids_family content, excludes violence/adult
- Sustainability agent: Applies any green media requirements
Integration with Media Buy Protocol
Property Lists in Media Buys
The Media Buy Protocol accepts property list references:Policy Compliance
Media buys can reference governance policies via property list references:Best Practices
- Cache aggressively: Property scores change slowly; cache for hours/days
- Bulk where possible: Use batch operations for planning, not per-property calls
- Pre-compute decisions: Build pass/fail lookups before bid-time
- Monitor coverage: Track which properties agents don’t cover
- Log methodology versions: For audit trails, record which scoring version was used
- Handle partial results: Not all properties will be scorable; plan for gaps
Next Steps
- See the adagents.json Tech Spec for property declaration and authorization
- See the get_adcp_capabilities task reference for capability discovery
- See the Property List Management for CRUD operations and webhooks
- See the validate_property_delivery task reference for post-campaign compliance validation