Skip to main content
セラーがサポートする AdCP プロトコルと機能を確認します。バイヤーが最初に行い、セラーの対応状況を把握するための呼び出しです。 Response Time: ~2 seconds (configuration lookup) Purpose:
  • AdCP discovery - このエージェントは AdCP をサポートしているか? どのバージョンか?
  • Protocol support - どのドメインプロトコル(media_buy, signals)を扱うか?
  • Detailed capabilities - 機能、AXE 連携、ジオターゲティング、ポートフォリオ
Request Schema: /schemas/v1/protocol/get-adcp-capabilities-request.json Response Schema: /schemas/v1/protocol/get-adcp-capabilities-response.json

Tool-Based Discovery

AdCP はネイティブの MCP/A2A ツールディスカバリーを使用します。ツール一覧に get_adcp_capabilities が存在することが、AdCP をサポートしている証拠です。
Discovery Flow:
1. エージェントのツール一覧(MCP)またはスキル一覧(A2A)を確認
2. 'get_adcp_capabilities' ツールがあれば AdCP をサポート
3. get_adcp_capabilities を呼び出し、バージョン・プロトコル・機能を取得
4. 返却された機能に基づいて処理を進める
この方法の利点:
  • 標準の MCP/A2A メカニズムを使用(カスタム拡張なし)
  • 常に最新の機能を返却(古いメタデータではない)
  • 機能情報の単一の信頼できる情報源となる
:::note エージェントカード拡張(adcp-extension.json)は v3 で廃止されました。ツールベースのディスカバリーを使用してください。 :::

Request Parameters

FieldTypeDescription
protocolsstring[]任意。特定のプロトコル(media_buy, signals)に絞り込む。省略した場合はサポートされるすべてのプロトコルを返す。

Response Structure

adcp

