> ## Documentation Index
> Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# 標準フォーマット対応の実装

このガイドは、クリエイティブフォーマットを実装する **セールスエージェント** 向けです。カスタムフォーマットを定義する前に、AdCP エコシステムで既に利用できるフォーマットを確認してください。

## 実装方針: まず確認し、必要なら拡張

多くのパブリッシャーは IAB 標準サイズ、一般的な動画仕様、広く使われるネイティブフォーマットなど、標準フォーマットの組み合わせをサポートしています。自前で定義するのではなく、次の手順で進めましょう。

1. **リファレンスクリエイティブエージェントを確認** し、必要なフォーマットが既にあるか調べる
2. 要件に合う場合は **既存フォーマットを参照** します
3. **独自要件があるときだけ** カスタムフォーマットを作成します

このアプローチにより:

* **保守負荷を削減** - 既存フォーマットを自分で維持する必要がない
* **クリエイティブの可搬性を向上** - バイヤーが複数パブリッシャーで再利用できます
* **エコシステムの一貫性を強化** - 共通フォーマットで同じ仕様を共有できます

## リファレンスクリエイティブエージェント

**URL:** `https://creative.adcontextprotocol.org`

**ステータス:** 本番サービス（実際に稼働している AdCP クリエイティブエージェント）

リファレンスクリエイティブエージェントは、広告業界で広く使われる一般的なクリエイティブフォーマットの公式定義を提供します。

* IAB 標準ディスプレイサイズ（300x250、728x90、320x50 など）
* 標準的な動画フォーマット（15s、30s、60s のプレロールなど）
* ストリーミングやポッドキャスト挿入用のオーディオフォーマット
* デジタルサイネージ向けの DOOH フォーマット
* レスポンシブ配置向けネイティブフォーマット
* 複数商品を扱うカルーセルフォーマット

**カスタムフォーマットを作成する前に、** 必要なフォーマットが既に存在するかリファレンスクリエイティブエージェントに問い合わせてください。

## 標準フォーマットを使う理由

### セールスエージェントにとって

* **保守負荷なし**: IAB 標準フォーマット定義を複製しなくて済む
* **エコシステムの一貫性**: 共通フォーマットで同じ仕様を利用できます
* **差別化に注力**: 在庫固有のカスタムフォーマットに時間を使える

### バイヤーにとって

* **可搬性**: 1 つのクリエイティブを複数パブリッシャーで利用可能
* **予測可能性**: フォーマット要件が一貫
* **迅速な立ち上げ**: パブリッシャーごとにカスタム制作しなくて済む

## 実装ステップ

### ステップ 1: 必要なフォーマットを洗い出す

在庫が受け付けるクリエイティブフォーマットを列挙します。例:

* ディスプレイ: 300x250、728x90、320x50
* 動画: 15 秒プレロール、30 秒プレロール
* ネイティブ: レスポンシブネイティブフォーマット

### ステップ 2: リファレンスクリエイティブエージェントを確認

`list_creative_formats` で `https://creative.adcontextprotocol.org` に問い合わせ、必要なフォーマットが既に存在するか確認します。リファレンスエージェントは次を管理しています。

* すべての IAB 標準ディスプレイサイズ
* 一般的な動画尺とアスペクト比
* 標準オーディオフォーマット
* DOOH の仕様
* ネイティブ広告フォーマット

### ステップ 3: 参照と定義を決める

**参照するケース:**

* 技術要件に完全一致するフォーマットがあります
* IAB 標準仕様で作られたクリエイティブを受け入れる
* パブリッシャー間でクリエイティブの可搬性を高めたい

**カスタムフォーマットを定義するケース:**

* 独自の技術要件がある（カスタム寸法、特殊アセットの必要など）
* パブリッシャー固有の検証や組み立てロジックが必要
* プレミアムで差別化された広告体験を提供します

### ステップ 4: レスポンスを実装

`list_creative_formats` を実装する際、標準フォーマットをサポートする場合はリファレンスクリエイティブエージェントを含めます。

**最も一般的: 標準フォーマットを参照**

在庫が標準フォーマットを受け入れる場合（ほとんどのパブリッシャーが該当）:

