> ## 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.

# Creative Formats

> AdCP のクリエイティブフォーマットは、広告の構築と配信を形成するアセット要件・技術的制約・レンダリング動作を定義します。

> **3.1 の正準フォーマット**: 3.1 以降、フォーマットはプロダクト上で `format_options`（12 の正準フォーマットの一つを絞り込む `ProductFormatDeclaration` の配列）を介してインラインで宣言できます。このページは v1 のフォーマットレジストリモデルを説明します。これは 4.x を通じて第一級のパスであり続けます。正準フォーマットのモデルについては、[canonical-formats](/docs/creative/canonical-formats) と[マイグレーションガイド](/docs/creative/canonical-formats-migration)を参照してください。

クリエイティブフォーマットは、広告クリエイティブを実体化するための構造的・技術的要件を定義します。フォーマットは次を規定します。

* `assets` 配列を通じて必要なアセットタイプ（動画、画像、テキスト、音声など）
* 各アセットの技術的制約（尺・寸法・ファイルタイプ・上限）
* 生成されたクリエイティブの配信方法と検証方法

フォーマットが定義するのは要件と制約であり、ブランドコンテンツやレイアウトロジックではありません。

フォーマット、マニフェスト、クリエイティブエージェントの関係概要は [Creative Protocol Overview](/docs/creative) を参照してください。

## Standard フォーマットと Custom フォーマット

AdCP は権威性と再利用性に基づいて 2 種類のフォーマットをサポートします（機能差ではありません）。

### Standard Formats

Standard フォーマットは **AdCP リファレンスクリエイティブエージェント** (`https://creative.adcontextprotocol.org`) が提供する事前定義の仕様です。

Standard フォーマットの特徴:

* **業界整合**: IAB のフォーマットファミリーや一般的な慣行に基づく
* **移植性**: プラットフォームをまたいで一貫して動作
* **検証済み**: 既知の技術要件に対して事前にテスト済み
* **探索可能**: `list_creative_formats` で返されます
* **メンテナンス済み**: 中央で文書化され、更新されます

Standard フォーマットは次のような一般的ユースケースをカバーします。

* 固定またはレスポンシブ寸法のディスプレイフォーマット
* 標準尺とアスペクト比を持つ動画フォーマット
* 規定尺のオーディオフォーマット
* 代表的な DOOH ディスプレイおよび動画実装

**営業エージェント向けの指針:** カスタムフォーマットを定義する前に、同等の Standard フォーマットが存在しないか確認してください。多くのパブリッシャーは一般的な在庫に Standard フォーマットを参照し、真に差別化された提供だけをカスタムにします。詳細は [Implementing Standard Format Support](/docs/media-buy/capability-discovery/implementing-standard-formats) を参照。

### Custom Formats

Custom フォーマットは、Standard では正確に表現できない在庫向けに、パブリッシャーやプラットフォームが定義します。

使用するケース:

* **固有の制約**: 非標準の寸法、実在のディスプレイ、特別なアセット要件
* **特殊能力**: プラットフォーム固有の描画やインタラクション
* **プレミアム在庫**: 差別化されたオーダーメイドの広告商品
* **カスタム検証ロジック**: パブリッシャー独自の審査や組み立てルール

必要な場合にのみカスタムを導入し、可能な限り Standard を再利用して移植性と理解を高めてください。

## フォーマットの探索

バイヤーは営業エージェントが公開する `list_creative_formats` タスクでサポートフォーマットを探索します。

フォーマットの取得元:

* **営業エージェント自身** - カスタムフォーマット
* **参照するクリエイティブエージェント** - 例えばリファレンスエージェントなどの Standard フォーマット