AdCP プロトコルの基本情報:
FieldTypeDescription
major_versionsinteger[]必須。 サポートする AdCP のメジャーバージョン(例: [1]

supported_protocols

このセラーがサポートするドメインプロトコルの配列:
{
  "supported_protocols": ["media_buy"]
}

media_buy

Media-buy プロトコルの機能。supported_protocolsmedia_buy が含まれる場合のみ存在します。

features

Media-buy の任意機能。true と宣言した場合、セラーはその機能を利用したリクエストに必ず応じなければなりません。
FeatureDescription
inline_creative_managementcreate_media_buy リクエストでクリエイティブのインライン指定を受け付ける
property_list_filteringget_productsproperty_list パラメーターを尊重する
content_standardsコンテンツ基準の設定を完全にサポートする

execution

技術的な実行能力:
FieldTypeDescription
axe_integrationsstring[]セラーが実行可能な Agentic ad exchange (AXE) の URL
creative_specsobjectクリエイティブ仕様のサポート(VAST のバージョン、MRAID など)
targetingobjectターゲティング機能(ジオの粒度)
creative_specs
FieldTypeDescription
vast_versionsstring[]サポートする VAST バージョン(例: ["4.0", "4.1", "4.2"]
mraid_versionsstring[]サポートする MRAID バージョン
vpaidbooleanVPAID サポートの有無
simidbooleanSIMID サポートの有無
targeting
FieldTypeDescription
geo_countriesbooleanISO 3166-1 alpha-2 コードを用いた国レベルのターゲティング
geo_regionsbooleanISO 3166-2 コード(例: US-NY, GB-SCT)を用いた地域/州レベルのターゲティング
geo_metrosobjectシステムごとに規定された都市圏ターゲティング
geo_postal_areasobject国と精度に対応する郵便エリアターゲティング
geo_metros ではサポートする都市圏分類システムを指定します。
SystemDescription
nielsen_dmaNielsen DMA コード(米国市場、例: NYC は 501
uk_itl1UK ITL レベル 1 地域
uk_itl2UK ITL レベル 2 地域
eurostat_nuts2Eurostat NUTS レベル 2 地域(EU)
geo_postal_areas ではサポートする郵便コード体系を指定します。
SystemDescription
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

portfolio

インベントリポートフォリオの情報:
FieldTypeDescription
publisher_domainsstring[]必須。 セラーが扱うパブリッシャードメイン
primary_channelsstring[]主な広告チャネル
primary_countriesstring[]主な国(ISO コード)
descriptionstringポートフォリオの Markdown 説明
advertising_policiesstringコンテンツポリシーと制限

signals

Signals プロトコルの機能。supported_protocolssignals が含まれる場合のみ存在し、将来利用向けです。

governance

Governance プロトコルの機能。supported_protocolsgovernance が含まれる場合のみ存在します。Governance エージェントはコンプライアンススコア、ブランドセーフティ評価、サステナビリティ指標などのプロパティデータを提供します。

property_features

Governance エージェントが評価できるプロパティ機能の配列:
FieldTypeDescription
feature_idstring必須。 一意の ID(例: consent_quality, coppa_certified
typestring必須。 データ型: binary, quantitative, categorical のいずれか
rangeobjectquantitative の場合: { min, max }
categoriesstring[]categorical の場合: 有効な値の一覧
descriptionstring人が読める説明
methodology_urlstring手法を示すドキュメントへの URL
Example governance agent response:
{
  "adcp": { "major_versions": [1] },
  "supported_protocols": ["governance"],
  "governance": {
    "property_features": [
      { "feature_id": "consent_quality", "type": "quantitative", "range": { "min": 0, "max": 100 }, "description": "Quality score for consent collection practices", "methodology_url": "https://vendor.example.com/methodology/consent-quality" },
      { "feature_id": "coppa_certified", "type": "binary", "description": "COPPA compliance certification" },
      { "feature_id": "carbon_score", "type": "quantitative", "range": { "min": 0, "max": 100 }, "description": "Carbon footprint sustainability score", "methodology_url": "https://scope3.com/methodology/carbon-score" },
      { "feature_id": "content_category", "type": "categorical", "categories": ["news", "entertainment", "sports", "finance"], "description": "Primary content category" }
    ]
  }
}

extensions_supported

エージェントがサポートする拡張ネームスペースの配列。バイヤーは、このエージェントからのレスポンスに含まれる ext.{namespace} フィールドに有用なデータが入っていると期待できます。
FieldTypeDescription
extensions_supportedstring[]拡張ネームスペース(例: ["scope3", "garm"]
拡張スキーマは AdCP extension registry に掲載されています。エージェントが拡張をサポートすると宣言した場合、バイヤーはレスポンス内の ext.{namespace} データを確認・処理できます。 Example:
{
  "extensions_supported": ["scope3", "garm", "iab_tcf"]
}
これによりバイヤーは次のことを把握できます。
  • プロダクトレスポンスに 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

import { AdcpClient } from '@adcp/client';

const client = new AdcpClient({ baseUrl: 'https://seller.example.com/mcp' });

// セラーの機能を取得
const result = await client.getAdcpCapabilities({});

if (result.errors) {
  throw new Error(`Request failed: ${result.errors[0].message}`);
}

// プロトコル対応を確認
console.log(`AdCP versions: ${result.adcp.major_versions.join(', ')}`);
console.log(`Supported protocols: ${result.supported_protocols.join(', ')}`);

// media-buy の機能を確認
if (result.supported_protocols.includes('media_buy')) {
  const mediaBuy = result.media_buy;

  // 機能サポートを確認
  if (mediaBuy.features?.content_standards) {
    console.log('Content standards supported');
  }

  // AXE 連携を確認
  if (mediaBuy.execution?.axe_integrations?.includes('https://agentic.scope3.com')) {
    console.log('Scope3 AXE integration available');
  }

  // ジオターゲティングを確認
  if (mediaBuy.execution?.targeting?.geo_postal_areas?.us_zip) {
    console.log('US ZIP code targeting supported');
  }

  // ポートフォリオの概要
  console.log(`Publishers: ${mediaBuy.portfolio.publisher_domains.length}`);
  console.log(`Channels: ${mediaBuy.portfolio.primary_channels?.join(', ')}`);
}

Filter Sellers by Capability

// 特定の要件に対応するセラーを探す
async function findCompatibleSellers(sellers, requirements) {
  const compatible = [];

  for (const sellerUrl of sellers) {
    const client = new AdcpClient({ baseUrl: sellerUrl });
    const caps = await client.getAdcpCapabilities({});

    if (caps.errors) continue;

    // media_buy プロトコルをサポートしていること
    if (!caps.supported_protocols.includes('media_buy')) continue;

    const mediaBuy = caps.media_buy;

    // AXE 連携の要件を確認
    if (requirements.axeIntegration) {
      if (!mediaBuy.execution?.axe_integrations?.includes(requirements.axeIntegration)) {
        continue;
      }
    }

    // ジオターゲティングの要件を確認
    if (requirements.postalCodeTargeting) {
      if (!mediaBuy.execution?.targeting?.geo_postal_areas?.us_zip) {
        continue;
      }
    }

    // 機能要件を確認
    if (requirements.contentStandards) {
      if (!mediaBuy.features?.content_standards) {
        continue;
      }
    }

    compatible.push({ url: sellerUrl, capabilities: caps });
  }

  return compatible;
}

// Usage
const sellers = await findCompatibleSellers(
  ['https://seller1.com/mcp', 'https://seller2.com/mcp'],
  {
    axeIntegration: 'https://agentic.scope3.com',
    postalCodeTargeting: true,
    contentStandards: true
  }
);

Use Capabilities to Build Targeting

機能情報は、create_media_buy のターゲティングで指定できる内容を示します。required_geo_targeting を使うと、特定のジオターゲティングの粒度や体系をサポートするセラーに絞り込めます。
// まず機能を確認
const caps = await client.getAdcpCapabilities({});

if (!caps.supported_protocols.includes('media_buy')) {
  throw new Error('Seller does not support media_buy protocol');
}

const mediaBuy = caps.media_buy;

  // 特定のジオターゲティング機能を持つセラーのプロダクトに絞り込む
const products = await client.getProducts({
  brief: "Premium video inventory in US for ZIP-targeted campaign",
  filters: {
    channels: ['olv', 'ctv'],
    countries: ['US'],
    // ZIP ターゲティングをサポートするセラーに限定(機能フィルタ。実際の ZIP は不要)
    // level は粒度、system は分類体系
    required_geo_targeting: [
      { level: 'postal_area', system: 'us_zip' }
    ],
    // この AXE をサポートしているセラーのみに限定
    required_axe_integrations: ['https://agentic.scope3.com']
  }
});

// 次に、細かいターゲティングを指定して media buy を作成
// (セラーが郵便エリアをサポートする場合、特定の ZIP を指定可能)
const buy = await client.createMediaBuy({
  buyer_ref: 'my-campaign-001',
  brand_manifest: { url: 'https://mybrand.com' },
  packages: [{
    buyer_ref: 'package-001',
    product_id: products.products[0].product_id,
    pricing_option_id: products.products[0].pricing_options[0].id,
    budget: 10000,
    // targeting_overlay でプロダクトカバレッジ内の配信を絞り込む
    targeting_overlay: {
      geo_countries: ['US'],
      // セラーが対応している場合のみ ZIP ターゲティングを指定
      ...(mediaBuy.execution?.targeting?.geo_postal_areas?.us_zip && {
        geo_postal_areas: [{
          system: 'us_zip',
          values: ['10001', '10002', '10003', '10004', '10005']
        }]
      })
    }
  }],
  start_time: { type: 'asap' },
  end_time: '2025-03-01T00:00:00Z'
});
プロダクトの地理情報には 2 つのモデルがあります。
Inventory TypeFilter ByExample
デジタル(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 のみをカバーします。
// 特定の DMA にあるラジオのプロダクトを検索
const radioProducts = await client.getProducts({
  brief: "Radio inventory in NYC and LA markets",
  filters: {
    channels: ['radio'],
    // カバレッジフィルタ: これらの都市圏をカバーしていること
    metros: [
      { system: 'nielsen_dma', code: '501' },  // NYC
      { system: 'nielsen_dma', code: '803' }   // LA
    ]
  }
});

// ローカル在庫では targeting_overlay は任意。
// プロダクトのカバレッジ自体がジオを表す。
const buy = await client.createMediaBuy({
  buyer_ref: 'radio-campaign-001',
  brand_manifest: { url: 'https://mybrand.com' },
  packages: [{
    buyer_ref: 'package-001',
    product_id: radioProducts.products[0].product_id,
    pricing_option_id: radioProducts.products[0].pricing_options[0].id,
    budget: 5000
    // targeting_overlay は不要。プロダクトが NYC DMA をカバーしている
  }],
  start_time: { type: 'asap' },
  end_time: '2025-03-01T00:00:00Z'
});

Response Example

{
  "adcp": {
    "major_versions": [1]
  },
  "supported_protocols": ["media_buy"],
  "media_buy": {
    "features": {
      "inline_creative_management": true,
      "property_list_filtering": true,
      "content_standards": false
    },
    "execution": {
      "axe_integrations": ["https://agentic.scope3.com"],
      "creative_specs": {
        "vast_versions": ["4.0", "4.1", "4.2"],
        "mraid_versions": ["3.0"],
        "vpaid": false,
        "simid": true
      },
      "targeting": {
        "geo_countries": true,
        "geo_regions": true,
        "geo_metros": {
          "nielsen_dma": true,
          "uk_itl2": false,
          "eurostat_nuts2": false
        },
        "geo_postal_areas": {
          "us_zip": true,
          "us_zip_plus_four": false,
          "gb_outward": true,
          "gb_full": false,
          "ca_fsa": true
        }
      }
    },
    "portfolio": {
      "publisher_domains": ["example.com", "news.example.com"],
      "primary_channels": ["display", "olv"],
      "primary_countries": ["US", "CA"]
    }
  },
  "extensions_supported": ["scope3"],
  "last_updated": "2025-01-23T10:00:00Z"
}
これによりバイヤーは次を読み取れます。
  • AdCP バージョン: バージョン 1
  • サポートプロトコル: Media-buy のみ(signals は未対応)
  • 国レベルのターゲティング: 利用可(ISO 3166-1 alpha-2: US, GB など)
  • 地域ターゲティング: 利用可(ISO 3166-2: US-NY, GB-SCT など)
  • 都市圏ターゲティング: Nielsen DMA のみ(米国市場)
  • 郵便エリアターゲティング: US ZIP、英国アウトワードコード、カナダ FSA
  • 拡張: ext.scope3 に Scope3 のサステナビリティデータ

地理標準のリファレンス

LevelSystemExamples
CountryISO 3166-1 alpha-2US, GB, DE, CA
RegionISO 3166-2US-NY, GB-SCT, DE-BY, CA-ON
Metro (US)nielsen_dma501 (NYC), 803 (LA), 602 (Chicago)
Metro (UK)uk_itl2UKI (London), UKD (North West)
Metro (EU)eurostat_nuts2DE30 (Berlin), FR10 (Île-de-France)
Postal (US)us_zip10001, 90210
Postal (US)us_zip_plus_four10001-1234
Postal (UK)gb_outwardSW1, EC1, M1
Postal (UK)gb_fullSW1A 1AA
Postal (CA)ca_fsaK1A, M5V

list_authorized_properties(v2)からの移行

list_authorized_properties タスクは v3 で削除されました。v2 から移行する場合:
Old FieldNew Location
publisher_domainsmedia_buy.portfolio.publisher_domains
primary_channelsmedia_buy.portfolio.primary_channels
primary_countriesmedia_buy.portfolio.primary_countries
portfolio_descriptionmedia_buy.portfolio.description
advertising_policiesmedia_buy.portfolio.advertising_policies
last_updatedlast_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 CodeDescriptionResolution
AUTH_REQUIRED認証が必要認証情報を提供する
INTERNAL_ERRORサーバーエラーリトライ(バックオフ付き)

ベストプラクティス

1. 機能情報をキャッシュする 機能は滅多に変わりません。結果をキャッシュし、鮮度判定には last_updated を利用します。 2. まずプロトコル対応を確認する プロトコル固有のフィールドにアクセスする前に、supported_protocols に含まれているか確認してください。 3. 送る前に対応可否を確認する セラーが未対応の郵便エリア体系を送らないこと。セラーがサポートしない機能を要求しないこと。 4. 非互換なら早期に除外する 必要な機能をサポートしていないセラーは、後から失敗を知るよりも早い段階でスキップしましょう。 5. プロトコルバージョンでルーティングする adcp.major_versions に基づき適切な API バージョンへルーティングしてください。

次のステップ

機能を取得した後は次を実施してください。
  1. プロダクトを絞り込む: 機能に応じたフィルタを使って get_products を実行
  2. プロパティを検証する: パブリッシャーの adagents.json を取得しプロパティ定義を確認
  3. バイを作成する: サポートされる機能を用いて create_media_buy を実行

関連情報