課題: 無断再販
歴史的背景
プログラマティック広告では ads.txt が無断再販という重大問題を解決するために作られました。以前は不正事業者が人気サイトを名乗り、無許可で在庫を販売していました。結果として:- 収益の搾取: パブリッシャーが無断セラーに収益を奪われる
- ブランドセーフティの問題: バイヤーが正規在庫元を確認できない
- 市場の分断: 正規・非正規セラーの区別がつかない
AI 主導広告でも同じ課題
AdCP も、AI エージェントが広告を売買する際に同様の課題に直面します:- AI セールスエージェント が実際に管理していないプロパティを名乗る可能性
- バイヤーエージェント は購入前に認可を検証する必要
- パブリッシャー は特定のセールスエージェントを明示的に認可する手段が必要
- スケールの課題: 数千のプロパティを手作業で検証するのは非現実的
解決策: AdCP 認可システム
AdCP は 2 つの仕組みで無断再販を防ぎます:- Publisher Authorization: パブリッシャーが
adagents.jsonでセールスエージェントを明示的に認可 - Agent Discovery: セールスエージェントが
get_adcp_capabilitiesのmedia_buy.portfolioでポートフォリオを公開
パブリッシャーによるセールスエージェントの認可
パブリッシャーは自ドメインの/.well-known/adagents.json に adagents.json をホストし、認可済みエージェントと権限を列挙します。
adagents.json の例
Key Fields
- contact: このファイルを管理するパブリッシャー/主体
- properties: 認可ファイルが対象とするプロパティ定義
- authorized_agents: プロパティを代表する認可済みセールスエージェント一覧
- url: エージェントの API エンドポイント
- authorized_for: 認可範囲の説明
- authorization_type: プロパティの選択方法(
property_ids,property_tags,inline_properties,publisher_properties)
- last_updated: 最終更新日時(ISO 8601)
セールスエージェントが認可プロパティを共有する方法
Sales agents はget_adcp_capabilities タスクで media_buy.portfolio にポートフォリオ情報を公開します。これには複数の目的があります:
- 透明性: エージェントが代表するパブリッシャーをバイヤーが確認できる
- 検証の容易さ: バイヤーが adagents.json で認可確認するためのドメインを提供
- ポートフォリオ概要: 主要チャネル・国・説明を含む
Property Declaration Example
規模対応のプロパティタグ
数千のプロパティを持つ大規模ネットワークでは property tags で管理を容易にします:- Products は多数のステーションを列挙する代わりに
["local_radio", "midwest"]を参照可能 - Buyers は
get_adcp_capabilitiesでポートフォリオを発見し認可を検証 - 認可検証 は adagents.json を通じて解決済みプロパティに対して行う
認可検証のワークフロー
バイヤーエージェントが、セールスエージェントが主張するプロパティを正当に代表しているか検証する手順:1. 初期セットアップ
2. プロダクト検証
3. 継続的な検証
- adagents.json をキャッシュ(例: 24 時間)
- 長期キャンペーンでは定期的に再検証
- 認可変更 は適切に処理(停止か拒否)
このアプローチの利点
パブリッシャーにとって
- 明示的な制御: 誰が在庫を販売できるかを管理
- きめ細かな権限: プロパティ・期間・商品種別ごとに設定
- 標準的なホスティング: 特別なインフラ不要
- 監査証跡: 認可エージェントの履歴を保持
セールスエージェントにとって
- 明確な認可証跡: バイヤーが検証可能
- 効率的なタグ分け: 大規模ポートフォリオをタグで管理
- 標準化された宣言: AdCP の全インタラクションで統一
バイヤーエージェントにとって
- 認可の自動検証: セラーの正当性を自動確認
- 不正防止: 暗号的な検証で詐欺を抑止
- 安心して購入: 検証済み在庫ソースからの購入に自信
- スケーラブルな検証: 大規模な自動化バイイングにも対応
Security Considerations
Domain Verification
- HTTPS required: adagents.json must be served over HTTPS
- Domain ownership: Only domain owners can authorize agents for their properties
- Regular validation: Buyers should re-check authorization periodically
Authorization Scope
- Least privilege: Grant minimal necessary permissions
- Time bounds: Use start/end dates for temporary authorizations
- Property restrictions: Limit to specific paths or property types when appropriate
Error Handling
- Missing adagents.json: Treat as unauthorized (fail closed)
- Invalid JSON: Reject malformed authorization files
- Network errors: Implement retry logic with fallback policies
- Expired authorization: Handle gracefully in active campaigns
Integration with Product Discovery
Authorization validation integrates seamlessly with Product Discovery:- Discover products using
get_products - Validate authorization for properties referenced in products
- Proceed confidently with authorized inventory
- Flag unauthorized products for manual review
Technical Implementation
For complete technical details on implementing theadagents.json file format, including:
- File location and format requirements (
/.well-known/adagents.json) - JSON schema definitions and validation rules
- Mobile application and CTV implementation patterns
- Detailed property type specifications (website, mobile app, CTV, DOOH, podcast)
- Domain matching rules and wildcard patterns
- Validation code examples and error handling
- Security considerations and best practices
Related Documentation
get_adcp_capabilities- Discover agent capabilities and portfolio information- Product Discovery - How authorization integrates with product discovery
- Properties Schema - Technical property data model
- adagents.json Tech Spec - Complete
adagents.jsonimplementation guide