Skip to main content
すべての AdCP エージェントは get_adcp_capabilitiessupported_protocolsspecialisms を宣言します。各宣言は、クレームを検証するためにストーリーボードランナーが実行する /compliance/{version}/ のコンプライアンスバンドルにマップされます。
supported_protocols は網羅的ではありません。 accounts 表面(sync_accountslist_accountssync_governance)は、すべての media_buycreativesignals エージェントに暗黙の基盤であり、意図的に supported_protocols 値ではありません。完全なアカウント表面については Accounts tasks を参照してください。
このページはその分類の人間可読なインデックスです。機械可読な同等物は /compliance/{version}/index.json です。

Universal ストーリーボード

すべてのエージェントは、どのプロトコルや専門分野を主張するかにかかわらず /compliance/{version}/universal/ のすべてのストーリーボードを実行します。いくつかは ケイパビリティゲート — 該当ケイパビリティをアドバタイズするときのみ実行される — ですが、ストーリーボードはスコープにおいて依然として universal です: そのケイパビリティを主張する任意のエージェントがそれによってグレードされます。universal ストーリーボードを失敗すると全体のコンプライアンスが失敗します。 ケイパビリティゲートの行(deterministic-testingsigned-requests)は、エージェントがケイパビリティを false としてアドバタイズするときのみスキップされます。それらを主張して部分的に実装することはできません。supported: true を宣言してストーリーボードを失敗することは非適合です — 部分的な実装を出荷するより false を宣言してください。billing-gate-dispatchcomply-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_capabilitiescapabilities.compliance_testing ブロックで宣言されます。コンプライアンステストはテストハーネス用の RPC 表面であり、機能的プロトコルではありません。
エージェントは複数のプロトコルを主張できます — フルスタックのメディアバイプラットフォームは media_buycreativesignals をリストするかもしれません。ランナーはすべての一致するベースラインを実行します。

専門分野

具体的なケイパビリティクレーム。各専門分野はちょうど 1 つのプロトコルの下に存在します。専門分野を主張するエージェントは、親プロトコルのベースラインに加えて専門分野のストーリーボードを通過しなければなりません — 例えば sales-guaranteed を主張するには supported_protocolsmedia_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: "..." } を発行する — 存在すれば依然としてストーリーボードを実行するが、クレームを移行すべきと警告する。
ステータスは YAML フロントマターで専門分野ごとに宣言され、/compliance/{version}/index.json に表示されます。 専門分野は下で親プロトコルごとにグループ化されています。
3.0 での変更点。 sponsored_intelligence は専門分野からフルプロトコルに昇格しました(specialisms ではなく supported_protocols で宣言)。audience-sync はそのツールファミリーに合わせて governance から media-buy に移動しました。broadcast-platformsales-broadcast-tv に、social-platformsales-social にリネームされました。property-governancecollection-governance は兄弟の property-listscollection-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_protocolsgovernance のみ宣言する場合、supported_protocolsmedia_buy を追加してください — ランナーは今や audience-sync ストーリーボードと並んでメディアバイベースラインが実行されることを期待します。

creative

signals

governance

3.1 で実験的。 メジャメントメトリックカタログディスカバリーは実験的 measurement ケイパビリティブロックと measurement.core 実験的機能を通じて利用可能です。安定した measurement-verification 専門分野とベースラインストーリーボードは、メジャメントタスク表面が凍結されるまで延期されます。

brand

Choosing a sales specialism

sales-* 専門分野は相互排他的ではありません — 保証ダイレクトデスクとオークションフロアの両方を持つハイブリッドプラットフォームは sales-guaranteedsales-non-guaranteed の両方を主張すべきです。クレームを解決するには下のステップに従ってください。
sales-proposal-mode は 3.1 で非推奨です。 新しいエージェントでそれを主張しないでください。それを宣言する既存のエージェントはそれを完全に落とし、get_adcp_capabilitiessales-guaranteed + media_buy.supports_proposals: true で置き換えなければなりません。#3823 を参照。
1

あなたの在庫はチャネル固有か?

3 つの専門分野は特定の配信チャネルに適用され、独自のストーリーボードを持ちます。これらのチャネルタイプの 1 つだけを販売する場合、一致する専門分野のみを主張してください。これらのチャネル外の一般的なディスプレイやビデオ在庫も販売する場合、ステップ 2 に進んでください。
2

どの購入モデルをサポートするか?

3

media_buy.supports_proposals を設定(sales-guaranteed のみ)