```json theme={null}
{
  "formats": [],
  "creative_agents": [
    "https://creative.adcontextprotocol.org"
  ]
}
```

これは「リファレンスクリエイティブエージェントが提供する標準フォーマットをすべてサポートしています」という意味になります。

**カスタムフォーマットもある場合: 両方を組み合わせる**

固有フォーマットに加えて標準フォーマットもサポートする場合:

```json theme={null}
{
  "formats": [
    {
      "format_id": {
        "agent_url": "https://youragent.com",
        "id": "homepage_takeover"
      },
      "name": "Homepage Takeover",
      "type": "rich_media",
      "assets": [...]
    }
  ],
  "creative_agents": [
    "https://creative.adcontextprotocol.org"
  ]
}
```

これは「カスタムの Homepage Takeover に加え、リファレンスクリエイティブエージェントの標準フォーマットもすべてサポートします」という意味です。

**カスタムフォーマットのみの場合: リファレンスを省略**

まれですが、真に独自の要件を持つカスタムフォーマットしかサポートしない場合:

```json theme={null}
{
  "formats": [
    {
      "format_id": {
        "agent_url": "https://youragent.com",
        "id": "custom_holographic_display"
      },
      "name": "Holographic Display Format",
      "type": "dooh",
      "assets": [...]
    }
  ]
}
```

**注意:** これはまれです。多くのパブリッシャーは少なくとも一部の標準フォーマット（300x250 など）を受け入れるため、通常はリファレンスクリエイティブエージェントの URL を含めます。

## 含まれる標準フォーマット

リファレンスクリエイティブエージェントは主要チャネルを横断してフォーマットを提供します。

* **[Display Formats](/docs/creative/channels/display)** - IAB 標準バナーサイズ（300x250、728x90、320x50 など）
* **[Video Formats](/docs/creative/channels/video)** - 標準的な動画広告仕様（15s、30s、縦型、CTV）
* **[Audio Formats](/docs/creative/channels/audio)** - ストリーミングオーディオやポッドキャスト挿入用フォーマット
* **[DOOH Formats](/docs/creative/channels/dooh)** - デジタルサイネージや交通広告の仕様
* **[Carousel Formats](/docs/creative/channels/carousels)** - 複数商品やスライドショー向けフォーマット

各フォーマットには次が含まれます。

* 正確な技術要件（寸法、尺、ファイルタイプなど）
* 必須/任意アセットの仕様
* ユニバーサルマクロのサポート
* プレビューとバリデーション機能

## フォーマットディスカバリーの流れ

バイヤーがセールスエージェントからフォーマットを取得する際:

1. **バイヤーが** セールスエージェントへ `list_creative_formats` を呼び出す
2. **レスポンスに** カスタムフォーマットと `creative_agents: ["https://creative.adcontextprotocol.org"]` を含めます
3. **バイヤーが再帰的に** リファレンスエージェントへ問い合わせ、標準フォーマットを取得
4. **バイヤーは** カスタムフォーマットと標準フォーマットを合わせた一覧を確認

バイヤーは問い合わせた URL を追跡し、無限ループを避けます。

## セールスエージェント向けベストプラクティス

### ✅ 標準フォーマットを参照します

```json theme={null}
{
  "creative_agents": [
    "https://creative.adcontextprotocol.org"
  ]
}
```

**いつ:** 特別な要件がなく、在庫が IAB 標準サイズを受け入れる場合

**理由:** 保守を削減し、一貫性を確保し、バイヤーは既存クリエイティブを流用できます

### ✅ カスタムフォーマットを定義します

```json theme={null}
{
  "formats": [
    {
      "format_id": {
        "agent_url": "https://youragent.com",
        "id": "native_feed_card"
      },
      "type": "native"
    }
  ]
}
```

**いつ:** 独自のインベントリ体験や特定の技術要件がある場合

**理由:** 差別化やプレミアム在庫の提供が可能になります

### ❌ 標準フォーマットを複製しません