**探索レスポンス例:**

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/creative/list-creative-formats-response.json",
  "status": "completed",
  "formats": [
    {
      "format_id": {
        "agent_url": "https://youragent.com",
        "id": "homepage_takeover_2024"
      },
      "name": "Homepage Takeover",
      "type": "rich_media"
    }
  ],
  "creative_agents": [
    {
      "agent_url": "https://creative.adcontextprotocol.org"
    }
  ]
}
```

営業エージェントが自社カスタムフォーマットと、参照するクリエイティブエージェントの全フォーマットをサポートしていることを示します。

**フォーマットサポートを実装する営業エージェントへ:** [Implementing Standard Format Support](/docs/media-buy/capability-discovery/implementing-standard-formats) を参照。

## フォーマットの権威

各フォーマットは `agent_url` を持ち、そのフォーマットに対する権威クリエイティブエージェントを示します。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/format.json",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "video_30s_hosted"
  },
  "name": "Standard 30-Second Video"
}
```

権威クリエイティブエージェントが提供するもの:

* 完全なフォーマット仕様
* クリエイティブ要素の要件と制約
* 検証ルール
* プレビュー生成
* 正式なドキュメント

バイヤーと営業エージェントは `agent_url` を参照して正式なフォーマット情報を取得します。

## フォーマットのビジュアル表現

フォーマットは、UI でのブラウズや選択を支援するメタデータを任意で含められます。

### Showcase 例

**Field**: `example_url`
**Purpose**: パブリッシャー管理のショーケースへのディープリンク

含められるもの:

* インタラクティブデモ
* 動画
* 複数のクリエイティブ例
* ベストプラクティスや仕様

これにより、プロトコルの表現を制限せず複雑なフォーマットを提示できます。

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/format.json",
  "format_id": {
    "agent_url": "https://publisher.com",
    "id": "homepage_takeover_premium"
  },
  "name": "Premium Homepage Takeover",
  "type": "rich_media",
  "description": "Full-screen immersive experience with video, carousel, and companion units",
  "example_url": "https://publisher.com/formats/homepage-takeover-demo"
}
```

## フォーマット参照

<Note>
  `format_id`（構造化された参照オブジェクト）と `format`（完全な定義オブジェクト）の規範的な対比——最も一般的な二つのバリデーションエラーを含む——については、[フォーマット参照](/docs/protocol/format-references)を参照してください。
</Note>

AdCP では曖昧さや名前衝突を避けるため、常に構造化されたフォーマット識別子を使います。

### 構造化フォーマット ID（必須）

**すべてのフォーマット参照** は構造化された format ID オブジェクトを使います。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/format-id.json",
  "agent_url": "https://creative.adcontextprotocol.org",
  "id": "display_300x250"
}
```

この方式により次が保証されます。

* 明示的な名前空間
* 衝突しない識別子
* スキーマ検証
* 互換性を壊さない拡張性

文字列のみのフォーマット ID を API 契約で使用してはなりません。

### 構造化フォーマット ID の使用箇所

**リクエスト:**

* `sync_creatives` - クリエイティブアセットのアップロード
* `build_creative` - クリエイティブエージェントによる生成
* `preview_creative` - プレビュー生成
* `create_media_buy` - フォーマット要件の指定

**レスポンス:**

* `list_creatives` - クリエイティブ詳細の返却
* `get_products` - プロダクトのフォーマット能力
* `list_creative_formats` - フォーマット定義
* クリエイティブやフォーマット情報を含むあらゆるレスポンス

**フィルターパラメーター:**

* リクエストフィルターの `format_ids`（複数形） - 構造化 format\_id オブジェクトの配列

### 検証ルール

**すべての AdCP エージェントが守るべきこと:**

1. ✅ すべてのコンテキストで構造化 `format_id` を受け付けます
2. ✅ すべてのレスポンスで構造化 `format_id` を返す
3. ❌ 文字列のみの format\_id をエラー付きで拒否します
4. ❌ 文字列 format\_id を API 契約で使用しません

**不正な format\_id のエラーハンドリング:**

```json theme={null}
{
  "error": "invalid_format_id",
  "message": "format_id must be a structured object with 'agent_url' and 'id' fields",
  "received": "display_300x250",
  "required_structure": {
    "agent_url": "https://creative-agent-url.com",
    "id": "display_300x250"
  }
}
```

### レガシー考慮

一部のレガシーシステムは文字列 format\_id を送る場合があります。実装者の選択肢:

