get_adcp_capabilities で supported_protocols と specialisms を宣言します。各宣言は、クレームを検証するためにストーリーボードランナーが実行する /compliance/{version}/ のコンプライアンスバンドルにマップされます。
supported_protocols は網羅的ではありません。 accounts 表面(sync_accounts、list_accounts、sync_governance)は、すべての media_buy、creative、signals エージェントに暗黙の基盤であり、意図的に supported_protocols 値ではありません。完全なアカウント表面については Accounts tasks を参照してください。/compliance/{version}/index.json です。
Universal ストーリーボード
すべてのエージェントは、どのプロトコルや専門分野を主張するかにかかわらず/compliance/{version}/universal/ のすべてのストーリーボードを実行します。いくつかは ケイパビリティゲート — 該当ケイパビリティをアドバタイズするときのみ実行される — ですが、ストーリーボードはスコープにおいて依然として universal です: そのケイパビリティを主張する任意のエージェントがそれによってグレードされます。universal ストーリーボードを失敗すると全体のコンプライアンスが失敗します。
ケイパビリティゲートの行(
deterministic-testing、signed-requests)は、エージェントがケイパビリティを false としてアドバタイズするときのみスキップされます。それらを主張して部分的に実装することはできません。supported: true を宣言してストーリーボードを失敗することは非適合です — 部分的な実装を出荷するより false を宣言してください。billing-gate-dispatch と comply-controller-mode-gate の行は、通常のケイパビリティゲート行ではなく前提条件ゲートです: 各フェーズは前提条件が満たされないとき not_applicable をグレードします。エージェントごとの課金ゲートの完全なカバレッジを望むセラーは、エージェントごとのフェーズが実行されるよう commercial_relationship: passthrough_only を宣言したテストキットを出荷すべきです(SHOULD)。
プロトコル
トップレベルのエージェントケイパビリティクレーム。エージェントはsupported_protocols にリストすることでプロトコルを主張し、プロトコルのベースラインストーリーボードとすべての universal ストーリーボードを通過しなければなりません。
supported_protocols は snake_case を使います。コンプライアンスパスと専門分野 ID は kebab-case を使います。完全なマッピングについては下の Naming conventions を参照してください。
コンプライアンステストコントローラー のサポートは、
supported_protocols ではなく get_adcp_capabilities の capabilities.compliance_testing ブロックで宣言されます。コンプライアンステストはテストハーネス用の RPC 表面であり、機能的プロトコルではありません。専門分野
具体的なケイパビリティクレーム。各専門分野はちょうど 1 つのプロトコルの下に存在します。専門分野を主張するエージェントは、親プロトコルのベースラインに加えて専門分野のストーリーボードを通過しなければなりません — 例えばsales-guaranteed を主張するには supported_protocols に media_buy が必要です。
専門分野は status を持ちます:
stable— 完全に仕様化されたストーリーボード。コンプライアンスランナーはすべてのフェーズを実行する。AAO Verifiedはエージェントが実証可能に通過したことを意味する。preview— ID とスコープは予約済み。基盤プロトコル表面が安定するまでストーリーボードはプレースホルダー。エージェントはこれらを主張してもよい。ランナーは検証済み pass/fail の代わりに{ status: "preview", passed: null, reason: "storyboard not yet defined" }の結果を発行する。AAO バッジは preview 専門分野を明確なインジケーターでレンダリングする。deprecated— 後方互換性のため保持されるが、将来のメジャーで削除予定。ランナーは{ status: "deprecated", passed: <boolean>, reason: "..." }を発行する — 存在すれば依然としてストーリーボードを実行するが、クレームを移行すべきと警告する。
/compliance/{version}/index.json に表示されます。
専門分野は下で親プロトコルごとにグループ化されています。
3.0 での変更点。
sponsored_intelligence は専門分野からフルプロトコルに昇格しました(specialisms ではなく supported_protocols で宣言)。audience-sync はそのツールファミリーに合わせて governance から media-buy に移動しました。broadcast-platform は sales-broadcast-tv に、social-platform は sales-social にリネームされました。property-governance と collection-governance は兄弟の property-lists と collection-lists 専門分野に分割されました。media-buy
3.1 で登場。
sales-streaming-tv(CTV / ストリーミング)、sales-exchange(プログラマティック SSP / エクスチェンジ)、sales-retail-media(リテールメディアネットワーク)は 3.1 に予定されています。それらのカテゴリーのセラーは 3.0 GA では sales-guaranteed または sales-non-guaranteed を主張すべきです。audience-sync はそのツールファミリーに合わせて governance プロトコルから media-buy に移動しました。エージェントが audience-sync を主張するが supported_protocols に governance のみ宣言する場合、supported_protocols に media_buy を追加してください — ランナーは今や audience-sync ストーリーボードと並んでメディアバイベースラインが実行されることを期待します。creative
signals
governance
3.1 で実験的。 メジャメントメトリックカタログディスカバリーは実験的
measurement ケイパビリティブロックと measurement.core 実験的機能を通じて利用可能です。安定した measurement-verification 専門分野とベースラインストーリーボードは、メジャメントタスク表面が凍結されるまで延期されます。brand
Choosing a sales specialism
sales-* 専門分野は相互排他的ではありません — 保証ダイレクトデスクとオークションフロアの両方を持つハイブリッドプラットフォームは sales-guaranteed と sales-non-guaranteed の両方を主張すべきです。クレームを解決するには下のステップに従ってください。
1
あなたの在庫はチャネル固有か?
3 つの専門分野は特定の配信チャネルに適用され、独自のストーリーボードを持ちます。これらのチャネルタイプの 1 つだけを販売する場合、一致する専門分野のみを主張してください。これらのチャネル外の一般的なディスプレイやビデオ在庫も販売する場合、ステップ 2 に進んでください。
2
どの購入モデルをサポートするか?
3
media_buy.supports_proposals を設定(sales-guaranteed のみ)
media_buy.supports_proposals は get_adcp_capabilities レスポンスの media_buy ケイパビリティブロックのブール値です。proposal_finalize コンプライアンスシナリオが実行されるかをゲートします。これは適合性宣言であり、バイヤーのプロポーザルごとのルーティングシグナルではありません: バイヤーは proposal_status から返されたプロポーザルが購入できるかを決定します。creative
signals
governance
3.1 で実験的。 メジャメントメトリックカタログディスカバリーは実験的
measurement ケイパビリティブロックと measurement.core 実験的機能を通じて利用可能です。安定した measurement-verification 専門分野とベースラインストーリーボードは、メジャメントタスク表面が凍結されるまで延期されます。brand
sponsored-intelligence
クロスリソース不変条件
ステップごとの検証に加えて、専門分野はランナーが完全なストーリーボード実行全体で観測するクロスステップとクロスリソースの 不変条件 を宣言します。これらは単一のレスポンス形状では表面化しない状態不整合を捕捉します。
不変条件は専門分野 YAML の
invariants: 配列で宣言され、それらが強制するルールとともにインラインで文書化されます。完全な impairment.coherence コントラクトについては media-buy lifecycle § Compliance を参照してください。
主張する方法
get_adcp_capabilities でプロトコルと専門分野を宣言します:
/compliance/{version}/universal/のすべてのストーリーボードを実行supported_protocolsの各プロトコルについて、/compliance/{version}/protocols/{protocol}/のベースラインを実行(snake_case → kebab-case)- 各主張された専門分野のストーリーボードを
/compliance/{version}/specialisms/{id}/で実行 preview専門分野については、pass/fail 判定の代わりに警告を発行 — AAO Verified バッジは preview 専門分野を明確なインジケーターでレンダリング
stable ストーリーボードが失敗すると、あなたのエージェントはそのクレームに対して非適合です。スイートをローカルで実行する方法については エージェントを検証する を参照してください。ランナーが専門分野マニフェストをどうグレードされるシナリオに解決するか — media_buy.supports_proposals のようなケイパビリティフラグがどう個々のシナリオをゲートするかを含む — の詳細なウォークスルーについては グレーディングの仕組み を参照してください。
Naming conventions
分類には 4 つのケーシングが共存します。どれが適用されるかは、識別子がどこで読まれるかに依存します:
ワイヤー専門分野 ID とストーリーボードカテゴリー間の kebab↔snake スワップは機械的アイデンティティです — ハイフンがアンダースコアになるだけ。専門分野内のバリアントシナリオは
{category}/{variant} パス形式を使います。
ケース分割は意図的です:
supported_protocols は既に本番エージェントに出荷された既存の 3.0 フィールドである一方、専門分野 ID は新しく URL ファーストです(それぞれが /compliance/.../specialisms/{id}/ 下のディレクトリ名)。ランナーはマッピングを透過的に処理します。
専門分野 ↔ ツールファミリーマッピング
エージェントが主張するプロトコルは、専門分野が使うツールファミリー名と常に一致するわけではありません:audience-syncはmedia-buyプロトコルの下に存在します。なぜならsync_audiencesはメディアバイツールだからです。property-lists(専門分野 ID、kebab-case)はproperty_listツールファミリー(create_property_list、validate_property_delivery)とストーリーボードカテゴリーproperty_listsにマップされます。sales-broadcast-tvはchannels: ['linear_tv']を宣言します — “Broadcast TV” は散文名。linear_tvはワイヤー値です。
/compliance/{version}/index.json は各専門分野の required_tools を表示するため、エージェントは完全なストーリーボード YAML を読まずにツールファミリーを発見できます。
ワイヤー enum 対 散文
ワイヤー enum 値は常にsnake_case(non_guaranteed、pmax_platform、ctv)です。散文は同じ概念をハイフンやスペースでレンダリングします(“non-guaranteed auction inventory”、“Connected TV”)。ペイロードを投入するときは常にワイヤー形式を使ってください — ハイフン付きまたはスペース付きの綴りは編集上のものだけで、スキーマ検証に失敗します。
signal_type 値
シグナルレスポンスの signal_type enum は 3 つの値を持ちます:
marketplace— シグナルエージェントはサードパーティデータプロバイダー(Experian、Peer39 など)が公開するセグメントを再販している。バイヤーはプロバイダーの/.well-known/adagents.json経由で認可を検証できる。owned— シグナルエージェントは直接所有するデータ(リテーラー購入データ、パブリッシャー行動データ、通信位置データ)から派生した自身のファーストパーティセグメントを公開する。custom— シグナルソースはモデル、コンポジット、またはバイヤー提供の入力からオンデマンドでセグメントを構築する。adagents.json認可チェーンが適用されないときこれを使う — セグメントはソースネイティブで、常設アップストリームプロバイダーに帰属しない。
真実の源泉
機械インデックスはスキーマと並んで公開されます:
ビルドパイプラインは専門分野ファイルシステム ↔ enum パリティと、すべての専門分野の親プロトコルがコンプライアンスツリーに存在することを検証します。ドリフトはビルドを失敗させます。
このページのカタログは人間のコンテキストを与えるため手動で保守されています。権威的な列挙は常に
/compliance/{version}/index.json です。