```json theme={null}
{
  "formats": [
    {"format_id": {"agent_url": "https://youragent.com", "id": "display_300x250"}},
    {"format_id": {"agent_url": "https://youragent.com", "id": "display_728x90"}},
    {"format_id": {"agent_url": "https://youragent.com", "id": "display_320x50"}},
    // ... copying 50+ standard formats
  ]
}
```

**ダメな理由:** 保守負荷が高く、バージョンドリフトやエコシステム間の非一貫性を招く

**例外:** これらのフォーマットに対してカスタムの検証/プレビューが必要な場合

### ✅ 必要に応じて両方使います

```json theme={null}
{
  "formats": [
    // Your differentiating formats
  ],
  "creative_agents": [
    "https://creative.adcontextprotocol.org"
  ]
}
```

**結果:** バイヤーはカスタムフォーマットに加え、すべての標準フォーマットを確認できます

## フォーマット ID の名前空間

複数のエージェントがフォーマットを定義しても衝突しないよう、AdCP はフォーマット識別子に **名前空間パターン** を用います。

### 名前空間パターン: `{domain}:{format_id}`

**構造:**

```
domain:format_id
```

**例:**

* `creative.adcontextprotocol.org:display_300x250`
* `creative.adcontextprotocol.org:video_30s_hosted`
* `youragent.com:homepage_takeover_2024`
* `publisher.example:native_feed_card`

### ドメインの要件

名前空間付き format\_id のドメインは次を満たす必要があります。

1. `{domain}/.well-known/adagents.json` で **有効なエージェントカードをホスト** します
2. エージェントカードの拡張で **MCP エンドポイント** を宣言します
3. 標準のエージェントカード欄で **A2A エンドポイント** を宣言します

**例: `https://youragent.com/.well-known/adagents.json` のエージェントカード**

```json theme={null}
{
  "agents": [
    {
      "agent_url": "https://youragent.com",
      "agent_name": "Your Creative Agent",
      "protocols": ["mcp", "a2a"],
      "mcp_endpoint": "https://youragent.com/mcp",
      "a2a_endpoint": "https://youragent.com/a2a",
      "capabilities": ["list_creative_formats", "preview_creative"]
    }
  ]
}
```

これにより、その名前空間のドメインがフォーマット仕様とバリデーションを提供できる有効なエージェントであることが保証されます。

### 名前空間を使うべきタイミング

フォーマットを定義する際は **常に名前空間付き format\_id** を使用してください。

```json theme={null}
{
  "formats": [
    {
      "format_id": {
        "agent_url": "https://youragent.com",
        "id": "homepage_takeover"
      },
      "name": "Homepage Takeover",
      "type": "rich_media"
    }
  ]
}
```

**メリット:**

* **衝突なし** - 各エージェントが自分の名前空間を保有
* **所有者が明確** - ドメインが権威あるエージェントを示します
* **発見可能** - バイヤーがドメインのエージェントカードを取得できます
* **検証可能** - エージェントカードでドメイン所有を証明

### エージェント種別別の名前空間例

**リファレンスクリエイティブエージェント:**

```json theme={null}
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  }
}
```

**パブリッシャーセールスエージェント:**

```json theme={null}
{
  "format_id": {
    "agent_url": "https://youragent.com",
    "id": "custom_format"
  }
}
```

**DCO プラットフォーム:**

```json theme={null}
{
  "format_id": {
    "agent_url": "https://dco.example",
    "id": "dynamic_creative_v2"
  }
}
```

### 衝突の解消

名前空間付き format\_id では、各ドメインが自分の名前空間を管理するため衝突は **発生しません**。

**衝突しない例:**

```json theme={null}
// Two different formats, both valid
{
  "format_id": {
    "agent_url": "https://publisher-a.com",
    "id": "video_30s"
  }
}
{
  "format_id": {
    "agent_url": "https://publisher-b.com",
    "id": "video_30s"
  }
}
```

バイヤーが複数のソースから同じ名前空間付き format\_id を受け取った場合、それらは **同一のフォーマット** です。名前空間が同一性を保証します。

### バリデーションルール