1. **厳格な検証**（推奨）: 文字列を即時にエラーで拒否
2. **非推奨化を伴う自動アップグレード**: 一時的に受け付け、警告をログに残し、廃止時期を明示

自動アップグレードする場合は以下を守ってください。

* agent\_url にマッピングできる既知のフォーマットのみ文字列を受け入れる
* 不明なフォーマット文字列は即座に失敗させる
* すべてのリクエストで非推奨警告をログ出力します
* 廃止日を設定し通知する（最大 6 か月を推奨）

## フォーマット構造

フォーマットは次の主要フィールドを持つ JSON オブジェクトです。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/format.json",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "video_30s_hosted"
  },
  "name": "30-Second Hosted Video",
  "type": "video",
  "assets": [
    {
      "item_type": "individual",
      "asset_id": "video_file",
      "asset_type": "video",
      "asset_role": "hero_video",
      "required": true,
      "requirements": {
        "duration": "30s",
        "format": ["MP4"],
        "resolution": ["1920x1080", "1280x720"]
      }
    },
    {
      "item_type": "individual",
      "asset_id": "end_card_image",
      "asset_type": "image",
      "asset_role": "end_card",
      "required": false,
      "requirements": {
        "dimensions": "1920x1080",
        "format": ["PNG", "JPG"]
      }
    },
    {
      "item_type": "individual",
      "asset_id": "companion_banner",
      "asset_type": "image",
      "asset_role": "companion",
      "required": false,
      "requirements": {
        "dimensions": "300x250",
        "format": ["PNG", "JPG", "GIF"]
      }
    },
    {
      "item_type": "individual",
      "asset_id": "impression_tracker",
      "asset_type": "url",
      "asset_role": "third_party_tracking",
      "required": false,
      "requirements": {
        "description": "Third-party impression tracking pixel URL"
      }
    }
  ],

  // DEPRECATED: Use "assets" above instead. Kept for backward compatibility.
  "assets": [
    {
      "item_type": "individual",
      "asset_id": "video_file",
      "asset_type": "video",
      "asset_role": "hero_video",
      "requirements": {
        "duration": "30s",
        "format": ["MP4"],
        "resolution": ["1920x1080", "1280x720"]
      }
    }
  ]
}
```

**主なフィールド:**

* **format\_id**: 一意の識別子（`domain:id` のように名前空間化も可）
* **agent\_url**: 当該フォーマットの権威クリエイティブエージェント
* **type**: *（非推奨、任意）* 高水準のカテゴリヒント。後述の注意事項を参照。
* **assets**: すべてのアセット仕様の配列。`required` ブール値で必須/任意を示します。クリエイティブ要件を理解するための正式な情報源。
* **asset\_role**: アセットの役割（hero\_image, logo, cta\_button など）
* **renders**: レンダリング成果物の配列（寸法付き、後述）
* **accessibility**: 任意の WCAG 準拠宣言 — [Accessibility](/docs/creative/accessibility) を参照

<Note>
  **非推奨のお知らせ**: `type` フィールドは非推奨で任意です。クリエイティブ要件（動画・画像・テキストなど）の正確な情報は `assets` 配列が提供するため、こちらを使用すべきです。「video」「display」「native」といったカテゴリは、Performance Max（複数チャネルにまたがる）・検索広告（高インテントのテキストのみ）・会話型 AI プレースメントなど、新興フォーマットへの対応が困難な情報損失の抽象化です。
</Note>

### アセットディスカバリ

`assets` 配列でアセット要件を包括的に示します。各アセットは `required` ブール値を持ちます。

* **`required: true`** - 有効なクリエイティブには必須
* **`required: false`** - 任意。提供されればリッチになる（例: コンパニオンバナー、第三者トラッキングピクセル）

この統一的な表現により、クリエイティブツールや AI エージェントはフォーマットの能力を理解し、最小要件を明確にしつつ任意アセットがあればリッチな体験を提供できます。

### サードパーティトラッカーのサポート

フォーマットがサードパーティ計測をサポートするかどうかは、その `assets` 配列にトラッカースロットが含まれるかどうかで決まります。トラッカースロットは、`asset_type: "url"` を持ち、かつ次のいずれかを持つ任意のアセットです:

* `url_type: "tracker_pixel"` または `url_type: "tracker_script"`（メカニズム側の宣言）、または
* `impression_tracker`、`click_tracker`、`viewability_tracker`、`third_party_tracker` のいずれかの `requirements.role`（目的側の宣言。フォーマットの作者がメカニズムではなく役割を宣言していても、スロットはトラッカー URL を受け入れます）

バイヤーエージェントは、サードパーティ検証を必要とするクリエイティブを割り当てる前にこれを確認すべきです。

ほとんどのデジタルフォーマット（ディスプレイ、動画、CTV、音声、DOOH）には任意の `impression_tracker` アセットが含まれます。トラッカースロットのないフォーマット——放送 TV スポットなど——は、クリエイティブレベルのピクセルトラッキングをサポートしません。これらのフォーマットの計測は、クリエイティブに埋め込まれたピクセルではなく、プロダクトの `billing_measurement` 条件で宣言された外部ソース（パネルデータ、セットトップボックスのテレメトリ）に由来します。

DoubleVerify のビューアビリティや IAS のブランドセーフティ計測を必要とするバイヤーエージェントは、トラッカーサポートでフォーマットをフィルタリングすべきです。トラッカースロットが存在しない場合、それらのベンダーはクリエイティブを計測できません——バイヤーは代わりにセラーが宣言した計測ベンダーに頼らなければなりません。

### 型付きアセット要件

アセットタイプごとに、そのアセットに適用される制約を定義した要件スキーマがあります。`requirements` オブジェクトは `asset_type` に基づいて型付けされます。

**画像アセット** (`asset_type: "image"`):

* `min_width`, `max_width`, `min_height`, `max_height` - 寸法制約（正確な寸法を指定する場合は min=max にします）
* `aspect_ratio` - 必須アスペクト比（例: '1:1'）
* `formats` - 許可ファイル形式（jpg, jpeg, png, webp, gif, svg, avif）
* `max_file_size_kb` - 最大ファイルサイズ
* `animation_allowed` - アニメーション画像を受け付けるか
* `max_animation_duration_ms` - 最大アニメーション時間

**動画アセット** (`asset_type: "video"`):

* `min_width`, `max_width`, `min_height`, `max_height` - 寸法制約
* `aspect_ratio` - 必須アスペクト比（例: '16:9'）
* `min_duration_ms`, `max_duration_ms` - 尺の制約
* `containers` - 許可コンテナ形式（mp4, webm, mov）
* `codecs` - 許可コーデック（h264, h265, vp9, av1）
* `frame_rates` - 許可フレームレート（例: \[24, 30, 60]）
* `max_file_size_kb`, `max_bitrate_kbps` - サイズ制約

**HTML アセット** (`asset_type: "html"`):

* `max_file_size_kb` - 最大ファイルサイズ
* `sandbox` - 実行環境（`none`, `iframe`, `safeframe`, `fencedframe`）
* `external_resources_allowed` - 外部スクリプト/画像の読み込みを許可するか
* `allowed_external_domains` - 外部リソースで許可するドメイン

**JavaScript アセット** (`asset_type: "javascript"`):

* `max_file_size_kb` - 最大ファイルサイズ
* `module_type` - モジュール形式（`script`, `module`, `iife`）
* `external_resources_allowed` - 動的リソース読み込みを許可するか
* `allowed_external_domains` - 動的読み込みで許可するドメイン

**音声アセット** (`asset_type: "audio"`):

* `min_duration_ms`, `max_duration_ms` - 尺の制約
* `formats` - 許可音声形式（mp3, aac, wav, ogg, flac）
* `sample_rates` - 許可サンプルレート（Hz単位、例: \[44100, 48000]）
* `channels` - 許可チャンネル構成（mono, stereo）
* `min_bitrate_kbps`, `max_bitrate_kbps` - ビットレート制約
* `max_file_size_kb` - 最大ファイルサイズ

**テキストアセット** (`asset_type: "text"`):

* `min_length`, `max_length` - 文字数制限
* `min_lines`, `max_lines` - 行数制限
* `character_pattern` - 許可文字の正規表現
* `prohibited_terms` - 禁止ワード/フレーズ
* `allowed_values` - 許可される文字列のクローズドリスト。リスト外の提出は `CREATIVE_VALUE_NOT_ALLOWED` で拒否されます

**クローズドセットのテキスト例（法務/ブランド承認済みの CTA リスト）:**

```json theme={null}
{
  "asset_id": "cta_label",
  "asset_type": "text",
  "required": true,
  "requirements": {
    "max_length": 14,
    "allowed_values": ["Shop Now", "Learn More", "Get Quote", "Find a Provider"]
  }
}
```

規制対象のバーティカル（製薬、金融サービス）やブランド管理のプログラムのセラーは、法務またはブランドが事前承認した正確な文字列を公開するために `allowed_values` を使います。宣言されたすべての制約は連言的で（すべての許可値は `max_length`、`character_pattern` なども満たさなければならない）、マッチングは大文字小文字を区別します——バイヤーはリストされた文字列の一つを逐語的に提出しなければなりません（MUST）。テキストスロットを埋めるために LLM を使うバイヤーエージェントは、自由に生成して拒否後にリトライするのではなく、`allowed_values` を制約付きサンプリングのオプションとして渡すべきです。

提出された値がリストにない場合、セラーは `CREATIVE_VALUE_NOT_ALLOWED` を返さなければならず（MUST）、`error.field` は問題のアセットパスを指し、`error.details.allowed_values` はフォーマットのリストをエコーして、バイヤーが決定論的に再プロンプトできるようにします。

**URL アセット** (`asset_type: "url"`):

* `role` - 標準的な用途（clickthrough, impression\_tracker, click\_tracker など）
* `protocols` - 許可プロトコル（https, http）
* `allowed_domains` - 許可遷移先ドメイン
* `macro_support` - マクロ置換をサポートするか

**HTML 実行コンテキストを含む例:**

```json theme={null}
{
  "asset_id": "banner_html",
  "asset_type": "html",
  "required": true,
  "requirements": {
    "max_file_size_kb": 150,
    "sandbox": "safeframe",
    "external_resources_allowed": false
  }
}
```

これはクリエイティブエージェントに「外部リソース読み込みなしの SafeFrame コンテナで動作する HTML を構築せよ」と伝えます。

詳細は [Display Ads - HTML Display Formats](/docs/creative/channels/display#html-display-formats-with-execution-context) を参照。

### アセットオーバーレイ

一部のフォーマットは、バイヤーのクリエイティブコンテンツの上に重なるパブリッシャー管理要素（動画プレイヤーコントロール、パブリッシャーロゴなど）を含みます。フォーマットはこれらを関連アセットの `overlays` として宣言し、クリエイティブエージェントとバイヤーがどの領域が覆われるかを把握して合成できるようにします。

オーバーレイの境界はアセット自身の左上隅を基準とした相対値で表します。`unit` フィールドは `"px"`（絶対ピクセル）または `"fraction"`（アセット寸法に対する比率: `x`/`y` はアセット自身の端から 0.0、`width`/`height` は 0.12 がアセット寸法の 12%）のいずれかです。同じアセット上の異なるオーバーレイが異なる単位を使う場合があり、クリエイティブエージェントはそれぞれ独立して処理しなければなりません。

```json theme={null}
{
  "item_type": "individual",
  "asset_id": "video",
  "asset_type": "video",
  "required": true,
  "requirements": {
    "aspect_ratio": "16:9",
    "max_duration_ms": 15000
  },
  "overlays": [
    {
      "id": "play_pause",
      "description": "Play/pause control — avoid placing CTA, copy, or logos here",
      "bounds": { "x": 0, "y": 285, "width": 120, "height": 120, "unit": "px" },
      "visual": {
        "url": "https://publisher.example.com/controls/play.svg"
      }
    },
    {
      "id": "volume",
      "description": "Volume control",
      "bounds": { "x": 0.88, "y": 0.85, "width": 0.12, "height": 0.15, "unit": "fraction" },
      "visual": {
        "light": "https://publisher.example.com/controls/volume-light.svg",
        "dark": "https://publisher.example.com/controls/volume-dark.svg"
      }
    }
  ]
}
```

`visual` フィールドは任意ですが強く推奨されます。クリエイティブエージェントがパブリッシャーのクロームを重ねた正確なプレビューを合成できるようにします。テーマに依存しないグラフィック（例: `currentColor` を使う SVG）には `url` を使い、ライト/ダークの個別アセットが必要な場合は `light`/`dark` バリアントを指定してください。

### レンダリング成果物と寸法

フォーマットは 1 つ以上のレンダー成果物を定義し、それぞれに寸法と意味的ロールを付与します。

対応するシナリオ:

* 単一レンダー
* コンパニオン付きクリエイティブ
* 複数掲出面の出力
* レスポンシブ挙動
* 非個人環境向けの物理寸法

レンダーは `renders` 配列で指定します。多くは 1 つのレンダーですが、コンパニオン広告やアダプティブ、マルチプレースメントでは複数レンダーを持ちます。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/format.json",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  },
  "name": "Display Banner 300x250",
  "type": "display",
  "renders": [
    {
      "role": "primary",
      "dimensions": {
        "width": 300,
        "height": 250,
        "responsive": {
          "width": false,
          "height": false
        }
      }
    }
  ]
}
```

