Skip to main content
brand.json はアドバタイザーだけのものではありません。売り手側では、AdCP セールスパスを運用する組織の公開企業レコードです: 名前、ロゴ、ドメイン、セールスエージェント、署名鍵ディスカバリー。adagents.json はパブリッシャーの認可レコードです: どのプロパティが存在しどのエージェントがそれらを販売できるか。 バイヤーエージェントは両方のビューを必要とします。brand.json は「このセラーまたはプラットフォームは誰で、何を主張しているか?」に答えます。adagents.json は「パブリッシャーはこのエージェントにこの在庫を販売する認可を与えているか?」に答えます。

要件境界

実践的なルールは:
  • AdCP エージェントを運用する場合、そのエージェントはオペレーターアイデンティティと署名鍵ディスカバリーを必要とします。運用組織の brand.json エントリーを公開し、エージェントを agents[] にリストし、agents[].jwks_uri またはデフォルト /.well-known/jwks.json を通じて公開鍵を露出します。
  • 在庫を公開する場合、パブリッシャー認可レコードが必要です。バイヤーがどのエージェントがどのプロパティを販売できるか検証できるよう、パブリッシャードメインで adagents.json を公開します。
  • 在庫を公開しかつセールスエージェントを運用する両方の場合、同じ組織/ドメインで両方を行います。
  • 販売を別のオペレーターに委譲する場合、あなたの adagents.json が認可のヒンジです。パブリッシャーアイデンティティ、ポートフォリオコンテキスト、ガバナンスのため自身の brand.json は依然として推奨されますが、委譲されたオペレーターの brand.json がバイヤーがインタラクトするセールスエージェントアイデンティティを運びます。
プロトコル要件は検証可能性です: 公開鍵は発見可能でなければならず、署名付きリクエストまたは webhook はそれらの鍵に対して検証されなければなりません。本番エージェントは秘密署名鍵を KMS/HSM またはマネージドシークレットシステムで保護すべきですが、AdCP は特定のベンダーやホスティングパターンを義務付けません。このページはディスカバリーと検証レコードをカバーします。鍵ストレージと署名の実装詳細は リクエスト署名 に存在します。

誰が何を公開するか

パブリッシャーと販売オペレーターが同じ会社の場合、両ファイルは同じドメインに存在できます。サードパーティプラットフォームがパブリッシャーのため販売する場合、オペレーターの brand.json はオペレータードメインに、パブリッシャーの adagents.json はパブリッシャードメインに存在します。

検証の仕組み

売り手側チェーンは双方向です:
  1. セラーの brand.jsonagents[] でセールスエージェントを宣言。
  2. セラーの brand.jsonproperties[] で所有、直接販売、管理、または代表するプロパティを宣言。
  3. パブリッシャーの adagents.jsonauthorized_agents[] で同じセールスエージェントを宣言。
  4. 委譲またはネットワークパスには、brand.jsonrelationship 値がパブリッシャーの adagents.jsondelegation_type に一致。ファーストパーティ在庫には、relationship: "owned" はインライン所有権で delegation_type カウンターパートを持たない。
  5. エージェントが使う署名鍵はセラーの brand.json agents[].jwks_uri から発見可能。変更するセラー認可には、パブリッシャーも adagents.json authorized_agents[].signing_keys[] で許可された鍵をピン留め。
結果は検証可能なサプライパスです。オペレーターは公に「私はこのプロパティを販売する」と言う。パブリッシャーは公に「このオペレーターはそれを販売する認可を受けている」と言う。

直接パブリッシャー例

自身のセールスエージェントを持つパブリッシャーは https://streamhaus.example/.well-known/brand.jsonbrand.json を公開します:
同じパブリッシャーが https://streamhaus.example/.well-known/adagents.jsonadagents.json を公開します:
バイヤーは、brand.jsonagents[].urladagents.jsonauthorized_agents[].url に一致すること、StreamHaus が主張するプロパティを所有すること、署名付き変更レスポンスが signing_keys[] で StreamHaus がピン留めした鍵を使うことを検証します。

委譲セラー例

ネットワークが別のパブリッシャーの在庫を販売するとき、ネットワークは自身の brand.json を公開します:
StreamHaus は https://streamhaus.example/.well-known/adagents.json で関係を確認します:
Northwind の brand.json だけでは認可ではありません。任意のオペレーターがプロパティを主張できます。パブリッシャーの一致する adagents.json エントリーが、主張を認可されたサプライパスに変えるものです。

マルチテナントセールスエージェント

多くのパブリッシャーテナントのため 1 つのセールスエージェントデプロイをホストするオペレーターは、すべてのエントリーが type: "sales" でも、テナントまたはプロパティスコープエンドポイントごとに 1 つの agents[] エントリーを公開してもよい(MAY)。各エントリーは type ではなく具体的な url で選択されるので、パスルーテッドデプロイはテナントごとの JWKS シャードを公開できます。テナントまたはプロパティスコープは、/mcp/{tenant} のような認証される具体的なエージェント URL によって運ばれます。署名付きリクエストボディ内のテナント識別子から選択されません。エージェント URL は agents[] 配列内で一意でなければなりません(MUST)。
署名検証者は、リクエスト署名ディスカバリーアルゴリズムを使って認証されるエージェント URL から鍵を解決しなければなりません(MUST): ちょうど 1 つの brand.json agents[].url エントリーに一致、そのエントリーの jwks_uri またはエージェント URL のオリジンのデフォルト /.well-known/jwks.json を使い、次に keyid を解決。重複する一致エントリーを曖昧として拒否しなければならず(MUST)、エージェント type だけで JWKS を選んではならず(MUST NOT)、どの鍵セットを信頼するか決めるためリクエストペイロード内で供給されたテナント識別子に依存してはなりません(MUST NOT)。

セットアップチェックリスト

  1. AdCP セールスエージェントを運用する各組織の brand.jsonhttps://{seller-domain}/.well-known/brand.json で公開。
  2. 組織が運用する各 AdCP セールスエンドポイントのため agents[]sales エントリーを追加。
  3. エンドポイントの JWKS を agents[].jwks_uri を通じて公開、またはエージェントオリジンのデフォルト /.well-known/jwks.json に依存。
  4. 所有、直接、委譲、またはネットワーク代表のすべてのプロパティを正しい relationshipproperties[] に追加。ファーストパーティ在庫には owned を使う。
  5. 在庫を所有する各パブリッシャードメインで adagents.json を公開。
  6. authorized_agents[] に、セラーのエージェント URL、認可スコープ、委譲またはネットワークパスの一致する delegation_type、任意の変更セラー認可の signing_keys[] をリスト。
  7. 販売関係、エンドポイント、署名鍵が開始、変更、終了するとき両ファイルを揃えたまま保つ。

次に行く場所