media_buy.supports_proposalsget_adcp_capabilities レスポンスの media_buy ケイパビリティブロックのブール値です。proposal_finalize コンプライアンスシナリオが実行されるかをゲートします。これは適合性宣言であり、バイヤーのプロポーザルごとのルーティングシグナルではありません: バイヤーは proposal_status から返されたプロポーザルが購入できるかを決定します。

creative

signals

governance

3.1 で実験的。 メジャメントメトリックカタログディスカバリーは実験的 measurement ケイパビリティブロックと measurement.core 実験的機能を通じて利用可能です。安定した measurement-verification 専門分野とベースラインストーリーボードは、メジャメントタスク表面が凍結されるまで延期されます。

brand

クロスリソース不変条件

ステップごとの検証に加えて、専門分野はランナーが完全なストーリーボード実行全体で観測するクロスステップとクロスリソースの 不変条件 を宣言します。これらは単一のレスポンス形状では表面化しない状態不整合を捕捉します。 不変条件は専門分野 YAML の invariants: 配列で宣言され、それらが強制するルールとともにインラインで文書化されます。完全な impairment.coherence コントラクトについては media-buy lifecycle § Compliance を参照してください。

主張する方法

get_adcp_capabilities でプロトコルと専門分野を宣言します:
ストーリーボードランナーは:
  1. /compliance/{version}/universal/ のすべてのストーリーボードを実行
  2. supported_protocols の各プロトコルについて、/compliance/{version}/protocols/{protocol}/ のベースラインを実行(snake_case → kebab-case)
  3. 各主張された専門分野のストーリーボードを /compliance/{version}/specialisms/{id}/ で実行
  4. preview 専門分野については、pass/fail 判定の代わりに警告を発行 — AAO Verified バッジは preview 専門分野を明確なインジケーターでレンダリング
ツールを実装し、かつ専門分野を主張してください。 専門分野の必須ツールをすべて配線するが capabilities.specialisms[] から kebab-case ID を省略するエージェントは、ランナーによって “No applicable tracks found” としてグレードされます — tracks_passed = 0, tracks_failed = 0, tracks_skipped = 1。これはステップレベルでの黙った通過であり、トラックレベルでの黙った失敗です。修正は get_adcp_capabilities レスポンスに専門分野 ID(例: "creative-generative")を追加することです。
任意の stable ストーリーボードが失敗すると、あなたのエージェントはそのクレームに対して非適合です。スイートをローカルで実行する方法については エージェントを検証する を参照してください。ランナーが専門分野マニフェストをどうグレードされるシナリオに解決するか — media_buy.supports_proposals のようなケイパビリティフラグがどう個々のシナリオをゲートするかを含む — の詳細なウォークスルーについては グレーディングの仕組み を参照してください。

Naming conventions

分類には 4 つのケーシングが共存します。どれが適用されるかは、識別子がどこで読まれるかに依存します: ワイヤー専門分野 ID とストーリーボードカテゴリー間の kebab↔snake スワップは機械的アイデンティティです — ハイフンがアンダースコアになるだけ。専門分野内のバリアントシナリオは {category}/{variant} パス形式を使います。 ケース分割は意図的です: supported_protocols は既に本番エージェントに出荷された既存の 3.0 フィールドである一方、専門分野 ID は新しく URL ファーストです(それぞれが /compliance/.../specialisms/{id}/ 下のディレクトリ名)。ランナーはマッピングを透過的に処理します。

専門分野 ↔ ツールファミリーマッピング

エージェントが主張するプロトコルは、専門分野が使うツールファミリー名と常に一致するわけではありません:
  • audience-syncmedia-buy プロトコルの下に存在します。なぜなら sync_audiences はメディアバイツールだからです。
  • property-lists(専門分野 ID、kebab-case)は property_list ツールファミリー(create_property_listvalidate_property_delivery)とストーリーボードカテゴリー property_lists にマップされます。
  • sales-broadcast-tvchannels: ['linear_tv'] を宣言します — “Broadcast TV” は散文名。linear_tv はワイヤー値です。
/compliance/{version}/index.json は各専門分野の required_tools を表示するため、エージェントは完全なストーリーボード YAML を読まずにツールファミリーを発見できます。

ワイヤー enum 対 散文

ワイヤー enum 値は常に snake_casenon_guaranteedpmax_platformctv)です。散文は同じ概念をハイフンやスペースでレンダリングします(“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 です。
アップストリームプラットフォームをラップするエージェントを構築していますか? このカタログのストーリーボードは AdCP ワイヤーコントラクトをグレードします。アップストリームと統合せずに形状有効なレスポンスを返すアダプターは検出できません。補完的なプレステージングゲートについては モックアップストリームフィクスチャでアダプターエージェントを検証する を参照してください。