- AdCP discovery - このエージェントは AdCP をサポートしているか? どのバージョンか?
- Protocol support - どのドメインプロトコル(media_buy, signals, governance, sponsored_intelligence, creative)を扱うか?
- Auth model - セラーはエージェントを直接信頼するか、それとも各オペレーターが個別に認証しなければなりませんか?
- Detailed capabilities - 機能、AXE 連携、ジオターゲティング、ポートフォリオ
/schemas/v3/protocol/get-adcp-capabilities-request.json
Response Schema: /schemas/v3/protocol/get-adcp-capabilities-response.json
Tool-Based Discovery
AdCP はネイティブの MCP/A2A ツールディスカバリーを使用します。ツール一覧にget_adcp_capabilities が存在することが、AdCP をサポートしている証拠です。
- 標準の MCP/A2A メカニズムを使用(カスタム拡張なし)
- 常に最新の機能を返却(古いメタデータではない)
- 機能情報の単一の信頼できる情報源となります
adcp-extension.json)は v3 で廃止されました。ツールベースのディスカバリーを使用してください。
:::
Request Parameters
| Field | Type | Description |
|---|---|---|
protocols | string[] | 任意。特定のプロトコル(media_buy, signals, governance, sponsored_intelligence, creative)に絞り込む。省略した場合はサポートされるすべてのプロトコルを返します。 |
Response Structure
adcp
AdCP プロトコルの基本情報:| Field | Type | Description |
|---|---|---|
major_versions | integer[] | 必須。 サポートする AdCP のメジャーバージョン(例: [1]) |
supported_protocols
このセラーがサポートするドメインプロトコルの配列:account
アカウントおよび認証に関する機能。すべてのセラーはこのセクションを宣言すべきです。バイヤーはsync_accounts、list_accounts、その他の認証済みタスクを呼び出す前にこの情報を読み取る。シンプルなパブリッシャーであっても、請求関係とサンドボックステストを処理するためにアカウント管理が必要です。
| Field | Type | Description |
|---|---|---|
supported_billing | string[] | 必須。 セラーがサポートする課金モデル: operator, agent。バイヤーは sync_accounts の各エントリにおいて、これらの値のいずれかを billing として渡さなければなりません。 |
require_operator_auth | boolean | デフォルト: false。アカウントモデルを決定します。true(明示的なアカウント)の場合、各オペレーターはセラーと個別に認証し、バイヤーは list_accounts でアカウントを検出して account_id を渡します。false(暗黙のアカウント)の場合、エージェントは信頼され、バイヤーは sync_accounts でアカウントを宣言し、自然キー(brand + operator)を渡します。サンドボックスでは、パスはアカウントモデルに従う。明示的なアカウントは list_accounts で既存のテストアカウントを検出し、暗黙のアカウントは sync_accounts で sandbox: true を指定してサンドボックスを宣言します。 |
authorization_endpoint | string | オペレーター認証用の OAuth URL。セラーがオペレーター認証に OAuth をサポートする場合に存在します。require_operator_auth: true の場合に関連し、省略時はオペレーターがアウトオブバンド(セラーポータル、API キー)で認証情報を取得します。 |
required_for_products | boolean | デフォルト: false。true の場合、バイヤーは get_products を呼び出す前にアカウントを確立しなければなりません。false の場合、バイヤーはアカウントなしでプロダクトを閲覧できます。セラーを確定する前の価格比較やディスカバリーに役立つ。 |
account_financials | boolean | デフォルト: false。true の場合、セラーは支出・クレジット・請求状況を照会するための get_account_financials をサポートします。オペレーター課金アカウントにのみ適用されます。 |
sandbox | boolean | デフォルト: false。本番セールスエージェントには強く推奨されます。true の場合、セラーはテスト用のサンドボックスアカウントをサポートします。サンドボックスでは、パスはアカウントモデルに従う。明示的なアカウントは list_accounts で既存のテストアカウントを検出し、暗黙のアカウントは sync_accounts で sandbox: true を指定してサンドボックスを宣言する(実際のプラットフォーム呼び出しや支出は発生しない)。サンドボックスモードを参照。 |
認証モデル
暗黙のアカウント(require_operator_auth: false)— セラーはエージェントのアイデンティティクレームを信頼します。エージェントは自身のベアラートークンで一度認証し、sync_accounts を呼び出して代理するブランドとオペレーターを宣言します。セラーはエージェントのクレームに基づいてアカウントをプロビジョニングし、オプションで brand.json に照らしてオペレーターを検証します。以降のすべての呼び出しにはエージェントの単一の認証情報を使用し、自然キー(brand + operator)を渡します。
明示的なアカウント(require_operator_auth: true)— 各オペレーターはセラーと直接認証しなければなりません。エージェントはオペレーターごとに認証情報を取得し(authorization_endpoint を使った OAuth、またはアウトオブバンドで)、オペレーターごとのセッションを開き、list_accounts でアカウントを検出します。バイヤーは以降のすべてのリクエストにセラーが割り当てた account_id 値を渡します。
サンドボックスでは、パスはアカウントモデルに従う。明示的なアカウント(require_operator_auth: true)は list_accounts で既存のテストアカウントを検出し、暗黙のアカウントは sync_accounts で sandbox: true を指定してサンドボックスを宣言します。
完全なワークフローについては Accounts and Agents、一般的な認証モデルと課金サポートの組み合わせについてはセラーパターンを参照。
media_buy
Media-buy プロトコルの機能。supported_protocols に media_buy が含まれる場合のみ存在します。
features
Media-buy の任意機能。true と宣言した場合、セラーはその機能を利用したリクエストに必ず応じなければなりません。| Feature | Description |
|---|---|
inline_creative_management | create_media_buy リクエストでクリエイティブのインライン指定を受け付ける |
property_list_filtering | get_products の property_list パラメーターを尊重する |
content_standards | コンテンツ基準の設定を完全にサポートする |
audience_targeting | オーディエンスターゲティングと取り込みをサポートする(sync_audiences を含む) |
execution
技術的な実行能力:| Field | Type | Description |
|---|---|---|
axe_integrations | string[] | セラーが実行可能な Agentic ad exchange (AXE) の URL |
creative_specs | object | クリエイティブ仕様のサポート(VAST のバージョン、MRAID など) |
targeting | object | ターゲティング機能(ジオの粒度) |
creative_specs
| Field | Type | Description |
|---|---|---|
vast_versions | string[] | サポートする VAST バージョン(例: ["4.0", "4.1", "4.2"]) |
mraid_versions | string[] | サポートする MRAID バージョン |
vpaid | boolean | VPAID サポートの有無 |
simid | boolean | SIMID サポートの有無 |
targeting
| Field | Type | Description |
|---|---|---|
geo_countries | boolean | ISO 3166-1 alpha-2 コードを用いた国レベルのターゲティング |
geo_regions | boolean | ISO 3166-2 コード(例: US-NY, GB-SCT)を用いた地域/州レベルのターゲティング |
geo_metros | object | システムごとに規定された都市圏ターゲティング |
geo_postal_areas | object | 国と精度に対応する郵便エリアターゲティング |
age_restriction | object | supported フラグと verification_methods を含む年齢制限機能 |
device_platform | boolean | デバイスプラットフォームターゲティング(Sec-CH-UA-Platform の値) |
device_type | boolean | デバイス種別ターゲティング(desktop, mobile, tablet, ctv, dooh) |
language | boolean | 言語ターゲティング(ISO 639-1 コード) |
audience_include | boolean | オーディエンスインクルージョンターゲティング(features.audience_targeting が必要) |
audience_exclude | boolean | オーディエンスエクスクルージョンターゲティング(features.audience_targeting が必要) |
keyword_targets | object | supported_match_types 配列(broad, phrase, exact)を持つキーワードターゲティング。存在すればサポートを意味します。 |
negative_keywords | object | supported_match_types 配列を持つネガティブキーワードターゲティング。存在すればサポートを意味します。 |
geo_proximity | object | 任意の座標からの近接ターゲティング(後述) |
geo_metros.nielsen_dma: true は、セラーが Nielsen DMA コードを使った geo_metros と geo_metros_exclude の両方をサポートすることを意味すべきです。一方向(例: インクルージョンのみ)しかサポートしない場合、セラーはサポートしていないフィールドを暗黙に無視するのではなく、バリデーションエラーを返さなければなりません。エクスクルージョンのセマンティクスについては Targeting Overlays を参照。
geo_proximity はサポートする近接ターゲティング方法を指定します。
| Field | Type | Description |
|---|---|---|
radius | boolean | シンプルな半径ターゲティング(ある地点からの距離の円) |
travel_time | boolean | 移動時間のアイソクロンターゲティング(ルーティングエンジンが必要) |
geometry | boolean | 事前計算済みの GeoJSON ジオメトリ(バイヤーがポリゴンを提供します) |
transport_modes | string[] | アイソクロンでサポートする交通手段: driving, walking, cycling, public_transport |
| System | Description |
|---|---|
nielsen_dma | Nielsen DMA コード(米国市場、例: NYC は 501) |
uk_itl1 | UK ITL レベル 1 地域 |
uk_itl2 | UK ITL レベル 2 地域 |
eurostat_nuts2 | Eurostat NUTS レベル 2 地域(EU) |
| System | Description |
|---|---|
us_zip | 米国 5 桁の ZIP コード(例: 10001) |
us_zip_plus_four | 米国 9 桁の ZIP+4 コード(例: 10001-1234) |
gb_outward | 英国のアウトワードコード(例: SW1, EC1) |
gb_full | 英国の完全な郵便番号(例: SW1A 1AA) |
ca_fsa | カナダの Forward Sortation Area(例: K1A) |
ca_full | カナダの完全な郵便番号(例: K1A 0B1) |
de_plz | ドイツの Postleitzahl(例: 10115) |
fr_code_postal | フランスの code postal(例: 75001) |
au_postcode | オーストラリアの postcode(例: 2000) |
ch_plz | スイスの Postleitzahl(例: 8000) |
at_plz | オーストリアの Postleitzahl(例: 1010) |
audience_targeting
オーディエンスターゲティング機能。features.audience_targeting が true の場合のみ存在します。セラーがオーディエンスマッチングのために受け付ける識別子の種類、サイズの制約、予想されるマッチングのレイテンシを表します。
| Field | Type | Required | Description |
|---|---|---|---|
supported_identifier_types | string[] | 必須 | オーディエンスマッチングのために受け付ける PII 由来の識別子の種類。バイヤーはセラーがサポートする識別子のみ送信すべきです。値: hashed_email, hashed_phone。 |
minimum_audience_size | integer | 必須 | ターゲティングに必要な最小マッチ済みオーディエンスサイズ。このしきい値を下回るオーディエンスは status: too_small になります。プラットフォームによって異なる(100〜1000 が一般的)。 |
supports_platform_customer_id | boolean | true の場合、セラーはバイヤーの CRM/ロイヤルティ ID をマッチング可能な識別子として受け付けます。セラーが共有 ID 名前空間を持つクローズドエコシステムを運営している場合にのみ適用されます(例: ロイヤルティプログラムに照合するリテーラー)。バイヤーは AudienceMember.identifiers に platform_customer_id 値を含めることができます。マッチした ID のレポーティングには通常、クリーンルームまたはセラー自身のレポーティングサーフェスが必要です。 | |
supported_uid_types | string[] | オーディエンスマッチングのために受け付けるユニバーサル ID の種類(MAID、RampID、UID2 など)。MAID のサポートはプラットフォームによって大きく異なります。uids に type: maid を指定して送信する前にこのフィールドを確認すること。 | |
matching_latency_hours | object | アップロード後の予想マッチングレイテンシの範囲(時間単位)。ポーリングのタイミング調整と、push_notification_config を設定する前の適切な期待値設定に活用します。形式: { min: integer, max: integer }。 |
conversion_tracking
セラーレベルのコンバージョントラッキング機能。kind: "event" の最適化目標に対してセラーがサポートする内容を宣言します。
| Field | Type | Description |
|---|---|---|
multi_source_event_dedup | boolean | セラーが単一のゴール内で複数のイベントソース間のイベント重複排除を行えるかどうか。true の場合、複数のソースから同一の event_id は 1 回としてカウントされます。false または省略の場合、バイヤーはゴールごとに単一のイベントソースを使用すべきです。 |
supported_event_types | string[] | セラーがトラッキングできるイベントタイプ。省略した場合、すべての標準イベントタイプがサポートされます。 |
supported_uid_types | string[] | ユーザーマッチングのために受け付けるユニバーサル ID の種類。 |
supported_hashed_identifiers | string[] | 受け付けるハッシュ化された PII の種類(hashed_email, hashed_phone)。バイヤーは送信前にハッシュ化しなければなりません(SHA-256、正規化)。 |
supported_action_sources | string[] | セラーがイベントを受け付けるアクションソース。 |
attribution_windows | object[] | 利用可能なアトリビューションウィンドウ。単一要素の配列は固定ウィンドウを示し、複数要素の配列はバイヤーが最適化ゴールの attribution_window で選択できる設定オプションを示します。 |
portfolio
インベントリポートフォリオの情報:| Field | Type | Description |
|---|---|---|
publisher_domains | string[] | 必須。 セラーが扱うパブリッシャードメイン |
primary_channels | string[] | 主な広告チャネル |
primary_countries | string[] | 主な国(ISO コード) |
description | string | ポートフォリオの Markdown 説明 |
advertising_policies | string | コンテンツポリシーと制限 |
signals
Signals プロトコルの機能。supported_protocols に signals が含まれる場合のみ存在し、将来利用向けです。
creative
Creative プロトコルの機能。supported_protocols に creative が含まれる場合のみ存在します。
| Field | Type | Description |
|---|---|---|
supports_compliance | boolean | true の場合、このクリエイティブエージェントはコンプライアンス要件(required_disclosures, prohibited_claims)を持つブリーフを処理でき、対象フォーマットでディスクロージャーが満たされるか検証します。互換性のあるフォーマットを見つけるには list_creative_formats の disclosure_positions フィルタを使用します。 |
governance
Governance プロトコルの機能。supported_protocols に governance が含まれる場合のみ存在します。Governance エージェントはコンプライアンススコア、ブランドセーフティ評価、品質指標、サステナビリティ指標などのプロパティデータを提供します。
property_features
Governance エージェントが評価できるプロパティ機能の配列:| Field | Type | Description |
|---|---|---|
feature_id | string | 必須。 一意の ID(例: mfa_score, coppa_certified) |
type | string | 必須。 データ型: binary, quantitative, categorical のいずれか |
range | object | quantitative の場合: { min, max } |
categories | string[] | categorical の場合: 有効な値の一覧 |
description | string | 人が読める説明 |
methodology_url | string | 手法を示すドキュメントへの URL |
extensions_supported
エージェントがサポートする拡張ネームスペースの配列。バイヤーは、このエージェントからのレスポンスに含まれるext.{namespace} フィールドに有用なデータが入っていると期待できます。
| Field | Type | Description |
|---|---|---|
extensions_supported | string[] | 拡張ネームスペース(例: ["scope3", "garm"]) |
ext.{namespace} データを確認・処理できます。
Example:
- プロダクトレスポンスに Scope3 のサステナビリティデータを含む
ext.scope3が入る可能性 - クリエイティブポリシーに GARM のブランドセーフティ分類を含む
ext.garmが入る可能性 - レスポンスに IAB TCF の同意データを含む
ext.iab_tcfが入る可能性
The Capability Contract
機能を宣言した場合、セラーはそれに必ず対応しなければなりません。media_buy.execution.targeting.geo_postal_areas.us_zip: true→ バイヤーは US ZIP コードを送信でき、セラーはそれをターゲティングしなければなりませんmedia_buy.execution.targeting.geo_metros.nielsen_dma: true→ バイヤーは DMA コードを送信でき、セラーはそれをターゲティングしなければなりませんmedia_buy.features.content_standards: true→ 提供された場合、セラーはコンテンツ基準を適用しなければなりませんmedia_buy.execution.axe_integrationsに AXE の URL がある → セラーはそのエクスチェンジ経由で実行できます
false を宣言するか、省略してください。
Common Scenarios
Basic Capability Discovery
Check multi-protocol support
Filter sellers by capability
Use Capabilities to Build Targeting
機能情報は、create_media_buy のターゲティングで指定できる内容を示します。required_geo_targeting を使うと、特定のジオターゲティングの粒度や体系をサポートするセラーに絞り込めます。
| Inventory Type | Filter By | Example |
|---|---|---|
| デジタル(display, OLV, CTV) | Capability: required_geo_targeting | プロダクトは広いカバレッジを持ち、購入時にターゲティングを指定 |
| ローカル(radio, DOOH, local TV) | Coverage: metros, regions | プロダクト自体が特定地域に紐づく |
- デジタル在庫:
countries+required_geo_targeting(機能)を使い、create_media_buyで細かなターゲティングを適用 - ローカル在庫:
metros/regions(カバレッジ)を使い、ターゲット市場をカバーするプロダクトを探す
Local Inventory Example (Radio, DOOH)
地域に紐づく在庫では、プロダクト自体が地理的に限定されています。たとえば NYC DMA のラジオ局は NYC のみをカバーします。Response Example
- AdCP バージョン: バージョン 1
- サポートプロトコル: Media-buy のみ
- 認証モデル: エージェント信頼(
require_operator_auth: false)— 一度認証し、sync_accountsでブランドを宣言します - 課金: オペレーターまたはエージェント課金。デフォルトはオペレーター
- 国レベルのターゲティング: 利用可(ISO 3166-1 alpha-2:
US,GBなど) - 地域ターゲティング: 利用可(ISO 3166-2:
US-NY,GB-SCTなど) - 都市圏ターゲティング: Nielsen DMA のみ(米国市場)
- 郵便エリアターゲティング: US ZIP、英国アウトワードコード、カナダ FSA
- オーディエンスターゲティング: ハッシュ化メール、ハッシュ化電話番号、UID2、RampID を受け付け。最小マッチ済みオーディエンスサイズは 500。マッチングレイテンシは 1〜24 時間
- コンバージョントラッキング: ウェブサイト/アプリからの purchase, lead, add_to_cart, view_content イベントを受け付け。マルチソースの重複排除なし
- 拡張:
ext.scope3に Scope3 のサステナビリティデータ
Multi-protocol agent
単一エンドポイントで複数のプロトコルを実装するエージェントもあります。これはメディア購入とクリエイティブ生成の両方を管理するセラーに多く見られる形で、バイヤーはすべてのタスクを同じ URL に対して呼び出す。- Media Buy プロトコル: プロダクトディスカバリー、メディア購入、デリバリーレポーティング
- Creative プロトコル: クリエイティブライブラリ管理、AI によるクリエイティブ生成、
get_creative_deliveryを通じたバリアントレベルのデリバリー分析 - 共有アカウント:
sync_accountsで確立した単一アカウントが両プロトコルに適用されます
supported_protocols に "creative" が含まれる場合、バイヤーはこのエージェントに対してクリエイティブプロトコルのタスク(list_creative_formats, sync_creatives, get_creative_delivery など)を呼び出せる。セールスエージェントのクリエイティブ機能を参照。
地理標準のリファレンス
| Level | System | Examples |
|---|---|---|
| Country | ISO 3166-1 alpha-2 | US, GB, DE, CA |
| Region | ISO 3166-2 | US-NY, GB-SCT, DE-BY, CA-ON |
| Metro (US) | nielsen_dma | 501 (NYC), 803 (LA), 602 (Chicago) |
| Metro (UK) | uk_itl2 | UKI (London), UKD (North West) |
| Metro (EU) | eurostat_nuts2 | DE30 (Berlin), FR10 (Île-de-France) |
| Postal (US) | us_zip | 10001, 90210 |
| Postal (US) | us_zip_plus_four | 10001-1234 |
| Postal (UK) | gb_outward | SW1, EC1, M1 |
| Postal (UK) | gb_full | SW1A 1AA |
| Postal (CA) | ca_fsa | K1A, M5V |
list_authorized_properties(v2)からの移行
list_authorized_properties タスクは v3 で削除されました。v2 から移行する場合:
| Old Field | New Location |
|---|---|
publisher_domains | media_buy.portfolio.publisher_domains |
primary_channels | media_buy.portfolio.primary_channels |
primary_countries | media_buy.portfolio.primary_countries |
portfolio_description | media_buy.portfolio.description |
advertising_policies | media_buy.portfolio.advertising_policies |
last_updated | last_updated (top level) |
adcp.major_versions- バージョン互換性supported_protocols- サポートするドメインプロトコルmedia_buy.features- 任意機能のサポートmedia_buy.execution.axe_integrations- 広告エクスチェンジの対応media_buy.execution.creative_specs- VAST/MRAID のバージョンmedia_buy.execution.targeting- ジオターゲティングの粒度
エラーハンドリング
| Error Code | Description | Resolution |
|---|---|---|
AUTH_REQUIRED | 認証が必要 | 認証情報を提供する |
INTERNAL_ERROR | サーバーエラー | リトライ(バックオフ付き) |
ベストプラクティス
1. 機能情報をキャッシュする 機能は滅多に変わりません。結果をキャッシュし、鮮度判定にはlast_updated を利用します。
2. まずプロトコル対応を確認する
プロトコル固有のフィールドにアクセスする前に、supported_protocols に含まれているか確認してください。
3. 送る前に対応可否を確認する
セラーが未対応の郵便エリア体系を送らないこと。セラーがサポートしない機能を要求しないこと。
4. 非互換なら早期に除外する
必要な機能をサポートしていないセラーは、後から失敗を知るよりも早い段階でスキップしましょう。
5. 処理前に認証モデルを確認する
ディスカバリーの直後に account.require_operator_auth を確認してください。エージェント信頼とオペレータースコープのフローは大きく異なります。前者はすべてのブランドとオペレーターに単一の認証情報を使用し、後者はオペレーターごとの認証情報とセッションが必要です。
6. プロトコルバージョンでルーティングする
adcp.major_versions に基づき適切な API バージョンへルーティングしてください。
次のステップ
機能を取得した後は次を実施してください。- アカウントを設定する:
account.require_operator_authの認証モデルに従う。Accounts and Agents を参照 - プロダクトを絞り込む: 機能に応じたフィルタを使って
get_productsを実行 - プロパティを検証する: パブリッシャーの
adagents.jsonを取得しプロパティ定義を確認 - バイを作成する: サポートされる機能を用いて
create_media_buyを実行
関連情報
- Accounts and Agents - 認証モデル、アカウント設定、課金
- adagents.json Specification - パブリッシャーの認可ファイル
- Product Filters - 機能対応のフィルタリング
- Content Standards - ブランドセーフティ設定