**複数レンダー例（コンパニオン広告）:**

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/format.json",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "video_with_companion_300x250"
  },
  "name": "Video with Companion Banner",
  "type": "video",
  "renders": [
    {
      "role": "primary",
      "dimensions": {
        "width": 1920,
        "height": 1080,
        "responsive": {
          "width": false,
          "height": false
        }
      }
    },
    {
      "role": "companion",
      "dimensions": {
        "width": 300,
        "height": 250,
        "responsive": {
          "width": false,
          "height": false
        }
      }
    }
  ]
}
```

**寸法タイプ:**

**固定寸法**（標準ディスプレイ広告）:

```json theme={null}
{
  "role": "primary",
  "dimensions": {
    "width": 300,
    "height": 250,
    "responsive": {"width": false, "height": false},
    "unit": "px"
  }
}
```

**幅レスポンシブ**（フルードバナー）:

```json theme={null}
{
  "role": "primary",
  "dimensions": {
    "min_width": 300,
    "max_width": 970,
    "height": 250,
    "responsive": {"width": true, "height": false},
    "unit": "px"
  }
}
```

**アスペクト比制約**（ネイティブフォーマット）:

```json theme={null}
{
  "role": "primary",
  "dimensions": {
    "aspect_ratio": "16:9",
    "min_width": 300,
    "responsive": {"width": true, "height": true},
    "unit": "px"
  }
}
```

**物理寸法**（DOOH）:

```json theme={null}
{
  "role": "primary",
  "dimensions": {
    "width": 48,
    "height": 14,
    "responsive": {"width": false, "height": false},
    "unit": "inches"
  }
}
```

**renders 構造の利点:**

* 単一/複数レンダーを同一構造で表現
* 文字列解析不要で構造化された寸法
* スキーマで寸法を検証
* レスポンシブと固定を同等に表現
* 適切なプレビュー生成を支援
* 寸法ベースのフィルタリングを可能に
* DOOH 向けに物理単位をサポート
* 各レンダーの意味的ロールが明確

## フォーマット要件の理解

従来の IAB フォーマットファミリー（ディスプレイ、動画、音声、ネイティブ）は、新興フォーマットにスケールしない情報損失を伴う抽象化です:

* **Performance Max** は動画・ディスプレイ・検索・ネイティブを同時にまたぐ
* **検索広告**（RSA）はインテントの高い文脈でのテキストのみ
* **会話型 AI** プレースメントは従来のカテゴリに当てはまらない

`assets` 配列が必要なクリエイティブ要素を正確に示します。

* 動画が必要？ `asset_type: 'video'` を確認
* 画像が必要？ `asset_type: 'image'` を確認
* テキストのみ？ 必須アセットがすべて `asset_type: 'text'`

AdCP は複数のメディアタイプにわたるフォーマットをサポートします。

### Video Formats

* 標準動画（15s, 30s, 60s）
* モバイル/ストーリー向け縦動画
* VAST/VPAID タグ
* インタラクティブ動画

詳細は [Video Channel Guide](/docs/creative/channels/video) を参照。

### Display Formats

* 標準 IAB サイズ（300x250、728x90 など）
* レスポンシブユニット
* リッチメディア/エキスパンダブル
* HTML5 クリエイティブ

詳細は [Display Channel Guide](/docs/creative/channels/display) を参照。

### Audio Formats

* ストリーミングオーディオ（15s, 30s, 60s）
* ポッドキャスト差し込み
* コンパニオンバナー
* VAST オーディオタグ

詳細は [Audio Channel Guide](/docs/creative/channels/audio) を参照。

### DOOH Formats

* デジタルビルボード
* 交通機関ディスプレイ
* リテールスクリーン
* 会場ベースのインプレッショントラッキング

詳細は [DOOH Channel Guide](/docs/creative/channels/dooh) を参照。

### Carousel / Multi-Asset Formats

* プロダクトカルーセル（3〜10 アイテム）
* ストーリーシーケンス
* スライドショー
* フレームベース構造

詳細は [Carousel Channel Guide](/docs/creative/channels/carousels) を参照。

## マルチアセット/フレームベースフォーマット

カルーセルやスライドショー、ストーリーのように、各フレームに複数アセットを持つ繰り返しグループを使うフォーマットがあります。パターンの詳細は [Carousel & Multi-Asset Formats](/docs/creative/channels/carousels) を参照してください。

## レポートメトリクス

フォーマットは `reported_metrics` フィールドを使って、配信レポートで生成されるメトリクスを宣言できます。これにより、バイヤーはそのフォーマットの在庫を購入した場合にどのようなデータを受け取れるかを把握できます。

```json theme={null}
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "video_30s_hosted"
  },
  "name": "30-Second Hosted Video",
  "reported_metrics": [
    "impressions", "spend", "views", "completed_views",
    "completion_rate", "quartile_data"
  ]
}
```

### プロダクトメトリクスとの交差

プロダクトは `reporting_capabilities.available_metrics` で利用可能なメトリクスを宣言します。バイヤーが受け取るのは、フォーマットの `reported_metrics` とプロダクトの `available_metrics` の**積集合**です。

`impressions` と `spend` は積集合に関わらず常に報告されます。これらはすべての配信レスポンスに暗黙的に含まれます。積集合はそれ以外のメトリクスに適用されます。

例えば、動画フォーマットが `quartile_data` を宣言していても、プロダクトが `impressions`・`spend`・`clicks` しか報告しない場合、バイヤーはそのプロダクトのクォータイルデータを受け取れません。

### 省略する場合

`reported_metrics` を省略した場合、フォーマットはプロダクトレベルのメトリクス宣言に完全に委ねます。これは、クリエイティブタイプが利用可能なメトリクスを本質的に制限しないフォーマット（例: メトリクスがプラットフォームに依存するネイティブフォーマット）に適しています。

### 一般的なパターン

**動画フォーマット**: `impressions`, `spend`, `views`, `completed_views`, `completion_rate`, `quartile_data`

**ディスプレイフォーマット**: `impressions`, `spend`, `clicks`, `ctr`, `viewability`

**DOOH フォーマット**: `impressions`, `spend`, `dooh_metrics`

**ソーシャル/パフォーマンスフォーマット**: `impressions`, `spend`, `clicks`, `ctr`, `conversions`, `engagement_rate`

## フォーマットカード

フォーマットカードは、ブラウズ/選択 UI でフォーマットを視覚的に示すための定義です。クリエイティブエージェントは、カードフォーマットと必要アセットを含むカード定義を任意で提供できます。

### カードタイプ

クリエイティブエージェントは少なくとも Standard カードを、必要に応じて詳細カードも提供してください。

**Standard Card** (`format_card`):

* フォーマットブラウズ用のコンパクトな 300x400px カード
* Retina 向けに 2x 密度画像をサポート
* 仕様を素早く把握可能

**Detailed Card** (`format_card_detailed`, 任意):

* レスポンシブレイアウトで、ヒーローカルーセルとテキスト説明を並べて表示
* 下部に Markdown 仕様セクション
* [Yahoo の広告仕様](https://adspecs.yahooinc.com/premium-ads/e2e-horizon-desktop) のような詳細ドキュメントを提供

### 構造

```json theme={null}
{
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "video_standard_30s"
  },
  "name": "Standard Video - 30 seconds",
  "type": "video",
  // ... other format fields ...

  "format_card": {
    "format_id": {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "format_card_standard"
    },
    "manifest": {
      "display_name": "30-Second Video",
      "preview_mockup_url": "https://cdn.example.com/format-mockups/video_30s.png",
      "format_type_label": "Video"
    }
  },

  "format_card_detailed": {
    "format_id": {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "format_card_detailed"
    },
    "manifest": {
      "display_name": "Standard 30-Second Video",
      "description": "The Edge A-Logs Horizon (desktop) format is an encompassing...",
      "carousel_images": [
        "https://cdn.example.com/formats/video_30s_context1.jpg",
        "https://cdn.example.com/formats/video_30s_context2.jpg"
      ],
      "specifications_markdown": "# Technical Specifications\n\n..."
    }
  }
}
```

### カードの描画

カード表示には 2 つの方法があります。

1. **`preview_creative` を使用**: カードフォーマットとマニフェストを渡してレンダリング
2. **事前レンダリング**: クリエイティブエージェントがカードを生成し、静的に配信

インフラに合わせて動的生成と静的ホスティングを選択できます。

### Standard カードフォーマット

リファレンスクリエイティブエージェントは次の 2 種の標準カードフォーマットを定義します。

* **`format_card_standard`** (300x400px) - フォーマットブラウズ用のコンパクトカード
* **`format_card_detailed`** (レスポンシブ) - カルーセルと詳細仕様を含むリッチカード

クリエイティブエージェントは独自のカードフォーマットを定義し、ユニークな能力を強調したりブランドに合わせたりできます。

**Note**: 標準カードフォーマットの定義はプロトコル仕様ではなく [creative-agent repository](https://github.com/adcontextprotocol/creative-agent) で管理されています。

### フォーマットカードを含めるべき場面

フォーマットカードは任意ですが、次のケースで推奨されます。

* モックアップが理解に役立つビジュアル系フォーマット（display, video, DOOH）
* 複数アセット要件を持つ複雑なフォーマット
* Standard と異なるカスタムフォーマット
* ビジュアルプレビューがバイヤー理解を助ける場合

広告仕様ページのような詳細説明が必要な場合は detailed カードを使ってください。

### クライアント描画ガイドライン

UI でフォーマットを表示する際は次のフォールバック順を推奨します。

1. **`format_card` がある** → `preview_creative` で描画、または事前レンダリング画像を表示
2. **`format_card` がない** → テキストのみ（フォーマット名 + 説明）を表示
3. **カード描画に失敗** → テキストのみ表示にフォールバック

利用可能なメタデータにかかわらず、安定したユーザー体験を提供できます。

## 関連ドキュメント

* [Creative Protocol Overview](/docs/creative) - フォーマット・マニフェスト・エージェントの連携
* [Creative Manifests](/docs/creative/creative-manifests) - アセットとフォーマットの組み合わせ方
* [Asset Types](/docs/creative/asset-types) - アセット仕様の理解
* [Channel Guides](/docs/creative/channels/video) - メディアタイプ別の詳細フォーマット
* [Implementing Standard Format Support](/docs/media-buy/capability-discovery/implementing-standard-formats) - 営業エージェント向け
* [list\_creative\_formats Task](/docs/creative/task-reference/list_creative_formats) - フォーマット探索の API リファレンス