1. **ドメインは agent\_url のドメインと一致していること:**
   ```json theme={null}
   // ✅ Valid - domain matches
   {
     "format_id": {
       "agent_url": "https://youragent.com",
       "id": "format_x"
     }
   }

   // ❌ Invalid - domain mismatch
   {
     "format_id": {
       "agent_url": "https://otheragent.com",
       "id": "format_x"
     }
   }
   ```

2. **ドメインは有効なエージェントカードを持つこと:**
   * `{domain}/.well-known/adagents.json` にエージェントカードが存在します
   * MCP および/または A2A エンドポイントを宣言しています
   * エンドポイントが機能しています

3. **format\_id はパターンに従うこと:**
   * `{domain}:{format_id}` 構造
   * ドメインは有効な DNS ホスト名
   * format\_id は英数字とアンダースコア/ハイフン

### 非名前空間 ID からの移行

以前に `display_300x250` のようなシンプルな ID を使用していた場合は、名前空間付きに移行します。

**移行前:**

```json theme={null}
{
  "format_id": {
    "agent_url": "https://youragent.com",
    "id": "display_300x250_old"
  }
}
```

**移行後:**

```json theme={null}
{
  "format_id": {
    "agent_url": "https://youragent.com",
    "id": "display_300x250"
  }
}
```

必要に応じて移行期間中は両方をサポートしても構いませんが、新しい実装では最初から名前空間付き ID を使用してください。

## 権威としてのリファレンスエージェント

各フォーマットは `format_id` の `agent_url` で権威となるソースを示します。

```json theme={null}
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  },
  "name": "Medium Rectangle",
  "type": "display"
}
```

この URL のクリエイティブエージェントが次の決定的なソースとなります。

* フォーマット仕様の完全版
* アセット要件とバリデーションルール
* プレビュー生成
* レンダリング手順

## 標準フォーマットを使わないケース

次の場合は独自フォーマットを定義します。

1. **固有の技術要件** - プラットフォームが IAB 標準とは異なる仕様を必要とします
2. **カスタム検証** - 追加のクリエイティブ審査や承認が必要
3. **独自の組み立て** - レンダリングパイプラインに特別な要件があります
4. **プレミアム体験** - 標準フォーマットではカバーできない差別化された商品

これらの場合でも、基本的な在庫には標準フォーマットを参照しつつ、プレミアム枠にカスタムフォーマットを定義できます。

## 実装に関する補足

### フォーマット権威のパターン

`agent_url` フィールドにより **分散型のフォーマット権威** モデルが成立します。

* リファレンスエージェントは IAB 標準の権威
* 各パブリッシャーは自社カスタムフォーマットの権威
* バイヤーは正しい権威を発見し、検証できます

### バージョン管理

リファレンスクリエイティブエージェントはフォーマットのバージョンと互換性を管理します。

* フォーマット定義は業界標準に合わせて進化
* 後方互換性を維持
* バイヤーは安定した format\_id を前提にできます

### 何が「標準」か

**標準フォーマット** とは、`https://creative.adcontextprotocol.org` のリファレンスクリエイティブエージェントが定義し、次に基づくものです。

1. **業界仕様** - IAB 標準、VAST/VPAID 仕様、一般的な広告ユニットサイズ
2. **クロスプラットフォーム互換性** - 複数パブリッシャーでカスタマイズなしに動作
3. **安定した定義** - エコシステム全体の一貫性のためにバージョン管理されます

**プロトコルの観点:** プロトコルレベルでは標準フォーマットも他のフォーマットと同じで、特別な API 処理はありません。`agent_url` が権威となるエージェントを示す点はカスタムフォーマットと同様です。

**エコシステムの観点:** 標準フォーマットは可搬性を提供します。バイヤーは 1 つのクリエイティブを作成し、同じフォーマット定義を参照する多くのパブリッシャーで利用できます。

## 関連ドキュメント

* [Creative Protocol Overview](/docs/creative) - フォーマット、マニフェスト、エージェントの連携
* [Creative Formats](/docs/creative/formats) - フォーマット仕様とディスカバリーの理解
* [Channel Guides](/docs/creative/channels/video) - 媒体別の詳細フォーマットガイド
* [list\_creative\_formats Task](/docs/creative/task-reference/list_creative_formats) - フォーマットディスカバリーの API リファレンス
