> ## 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 のコレクションとインストールメント — ポッドキャスト、CTV、ストリーミングコンテンツをメディア製品の次元としてモデル化。コレクションレベルターゲティングとインストールメント固有の広告プレースメントを可能にする。

[製品](/docs/media-buy/product-discovery/media-products) は 3 つの独立した軸に沿って在庫を記述します:

* **パブリッシャープロパティ** — 広告が実行される WHERE（youtube.com、spotify.com）
* **コレクション / インストールメント** — 広告が実行される WHAT CONTENT（特定のシリーズとそのインストールメント）
* **プレースメント** — 広告が現れる WHAT POSITION（pre-roll、mid-roll、host read）

コレクションとプレースメントは並行する次元で、階層的ではありません。「Pre-roll」はポジション。「Pinnacle Challenge」はコンテンツ。製品はそれらを組み合わせます: 「Acme Streaming の Pinnacle Challenge の pre-roll。」

## チャネルマッピング

コレクション/インストールメントモデルは、メディアチャネル全体の馴染みのある概念にマップされます:

| Channel          | Collection =   | Installment =    | Example                                      |
| ---------------- | -------------- | ---------------- | -------------------------------------------- |
| Podcast          | Program        | Episode          | "Serial" → "Chapter 1"                       |
| Linear TV / CTV  | Series         | Episode / Airing | "Monday Night Football" → "Week 12"          |
| Print / Magazine | Publication    | Issue            | "Vogue Germany" → "May 2026"                 |
| Newsletter       | Publication    | Edition          | "Money Stuff" → "Tuesday March 24"           |
| YouTube / Social | Series         | Video / Post     | "Hot Ones" → "Gordon Ramsay"                 |
| DOOH             | Network / Loop | Rotation         | "Times Square Loop" → "March Rotation"       |
| Influencer       | Campaign       | Post / Drop      | "Spring Collection" → "Launch Post"          |
| Cinema           | Run            | Screening        | "Summer Blockbuster Run" → "Opening Weekend" |
| Radio            | Program        | Broadcast        | "Morning Drive" → "March 24 Broadcast"       |

各コレクションの `kind` フィールドは、それとそのインストールメントをどう解釈するかを示します。

## コレクションオブジェクト

コレクションは、時とともにインストールメントを生成する永続的なコンテンツプログラムです。コレクションはプロパティのように機能します — パブリッシャーが `adagents.json` でそれらを宣言し、製品は `publisher_domain` と `collection_ids` を持つ `collections` セレクター経由でそれらを参照します。

| Field                 | Type      | Required | Description                                                                                                                                                                                          |
| --------------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `collection_id`       | string    | Yes      | パブリッシャー割り当ての識別子。パブリッシャーの `adagents.json` で宣言。製品は `collections` セレクター経由でコレクションを参照。クロスセラーマッチングには distribution identifier を使う。                                                                          |
| `kind`                | string    | No       | どの種類のコンテンツプログラムか: `series`（TV/ポッドキャスト）、`publication`（プリント号）、`event_series`（ライブイベント）、`rotation`（DOOH）。デフォルトは `series`。                                                                                |
| `name`                | string    | Yes      | 人間可読なコレクション名                                                                                                                                                                                         |
| `description`         | string    | No       | コレクションが何についてか                                                                                                                                                                                        |
| `genre`               | string\[] | No       | ジャンルタグ。`genre_taxonomy` が存在するとき、値は分類 ID（例: IAB Content Taxonomy 3.0）。そうでなければフリーフォーム。                                                                                                                 |
| `genre_taxonomy`      | string    | No       | ジャンル値の分類システム（例: `iab_content_3.0`）。機械可読なブランドセーフティに推奨。                                                                                                                                                |
| `language`            | string    | No       | 主要言語（BCP 47）                                                                                                                                                                                         |
| `content_rating`      | object    | No       | ベースラインレーティング: `system` + `rating`。システム: `tv_parental`、`mpaa`、`podcast`、`esrb`、`bbfc`、`fsk`、`acb`、`custom`。エピソードはオーバーライドできる。                                                                          |
| `cadence`             | string    | No       | `daily`、`weekly`、`seasonal`、`event`、`irregular`                                                                                                                                                      |
| `season`              | string    | No       | 現在または最新のシーズン識別子（例: `"3"`、`"2026"`）                                                                                                                                                                   |
| `status`              | string    | No       | `active`、`hiatus`、`ended`、`upcoming`                                                                                                                                                                 |
| `production_quality`  | string    | No       | `professional`、`prosumer`、`ugc`。セラー宣言。OpenRTB `content.prodq` にマップ。                                                                                                                                  |
| `talent`              | array     | No       | ホスト、レギュラーキャスト、クリエイター。各エントリーは `role`、`name`、[brand.json](/docs/brand-protocol/brand-json) にリンクするオプション `brand_url` を持つ。                                                                                |
| `special`             | object    | No       | 存在するとき、このコレクションはスペシャル — 実世界のイベントや機会にアンカーされたコンテンツ。[specials and limited series](#specials-and-limited-series) を参照。                                                                                    |
| `limited_series`      | object    | No       | 存在するとき、このコレクションはリミテッドシリーズ — 定義されたアークと終了日を持つ境界された実行。[specials and limited series](#specials-and-limited-series) を参照。                                                                                  |
| `distribution`        | array     | No       | このコレクションがどこで配信されるか、パブリッシャーごとのプラットフォーム固有識別子を伴う。                                                                                                                                                       |
| `deadline_policy`     | object    | No       | インストールメントのデフォルト締切ルール。エージェントは `scheduled_at` マイナス `lead_days` から絶対締切を計算。明示的 `deadlines` を持つエピソードはオーバーライド。[deadline policy](#deadline-policy) を参照。                                                     |
| `related_collections` | array     | No       | 他のコレクションへの関係: `spinoff`、`companion`、`sequel`、`prequel`、`crossover`。各エントリーは `collection_id` + `relationship` を持つ。参照は同じパブリッシャーの `adagents.json` にスコープ。対称タイプ（`companion`、`crossover`）は両コレクションの宣言を要求しない。 |

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/collection.json",
  "collection_id": "pinnacle_challenge",
  "name": "The Pinnacle Challenge",
  "description": "Competition reality collection with extreme physical and mental challenges",
  "genre": ["IAB1", "IAB1-6"],
  "genre_taxonomy": "iab_content_3.0",
  "language": "en",
  "content_rating": {
    "system": "tv_parental",
    "rating": "TV-PG"
  },
  "cadence": "weekly",
  "season": "1",
  "status": "active",
  "production_quality": "professional",
  "talent": [
    {
      "role": "host",
      "name": "Jordan Vega",
      "brand_url": "https://jordanvega.example.com/brand.json"
    }
  ],
  "distribution": [
    {
      "publisher_domain": "youtube.com",
      "identifiers": [
        { "type": "youtube_channel_id", "value": "UCexample123456" }
      ]
    },
    {
      "publisher_domain": "acmestreaming.example.com",
      "identifiers": [
        { "type": "imdb_id", "value": "tt9876543" }
      ]
    }
  ]
}
```

## インストールメントオブジェクト

インストールメントはコレクションの特定のインストールメントです。すべてのインストールメントが事前に既知とは限りません — 週次ポッドキャストは来週のインストールメントのみをスケジュールしているかもしれず、一部のインストールメントは暫定的かもしれません（プレイオフの Game 7 は Game 6 に依存）。

| Field                | Type      | Required | Description                                                                                                                                                       |
| -------------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `installment_id`     | string    | Yes      | コレクション内で一意の識別子                                                                                                                                                    |
| `collection_id`      | string    | 必要なとき    | 親コレクション。製品が複数のコレクションにまたがるとき必須。                                                                                                                                    |
| `name`               | string    | No       | エピソードタイトル                                                                                                                                                         |
| `season`             | string    | No       | シーズン識別子（例: `"1"`、`"2026"`）                                                                                                                                        |
| `installment_number` | string    | No       | シーズン内のエピソード番号                                                                                                                                                     |
| `scheduled_at`       | datetime  | No       | インストールメントが放映または公開されるとき                                                                                                                                            |
| `status`             | string    | No       | `scheduled`、`tentative`、`live`、`postponed`、`cancelled`、`aired`、`published`                                                                                        |
| `duration_seconds`   | integer   | No       | 期待される期間                                                                                                                                                           |
| `flexible_end`       | boolean   | No       | 終了時間が近似か（ライブイベント）                                                                                                                                                 |
| `valid_until`        | datetime  | No       | このデータが期限切れになるとき。エージェントは暫定インストールメントに予算をコミットする前に再クエリすべき。                                                                                                            |
| `content_rating`     | object    | No       | 存在するときコレクションのベースラインをオーバーライド                                                                                                                                       |
| `topics`             | string\[] | No       | ブランドセーフティのためのインストールメントレベルコンテンツトピック。存在するときコレクションの `genre_taxonomy` を使う。                                                                                            |
| `special`            | object    | No       | インストールメント固有のイベントコンテキスト。存在するとき、このインストールメントは実世界のイベントにアンカーされる。コレクションレベル `special` をオーバーライド。                                                                          |
| `guest_talent`       | array     | No       | インストールメント固有のゲスト。コレクションのレギュラー `talent` に追加。                                                                                                                        |
| `ad_inventory`       | object    | No       | ブレークベースの広告在庫構成                                                                                                                                                    |
| `deadlines`          | object    | No       | このインストールメントのブッキング、キャンセル、素材提出締切。[installment deadlines](#installment-deadlines) を参照。                                                                               |
| `derivative_of`      | object    | No       | このインストールメントが完全なインストールメントから導出されたクリップ、ハイライト、リキャップのとき。`installment_id` + `type`（`clip`、`highlight`、`recap`、`trailer`、`bonus`）を持つ。ソース `installment_id` は同じレスポンスにあること。 |

### エピソードステータスライフサイクル

| Status      | Meaning                   |
| ----------- | ------------------------- |
| `scheduled` | 確認済み、起こる                  |
| `tentative` | 起こらないかも（外部条件に依存）          |
| `live`      | 今まさに放映またはストリーミング中         |
| `postponed` | スケジュールされていたが未来の日付に延期      |
| `cancelled` | 起こらない                     |
| `aired`     | 既に放送 — バックカタログとリプレイ在庫用    |
| `published` | 既にリリース — オンデマンドキャッチアップ在庫用 |

期待される遷移: `scheduled` または `tentative` → `live` → `aired` または `published`。`scheduled` インストールメントは `postponed`（延期）または `cancelled` になるかも。`postponed` インストールメントは再スケジュールされると `scheduled` に戻る。`tentative` インストールメントは `scheduled`、`cancelled`、または `postponed` に解決する。

### コレクションからの継承

エピソードはオーバーライドしないコレクションレベルフィールドを継承します:

* **`content_rating`**: エピソード値がコレクションベースラインをオーバーライド。不在のとき、コレクションのレーティングが適用。
* **`special`**: エピソード値がコレクションレベルスペシャルをオーバーライド。不在のとき、コレクションのスペシャルが適用。通常のコレクションはイベントアンカーのインストールメントを持てる（例: 選挙夜スペシャルを持つ日次ニュースコレクション）。
* **`guest_talent`**: コレクションのレギュラー `talent` に追加 — それを置き換えない。
* **`topics`**: ブランドセーフティの追加コンテキスト、コレクションの `genre` の置き換えではない。

バイヤーエージェントは両レベルを評価します: コレクションベースラインがデフォルトの安全プロファイルを提供し、インストールメントフィールドが特定のインストールメントのためそれを絞ります。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/installment.json",
  "installment_id": "s1e03_the_wall",
  "collection_id": "pinnacle_challenge",
  "name": "The Wall",
  "season": "1",
  "installment_number": "3",
  "scheduled_at": "2026-04-07T20:00:00Z",
  "status": "scheduled",
  "duration_seconds": 3600,
  "valid_until": "2026-04-06T20:00:00Z",
  "content_rating": {
    "system": "tv_parental",
    "rating": "TV-14"
  },
  "topics": ["IAB17-18"],
  "guest_talent": [
    {
      "role": "guest",
      "name": "Samira Okafor",
      "brand_url": "https://samiraokafor.example.com/brand.json"
    }
  ],
  "ad_inventory": {
    "expected_breaks": 4,
    "total_ad_seconds": 480,
    "max_ad_duration_seconds": 120,
    "unplanned_breaks": false,
    "supported_formats": ["video", "audio"]
  }
}
```

## Installment deadlines

エピソードはブッキング、キャンセル、素材提出締切を運べます。これらは在庫が予定された単位に結びつく任意のチャネルに適用されます — プリント号、ポッドキャストインストールメント、インフルエンサー投稿、リニア TV 放映、DOOH ローテーション。

| Field                   | Type     | Description                     |
| ----------------------- | -------- | ------------------------------- |
| `booking_deadline`      | datetime | このインストールメントにプレースメントをブッキングする最終日時 |
| `cancellation_deadline` | datetime | ペナルティなしでキャンセルする最終日時             |
| `material_deadlines`    | array    | クリエイティブ素材提出の順序付き段階              |

締切は時系列順でなければなりません（MUST）: `booking_deadline` ≤ `cancellation_deadline` ≤ 各 `material_deadlines[n].due_at`（配列インデックス昇順） ≤ インストールメントの `scheduled_at`。バイヤーエージェントは、締切がこの順序に違反するインストールメントを拒否すべきです（SHOULD）。

各素材締切は以下を持ちます:

| Field    | Type     | Required | Description                                                    |
| -------- | -------- | -------- | -------------------------------------------------------------- |
| `stage`  | string   | Yes      | 段階識別子（`draft`、`final`、またはセラー定義）                                |
| `due_at` | datetime | Yes      | この段階の素材が必要なとき                                                  |
| `label`  | string   | No       | セラーが何を必要とするか（例: "Talking points"、"Press-ready PDF with bleed"） |

2 段階パターン — draft 次に final — は幅広いチャネルをカバーします:

| Channel             | Draft stage        | Final stage     |
| ------------------- | ------------------ | --------------- |
| Print               | レビュー用の生アートワーク      | ブリード付きプレス対応 PDF |
| Podcast (host read) | トーキングポイントとブリーフ     | 承認されたスクリプト      |
| Influencer          | ブランドガイドラインとキーメッセージ | 承認された投稿コンテンツ    |
| Linear TV           | ラフカット              | エンコードされた放送スポット  |
| DOOH                | レビュー用ドラフトクリエイティブ   | 画面仕様ごとの最終アセット   |

### 締切付きポッドキャスト

```json theme={null}
{
  "installment_id": "ep47",
  "name": "The future of autonomous supply chains",
  "scheduled_at": "2026-04-07T10:00:00Z",
  "status": "scheduled",
  "guest_talent": [
    { "role": "guest", "name": "Kai Tanaka" }
  ],
  "deadlines": {
    "booking_deadline": "2026-03-28T17:00:00Z",
    "cancellation_deadline": "2026-03-31T17:00:00Z",
    "material_deadlines": [
      {
        "stage": "draft",
        "due_at": "2026-04-01T17:00:00Z",
        "label": "Talking points and brand guidelines for host read"
      },
      {
        "stage": "final",
        "due_at": "2026-04-04T17:00:00Z",
        "label": "Approved script"
      }
    ]
  }
}
```

### 締切付きプリント号

```json theme={null}
{
  "installment_id": "2026-05",
  "name": "Mai 2026",
  "season": "2026",
  "installment_number": "5",
  "scheduled_at": "2026-05-01T00:00:00+02:00",
  "status": "scheduled",
  "deadlines": {
    "booking_deadline": "2026-03-15T17:00:00+01:00",
    "cancellation_deadline": "2026-03-22T17:00:00+01:00",
    "material_deadlines": [
      {
        "stage": "draft",
        "due_at": "2026-03-29T17:00:00+01:00",
        "label": "Raw artwork for review and color proofing"
      },
      {
        "stage": "final",
        "due_at": "2026-04-05T17:00:00+02:00",
        "label": "Press-ready PDF/X-4, CMYK, 300 DPI, 3mm bleed"
      }
    ]
  }
}
```

### 締切付きインフルエンサー投稿

```json theme={null}
{
  "installment_id": "post_2026_04_10",
  "name": "Spring campaign post",
  "scheduled_at": "2026-04-10T12:00:00Z",
  "status": "scheduled",
  "deadlines": {
    "cancellation_deadline": "2026-04-03T17:00:00Z",
    "material_deadlines": [
      {
        "stage": "draft",
        "due_at": "2026-04-05T17:00:00Z",
        "label": "Key messages, product images, and brand guidelines"
      },
      {
        "stage": "final",
        "due_at": "2026-04-08T17:00:00Z",
        "label": "Approved post content and caption"
      }
    ]
  }
}
```

締切はオプションです。ラン・オブ・コレクションのデジタル製品は通常それらを省略します。パターンは事前素材要件を伴う保証在庫に最も価値があります。

## Deadline policy

高頻度コレクション（日刊新聞、週次ポッドキャスト）は、すべてのインストールメントが明示的な締切を運ぶ場合大きなペイロードを生成します。コレクションの `deadline_policy` は、エージェントが各インストールメントの `scheduled_at` から締切を計算するのに使うリードタイムルールを宣言します。

| Field                    | Type    | Description                                      |
| ------------------------ | ------- | ------------------------------------------------ |
| `booking_lead_days`      | integer | プレースメントがブッキングされなければならない `scheduled_at` 前の日数      |
| `cancellation_lead_days` | integer | キャンセルがペナルティなしの `scheduled_at` 前の日数               |
| `material_stages`        | array   | `stage`、`lead_days`、オプション `label` を伴うデフォルト素材提出段階 |
| `business_days_only`     | boolean | true のとき、lead\_days は月〜金のみをカウント。デフォルトは false。    |

### ポリシー付き日刊新聞

すべての号の締切を列挙する代わりに、コレクションはルールを一度宣言します:

```json theme={null}
{
  "collection_id": "bergedorfer_zeitung",
  "name": "Bergedorfer Zeitung",
  "kind": "publication",
  "cadence": "daily",
  "status": "active",
  "deadline_policy": {
    "booking_lead_days": 4,
    "cancellation_lead_days": 3,
    "material_stages": [
      { "stage": "final", "lead_days": 2, "label": "Druckfertige PDF" }
    ],
    "business_days_only": true
  }
}
```

4 月 1 日号（`scheduled_at: "2026-04-01"`）について、エージェントは計算します:

* **ブッキング締切**: 4 営業日前 = 3 月 26 日
* **キャンセル締切**: 3 営業日前 = 3 月 27 日
* **素材期限**: 2 営業日前 = 3 月 28 日

明示的 `deadlines` を持つエピソードはポリシーをオーバーライドします。より厳しいターンアラウンドのスペシャル版は自身の締切を宣言します。通常の号はポリシーから継承します。

### ポリシー付き週次ポッドキャスト

```json theme={null}
{
  "collection_id": "wonderstruck_weekly",
  "name": "Wonderstruck Weekly",
  "kind": "series",
  "cadence": "weekly",
  "deadline_policy": {
    "booking_lead_days": 10,
    "cancellation_lead_days": 7,
    "material_stages": [
      { "stage": "draft", "lead_days": 5, "label": "Talking points and brand guidelines" },
      { "stage": "final", "lead_days": 3, "label": "Approved script for host read" }
    ]
  }
}
```

### ポリシー対明示的締切

| Scenario                | Use                                     |
| ----------------------- | --------------------------------------- |
| 日刊新聞、一貫した締切             | コレクションの `deadline_policy`               |
| 週次ポッドキャスト、一貫した締切        | コレクションの `deadline_policy`               |
| 月刊誌、号ごとに変わるリードタイム       | 各インストールメントの明示的 `deadlines`              |
| 厳しいターンアラウンドの 1 回限りスペシャル | そのインストールメントの明示的 `deadlines`、ポリシーが残りをカバー |

両方が存在するとき、明示的なインストールメント `deadlines` が優先します。エージェントは自身のものを持つインストールメントにポリシーから締切を計算すべきでありません（SHOULD NOT）。

## Specials and limited series

コレクションは、その性質をバイヤーエージェントにシグナルするオプションのアノテーションを運べます。これらは合成可能です — コレクションはスペシャルとリミテッドシリーズの両方になれます（例: 4 インストールメントのオリンピックドキュメンタリー）。

### スペシャル

スペシャルは実世界のイベントや機会にアンカーされたコンテンツです。`special` オブジェクトはコレクションとインストールメントの両方に現れられます。コレクション上では、コレクション全体がイベントアンカーであることを意味します。インストールメント上では、その特定のインストールメントがイベントアンカーであることを意味します（`content_rating` と同じ継承パターンに従い、存在するときコレクションレベルスペシャルをオーバーライド）。

| Field      | Type     | Required | Description                                                                                                                           |
| ---------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `name`     | string   | Yes      | イベントの名前（例: "Olympics 2028"、"Super Bowl LXI"）                                                                                          |
| `category` | string   | No       | `awards`、`championship`、`concert`、`conference`、`election`、`festival`、`gala`、`holiday`、`premiere`、`product_launch`、`reunion`、`tribute` |
| `starts`   | datetime | No       | イベントが開始するとき                                                                                                                           |
| `ends`     | datetime | No       | イベントが終了するとき。単日イベントには省略。                                                                                                               |

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/collection.json",
  "collection_id": "apex_finals_2026",
  "name": "Apex Championship Finals 2026",
  "genre": ["IAB17", "IAB17-12"],
  "genre_taxonomy": "iab_content_3.0",
  "cadence": "event",
  "status": "upcoming",
  "special": {
    "name": "Apex Championship Finals 2026",
    "category": "championship",
    "starts": "2026-05-18T19:00:00Z",
    "ends": "2026-05-25T23:00:00Z"
  },
  "talent": [
    { "role": "host", "name": "Deshawn Moreaux" }
  ]
}
```

`special` フィールドは `cadence` と別です。Cadence はリリース頻度を記述します（`event` = 1 回限りまたは時折）。`special` オブジェクトは、どの実世界イベントがコンテンツをアンカーするかといつ起こるかを記述します — バイヤーエージェントがタイミング関連性とプレミアム価格設定を評価するために必要な情報。

### リミテッドシリーズ

リミテッドシリーズは、定義されたアークを持つ境界されたコンテンツ実行です。進行中のシリーズと異なり、リミテッドシリーズは計画された終了を持ちます。

| Field                | Type     | Required | Description     |
| -------------------- | -------- | -------- | --------------- |
| `total_installments` | integer  | No       | 計画されたインストールメント数 |
| `starts`             | datetime | No       | シリーズが始まるとき      |
| `ends`               | datetime | No       | シリーズが終わるとき      |

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/core/collection.json",
  "collection_id": "ember_s3",
  "name": "The Ember",
  "description": "Award-winning drama following a chef navigating the pressure of running a top restaurant",
  "genre": ["IAB1", "IAB1-7"],
  "genre_taxonomy": "iab_content_3.0",
  "cadence": "weekly",
  "status": "active",
  "limited_series": {
    "total_installments": 8,
    "starts": "2026-02-28T21:00:00Z",
    "ends": "2026-04-18T21:00:00Z"
  }
}
```

これはバイヤーエージェントに The Ember が有限の機会であることを伝えます — 7 週間で 8 インストールメント。`limited_series` フィールドは `season` と別です: コレクションはリミテッドでなくてもシーズンを持てる（進行中のシリーズもシーズンを持つ）し、リミテッドシリーズはコレクションが計画された終了を持つという構造的コミットメントです。

## 製品がコレクションをどう参照するか

製品は `collections` 経由でコレクションを参照します — パブリッシャーの `adagents.json` で宣言されたコレクションを指す `{publisher_domain, collection_ids}` セレクターの配列。これは `publisher_properties` と同じパターンです。バイヤーはパブリッシャーの `adagents.json` から完全なコレクションオブジェクトを解決します。エピソードは `installments` 配列で製品ごとにリストされます、なぜなら異なる製品は同じコレクションの異なるインストールメントをスコープするかもしれないから。

### ラン・オブ・コレクション（特定のインストールメントなし）

製品はインストールメントをリストせずにコレクションを参照できます。これは「このコレクション全体の在庫、フライト日中に放映されるインストールメントが何であれ」を意味します:

```json theme={null}
{
  "product_id": "pinnacle_run_of_collection",
  "name": "Pinnacle Challenge Run of Show",
  "collections": [{ "publisher_domain": "acmestreaming.example.com", "collection_ids": ["pinnacle_challenge"] }],
  "placements": [
    { "kind": "seller_inline", "placement_id": "pre_roll", "name": "Pre-roll", "mode": "targetable" }
  ],
  "delivery_type": "non_guaranteed",
  "pricing_options": [
    { "pricing_option_id": "cpm", "pricing_model": "cpm", "floor_price": 25.00, "currency": "USD" }
  ]
}
```

### 特定のインストールメント

プレミアムまたは保証バイには、セラーは特定のインストールメントにスコープします:

```json theme={null}
{
  "product_id": "pinnacle_finale",
  "name": "Pinnacle Challenge Season Finale Sponsorship",
  "collections": [{ "publisher_domain": "acmestreaming.example.com", "collection_ids": ["pinnacle_challenge"] }],
  "installments": [
    {
      "installment_id": "s1e10_finale",
      "name": "The Grand Finale",
      "scheduled_at": "2026-06-02T20:00:00Z",
      "status": "scheduled",
      "ad_inventory": {
        "expected_breaks": 6,
        "total_ad_seconds": 720,
        "unplanned_breaks": false
      }
    }
  ],
  "delivery_type": "guaranteed",
  "pricing_options": [
    { "pricing_option_id": "flat", "pricing_model": "flat_rate", "fixed_price": 2000000, "currency": "USD" }
  ]
}
```

## get\_products レスポンス構造

製品は `collections` セレクター経由でコレクションを参照します — `publisher_properties` と同じパターン。各セレクターは、そのパブリッシャーの `adagents.json` で宣言されたコレクションを指す `publisher_domain` と `collection_ids` 配列を持ちます。バイヤーは `adagents.json` から完全なコレクションオブジェクトを解決します。

```json theme={null}
{
  "products": [
    {
      "product_id": "pinnacle_april_bundle",
      "name": "Pinnacle Challenge April Sponsorship",
      "collections": [{ "publisher_domain": "acmestreaming.example.com", "collection_ids": ["pinnacle_challenge"] }],
      "installments": [
        {
          "installment_id": "s1e03",
          "name": "The Wall",
          "scheduled_at": "2026-04-07T20:00:00Z",
          "status": "scheduled",
          "content_rating": { "system": "tv_parental", "rating": "TV-14" },
          "guest_talent": [{ "role": "guest", "name": "Samira Okafor" }],
          "valid_until": "2026-04-06T20:00:00Z"
        },
        {
          "installment_id": "s1e04",
          "name": "TBD",
          "scheduled_at": "2026-04-14T20:00:00Z",
          "status": "tentative",
          "valid_until": "2026-04-07T20:00:00Z"
        }
      ],
      "placements": [
        { "kind": "seller_inline", "placement_id": "pre_roll", "name": "Pre-roll", "mode": "targetable" },
        { "kind": "seller_inline", "placement_id": "mid_roll", "name": "Mid-roll", "mode": "targetable" }
      ],
      "delivery_type": "guaranteed",
      "pricing_options": [
        { "pricing_option_id": "flat", "pricing_model": "flat_rate", "fixed_price": 500000, "currency": "USD" }
      ]
    }
  ]
}
```

## 正準コレクションアイデンティティ

コレクションのアイデンティティは **`{publisher_domain, collection_id}`** です — `adagents.json` でそれを宣言するパブリッシャーにスコープ。これは任意のコレクション作成者が自身の正準レジストリとして機能できることを意味します。

### 正準パブリッシャーとしての作成者

MrBeast のような作成者は `mrbeast.com/adagents.json` でコレクションを宣言します。その作成者の在庫をパッケージ化する任意のセラー — YouTube セールスハウス、CTV ディストリビューター、作成者自身のチーム — は同じ正準ソースを参照します:

```json theme={null}
{
  "products": [
    {
      "product_id": "beast_games_youtube",
      "name": "Beast Games - YouTube Pre-roll",
      "collections": [
        { "publisher_domain": "mrbeast.com", "collection_ids": ["beast_games"] }
      ],
      "publisher_properties": [
        { "publisher_domain": "youtube.com", "property_ids": ["UCX6OQ3DkcsbYNE6H8uQQuVA"] }
      ],
      "delivery_type": "non_guaranteed",
      "pricing_options": [
        { "pricing_option_id": "cpm", "pricing_model": "cpm", "floor_price": 18.00, "currency": "USD" }
      ]
    }
  ]
}
```

バイヤーは、在庫がどのセラーまたはプラットフォームから来るかにかかわらず `mrbeast.com` + `beast_games` を見ます。IMDb ID や distribution identifier のクロス参照は不要 — 作成者のドメイン **が** レジストリです。

### 作成者が adagents.json を公開しないとき

すべてのコレクションが作成者所有のドメインを持つわけではありません。ストリーミングプラットフォームのオリジナルシリーズは、そのプラットフォームの `adagents.json` にのみ存在するかもしれません。その場合、プラットフォームが正準パブリッシャーで `collections` は彼らのドメインを指します。コレクションオブジェクトの distribution identifier は、同じコレクションが単一の正準ソースなしに複数のプラットフォームに現れるときクロスセラーマッチングを処理します。

### アイデンティティ解決優先順位

バイヤーエージェントはこの順序でコレクションアイデンティティを解決すべきです:

1. **正準パブリッシャー** — 作成者自身の `adagents.json` からの `publisher_domain` + `collection_id`。最強のシグナル。
2. **プラットフォーム非依存識別子** — コレクションの `distribution` 配列からの `imdb_id`、`gracenote_id`、`eidr_id`。正準パブリッシャーが存在しないとき信頼できるクロス参照。
3. **プラットフォーム固有識別子** — Spotify、Apple、YouTube ID。プラットフォーム内で有用だがユニバーサルではない。

## ディスカバリー例

### インストールメント付き CTV コレクション

今後のインストールメントを持つ既知のコレクションに対してスポンサーシップを販売するストリーミングプラットフォーム:

```json theme={null}
{
  "products": [
    {
      "product_id": "nova_kitchen_april",
      "name": "Nova Kitchen - April Episodes",
      "collections": [{ "publisher_domain": "novastreaming.example.com", "collection_ids": ["nova_kitchen"] }],
      "publisher_properties": [{
        "publisher_domain": "novastreaming.example.com",
        "selection_type": "all"
      }],
      "installments": [
        {
          "installment_id": "s3e09",
          "name": "Fire and Ice",
          "scheduled_at": "2026-04-05T21:00:00Z",
          "status": "scheduled",
          "duration_seconds": 2700,
          "ad_inventory": {
            "expected_breaks": 3,
            "total_ad_seconds": 360,
            "max_ad_duration_seconds": 30,
            "unplanned_breaks": false,
            "supported_formats": ["video"]
          }
        },
        {
          "installment_id": "s3e10",
          "scheduled_at": "2026-04-12T21:00:00Z",
          "status": "tentative",
          "valid_until": "2026-04-06T00:00:00Z"
        }
      ],
      "placements": [
        { "kind": "seller_inline", "placement_id": "pre_roll", "name": "Pre-roll (15s)", "mode": "targetable" },
        { "kind": "seller_inline", "placement_id": "mid_roll", "name": "Mid-roll (30s)", "mode": "targetable" }
      ],
      "delivery_type": "guaranteed",
      "pricing_options": [
        { "pricing_option_id": "cpm_fixed", "pricing_model": "cpm", "fixed_price": 38.00, "currency": "USD" }
      ]
    }
  ]
}
```

### 関連コレクションと派生コンテンツ

メインコレクションとそのコンパニオンアフターコレクション、プラスハイライトクリップを提供するストリーミングプラットフォーム:

```json theme={null}
{
  "products": [
    {
      "product_id": "nova_highlights",
      "name": "Nova Kitchen Highlights Package",
      "collections": [{ "publisher_domain": "novastreaming.example.com", "collection_ids": ["nova_kitchen"] }],
      "installments": [
        {
          "installment_id": "s3e09",
          "name": "Fire and Ice",
          "status": "aired",
          "duration_seconds": 2700
        },
        {
          "installment_id": "s3e09_highlights",
          "name": "Fire and Ice - Best Moments",
          "status": "published",
          "duration_seconds": 180,
          "derivative_of": {
            "installment_id": "s3e09",
            "type": "highlight"
          }
        }
      ],
      "placements": [
        { "kind": "seller_inline", "placement_id": "pre_roll", "name": "Pre-roll (15s)", "mode": "targetable" }
      ],
      "delivery_type": "non_guaranteed",
      "pricing_options": [
        { "pricing_option_id": "cpm", "pricing_model": "cpm", "floor_price": 12.00, "currency": "USD" }
      ]
    }
  ]
}
```

ハイライトクリップは `derivative_of` 経由でそのソースインストールメントを参照します。コンパニオンアフターコレクションはメインコレクションの `related_collections` 経由でリンクされます — Nova Kitchen をターゲットするバイヤーはアフターコレクションを追加のリーチ機会として発見できます。

### 配信付きポッドキャスト

複数の配信プラットフォーム全体で販売するポッドキャストネットワーク。コレクションの `adagents.json` の `distribution` 配列が完全な配信フットプリントを捕捉します。バイヤーはクロスセラーマッチングに distribution identifier を使います:

```json theme={null}
{
  "products": [
    {
      "product_id": "wonderstruck_april",
      "name": "Wonderstruck Weekly - April Episodes",
      "collections": [{ "publisher_domain": "wonderstruck.example.com", "collection_ids": ["wonderstruck_weekly"] }],
      "installments": [
        {
          "installment_id": "ep47",
          "name": "The future of autonomous supply chains",
          "scheduled_at": "2026-04-07T10:00:00Z",
          "status": "scheduled",
          "guest_talent": [
            { "role": "guest", "name": "Kai Tanaka", "brand_url": "https://kaitanaka.example.com/brand.json" }
          ]
        },
        {
          "installment_id": "ep48",
          "scheduled_at": "2026-04-14T10:00:00Z",
          "status": "tentative"
        },
        {
          "installment_id": "ep49",
          "scheduled_at": "2026-04-21T10:00:00Z",
          "status": "tentative"
        }
      ],
      "placements": [
        { "kind": "seller_inline", "placement_id": "pre_roll", "name": "Pre-roll (30s)", "mode": "targetable" },
        { "kind": "seller_inline", "placement_id": "mid_roll", "name": "Mid-roll host read (60s)", "mode": "targetable" }
      ],
      "delivery_type": "guaranteed",
      "pricing_options": [
        { "pricing_option_id": "flat_monthly", "pricing_model": "flat_rate", "fixed_price": 15000, "currency": "USD" },
        { "pricing_option_id": "per_episode", "pricing_model": "flat_rate", "fixed_price": 5000, "currency": "USD" }
      ]
    }
  ]
}
```

暫定インストールメント（ep48、ep49）は名前やゲスト情報を持ちません — まだ生成されていません。バイヤーはコレクションのベースラインプロファイルと ep47 の既知の詳細に基づいて評価します。

### 暫定インストールメント付きライブイベント

ライブイベントシリーズに対してスポンサーシップを販売するスポーツリーグ。ライブ放送は、試合期間が予測不可能なため `flexible_end` を、広告ブレークが固定スケジュールではなく試合フロー（タイムアウト、ピリオドブレーク）に従うため `unplanned_breaks` を使います。暫定 Game 5 はシリーズ結果に依存 — どちらのチームも 4 試合で勝たない場合のみ起こります。

```json theme={null}
{
  "products": [
    {
      "product_id": "apex_finals_sponsorship",
      "name": "Apex Championship Finals — Category Sponsorship",
      "collections": [{ "publisher_domain": "apexleague.example.com", "collection_ids": ["apex_championship_2026"] }],
      "installments": [
        {
          "installment_id": "finals_game4",
          "name": "Game 4: Titan City vs Coastal FC",
          "scheduled_at": "2026-05-18T19:00:00Z",
          "status": "scheduled",
          "flexible_end": true,
          "ad_inventory": {
            "expected_breaks": 8,
            "total_ad_seconds": 960,
            "max_ad_duration_seconds": 30,
            "unplanned_breaks": true,
            "supported_formats": ["video"]
          }
        },
        {
          "installment_id": "finals_game5",
          "name": "Game 5 — If necessary",
          "scheduled_at": "2026-05-21T19:00:00Z",
          "status": "tentative",
          "flexible_end": true,
          "valid_until": "2026-05-19T06:00:00Z",
          "ad_inventory": {
            "expected_breaks": 8,
            "total_ad_seconds": 960,
            "max_ad_duration_seconds": 30,
            "unplanned_breaks": true,
            "supported_formats": ["video"]
          }
        }
      ],
      "placements": [
        { "kind": "seller_inline", "placement_id": "in_game_overlay", "name": "In-game overlay (10s)", "mode": "targetable" },
        { "kind": "seller_inline", "placement_id": "halftime", "name": "Halftime feature (60s)", "mode": "targetable" }
      ],
      "delivery_type": "guaranteed",
      "exclusivity": "category",
      "pricing_options": [
        { "pricing_option_id": "per_game", "pricing_model": "flat_rate", "fixed_price": 750000, "currency": "USD" }
      ]
    }
  ]
}
```

このパターンはライブ在庫のため設計されたいくつかの機能を組み合わせます: `cadence: "event"` は非反復シリーズをシグナル、`flexible_end` はバイヤーに放送長が近似であることを伝え、`unplanned_breaks: true` は広告ブレークが事前決定されたスケジュールではなく試合フローに従うことを示します。暫定 Game 5 は、バイヤーエージェントがいつ再クエリするか知るよう `valid_until` を含みます — シリーズが 4 試合で終わる場合、そのインストールメントは `cancelled` に解決します。バイヤーは常に予算をコミットする前に暫定インストールメントの `valid_until` をチェックすべきです。

### コレクションの発見

バイヤーは標準の `get_products` ワークフローを通じてコレクションを発見します。自然言語ブリーフがコレクション選択を駆動します:

```json theme={null}
{
  "buying_mode": "brief",
  "brief": "Podcast sponsorships for technology collections reaching startup founders in April",
  "filters": {
    "channels": ["podcast"],
    "start_date": "2026-04-01",
    "end_date": "2026-04-30"
  }
}
```

セラーは `collections` セレクターを持つ製品を返します。バイヤーは各パブリッシャーの [adagents.json](/docs/governance/property/adagents) から完全なコレクションオブジェクトを解決します。レジストリクライアントは、`/api/registry/catalog/collections/sync` と `/api/registry/catalog/collections/distribution` を通じてクロールされたコレクションカタログをブートストラップしルックアップすることもでき、YouTube チャネル ID のようなプラットフォームエイリアスをパブリッシャー宣言のコレクションにクロス参照するのに有用です。

コミュニティ保守エントリーには、レジストリモデレーターは `PUT /api/registry/catalog/collections/{publisher_domain}/{collection_id}` でパブリッシャースコープのコレクションをシードできます。これは貢献されたレジストリレコードを作成し同じ `collection.created` / `collection.updated` フィードイベントを発行します。パブリッシャーオリジン証明を置き換えません: パブリッシャーが自身の `adagents.json` でコレクションを宣言すると、権威的宣言が勝ちます。

## ブランドセーフティ

コレクションは 2 レベルのブランドセーフティモデルを提供します: コレクションベースラインとインストールメントごとのオーバーライド。

### コレクションベースライン

コレクションのデフォルトブランドセーフティプロファイルは以下から来ます:

* `content_rating` — コレクションの宣言されたレーティングシステムと値
* `genre` — コンテンツカテゴリー（理想的には機械可読な評価のため `genre_taxonomy` を使う）
* `talent` — ホストとレギュラーキャスト、より深い評価のためオプションの [brand.json](/docs/brand-protocol/brand-json) 参照を伴う

これは、個別のインストールメントコンテンツがまだ既知でないときバイヤーが評価するものです。

### インストールメントオーバーライド

インストールメント詳細が利用可能なとき、それらは安全プロファイルをシフトできます:

* コレクションベースラインと異なる `content_rating`（今週は TV-PG の代わりに TV-14）
* タレントプロファイルを変える `guest_talent`（論争的なゲスト）
* インストールメント固有のコンテンツシグナルを追加する `topics`

### モデル化されないもの

AdCP は未知の未来のインストールメントのコンテンツ安全性を予測しません。「すべての 4 月インストールメント」にコミットするバイヤーは、コレクションのベースラインプロファイルに基づいて購入し、変動を受け入れます。セラーのコンテンツ標準とコレクションの実績がその決定のバイヤーの基礎です。

## Distribution identifier

各コレクションの `distribution` 配列は、それをプラットフォーム固有識別子で特定のパブリッシャープラットフォームにマップします。これはクロスセラーマッチングを可能にします: 2 つの異なるセラーが両方とも同じコレクションの製品を提供するとき、バイヤーエージェントは共有識別子経由でそれらをマッチできます。

### クロスセラーマッチング

プラットフォーム非依存識別子は重複排除に最も信頼できます:

| Type           | Example                              | Notes               |
| -------------- | ------------------------------------ | ------------------- |
| `imdb_id`      | `tt1234567`                          | ユニバーサルクロスプラットフォーム参照 |
| `gracenote_id` | `EP012345678`                        | TV メタデータの業界標準       |
| `eidr_id`      | `10.5240/XXXX-XXXX-XXXX-XXXX-XXXX-C` | 視聴覚コンテンツの ISO 10528 |

番組は利用可能なとき少なくとも 1 つのプラットフォーム非依存識別子を含むべきです（SHOULD）。

### プラットフォーム固有識別子

<CodeGroup>
  ```json Podcast theme={null}
  {
    "distribution": [
      {
        "publisher_domain": "spotify.com",
        "identifiers": [{ "type": "spotify_collection_id", "value": "4rOoJ6Egrf8K2IrywzwOMk" }]
      },
      {
        "publisher_domain": "apple.com",
        "identifiers": [{ "type": "apple_podcast_id", "value": "1234567890" }]
      },
      {
        "publisher_domain": "feeds.example.com",
        "identifiers": [{ "type": "rss_url", "value": "https://feeds.example.com/collection.xml" }]
      }
    ]
  }
  ```

  ```json Video / CTV theme={null}
  {
    "distribution": [
      {
        "publisher_domain": "youtube.com",
        "identifiers": [{ "type": "youtube_channel_id", "value": "UCexample123456" }]
      },
      {
        "publisher_domain": "acmestreaming.example.com",
        "identifiers": [{ "type": "amazon_title_id", "value": "B0DFBT5GBP" }]
      }
    ]
  }
  ```
</CodeGroup>

利用可能なポッドキャストタイプ: `apple_podcast_id`、`spotify_collection_id`、`rss_url`、`podcast_guid`、`amazon_music_id`、`iheart_id`、`podcast_index_id`。利用可能なビデオ/CTV タイプ: `youtube_channel_id`、`youtube_channel_handle`、`youtube_channel_url`、`youtube_playlist_id`、`amazon_title_id`、`roku_channel_id`、`pluto_channel_id`、`tubi_id`、`peacock_id`、`tiktok_id`、`twitch_channel`。その他: `domain`、`substack_id`。YouTube チャネルには、`youtube_channel_id` が優先される正準識別子。ハンドルと URL は、チャネル ID がまだ解決されていないときディスカバリーとマッチングのエイリアス。

## 広告在庫

エピソードは `ad_inventory` オブジェクトでブレークベースの広告在庫を宣言します:

| Field                     | Type      | Description                                                       |
| ------------------------- | --------- | ----------------------------------------------------------------- |
| `expected_breaks`         | integer   | 計画された広告ブレーク数                                                      |
| `total_ad_seconds`        | integer   | すべてのブレーク全体の広告時間の合計秒                                               |
| `max_ad_duration_seconds` | integer   | ブレーク内の単一広告の最大期間                                                   |
| `unplanned_breaks`        | boolean   | `false`: すべてのブレークが事前定義。`true`: ブレークがライブ条件（スポーツタイムアウト、ライブニュース）で駆動。 |
| `supported_formats`       | string\[] | ブレークでサポートされるフォーマットタイプ（例: `"video"`、`"audio"`）                     |

ホストリード、カスタム統合、スポンサーシップのような非ブレーク広告フォーマットには、代わりに製品 [プレースメント](/docs/media-buy/product-discovery/media-products#placements) を使います。ポッドキャスト製品は「mid-roll host read (60s)」のプレースメントを持つかもしれません — それは製品のプレースメントで、`ad_inventory` の一部ではありません。

## LEAP との関係

インストールメントモデルは、ライブストリーミングイベントのための IAB Tech Lab の LEAP Forecasting API と揃います:

| LEAP concept             | AdCP equivalent                                       |
| ------------------------ | ----------------------------------------------------- |
| UpcomingEvent            | Episode（`scheduled_at` + `status`）                    |
| Content (AdCOM 1.0)      | 番組メタデータ（`genre`、`content_rating`、`talent`）            |
| AdInventoryConfiguration | Episode `ad_inventory` + 製品プレースメント                    |
| Event status             | Episode `status`（`scheduled`、`tentative`、`cancelled`） |
| Unplanned breaks         | `ad_inventory.unplanned_breaks`                       |
| Flexible end time        | Episode `flexible_end`                                |

LEAP は SSP-to-DSP 配管をターゲットします。AdCP は購入決定が起こるエージェント間交渉層で動作します。

## コレクションターゲティング

複数のコレクションを持つ製品はデフォルトでバンドルします — バイヤーはすべてのリストされたコレクションを得ます。セラーは、バイヤーがサブセットをターゲットできるよう `collection_targeting_allowed: true` を設定できます、プロパティの `property_targeting_allowed` と同じパターン。

| `collection_targeting_allowed` | Meaning                     |
| ------------------------------ | --------------------------- |
| `false`（デフォルト）                 | バンドル — バイヤーがすべてのコレクションを得る   |
| `true`                         | バイヤーがメディアバイで特定のコレクションを選択できる |

## マルチコレクションバンドル

単一の製品は、`collections` に複数のコレクション ID をリストすることで複数のコレクションにまたがれます。製品が複数のコレクションを持つとき、バイヤーエージェントが各インストールメントがどのコレクションに属するか知るよう、各インストールメントは `collection_id` を含まなければなりません（MUST）。

```json theme={null}
{
  "products": [
    {
      "product_id": "technet_april_bundle",
      "name": "TechNet Podcast Bundle - April",
      "collections": [{ "publisher_domain": "technet.example.com", "collection_ids": ["tech_weekly", "startup_hour"] }],
      "installments": [
        { "installment_id": "tw_ep12", "collection_id": "tech_weekly", "scheduled_at": "2026-04-07T10:00:00Z", "status": "scheduled" },
        { "installment_id": "tw_ep13", "collection_id": "tech_weekly", "scheduled_at": "2026-04-14T10:00:00Z", "status": "tentative" },
        { "installment_id": "sh_ep30", "collection_id": "startup_hour", "scheduled_at": "2026-04-09T14:00:00Z", "status": "scheduled" },
        { "installment_id": "sh_ep31", "collection_id": "startup_hour", "scheduled_at": "2026-04-16T14:00:00Z", "status": "tentative" }
      ],
      "delivery_type": "guaranteed",
      "pricing_options": [
        { "pricing_option_id": "bundle", "pricing_model": "flat_rate", "fixed_price": 25000, "currency": "USD" }
      ]
    }
  ]
}
```

### 号付きプリント出版物

今後の号全体でディスプレイ広告を販売する雑誌パブリッシャー。各号はブッキング、キャンセル、素材配信の締切を持つインストールメントです:

```json theme={null}
{
  "products": [
    {
      "product_id": "vogue_de_display_q2",
      "name": "Vogue Germany — Display Ads, Q2 2026",
      "channels": ["print"],
      "collections": [{ "publisher_domain": "vogue.de", "collection_ids": ["vogue_de"] }],
      "installments": [
        {
          "installment_id": "2026-04",
          "name": "April 2026",
          "season": "2026",
          "installment_number": "4",
          "scheduled_at": "2026-04-01T00:00:00+02:00",
          "status": "scheduled",
          "deadlines": {
            "booking_deadline": "2026-02-15T17:00:00+01:00",
            "cancellation_deadline": "2026-02-22T17:00:00+01:00",
            "material_deadlines": [
              { "stage": "draft", "due_at": "2026-03-01T17:00:00+01:00", "label": "Artwork for color proofing" },
              { "stage": "final", "due_at": "2026-03-08T17:00:00+01:00", "label": "Press-ready PDF/X-4, CMYK, 300 DPI" }
            ]
          }
        },
        {
          "installment_id": "2026-05",
          "name": "Mai 2026",
          "season": "2026",
          "installment_number": "5",
          "scheduled_at": "2026-05-01T00:00:00+02:00",
          "status": "scheduled",
          "deadlines": {
            "booking_deadline": "2026-03-15T17:00:00+01:00",
            "cancellation_deadline": "2026-03-22T17:00:00+01:00",
            "material_deadlines": [
              { "stage": "draft", "due_at": "2026-03-29T17:00:00+01:00", "label": "Artwork for color proofing" },
              { "stage": "final", "due_at": "2026-04-05T17:00:00+02:00", "label": "Press-ready PDF/X-4, CMYK, 300 DPI" }
            ]
          }
        }
      ],
      "placements": [
        { "kind": "seller_inline", "placement_id": "full_page", "name": "Full Page", "mode": "targetable" },
        { "kind": "seller_inline", "placement_id": "dps", "name": "Double Page Spread", "mode": "targetable" },
        { "kind": "seller_inline", "placement_id": "ifc", "name": "Inside Front Cover", "mode": "targetable" }
      ],
      "delivery_type": "guaranteed",
      "delivery_measurement": {
        "provider": "IVW",
        "notes": "Verified circulation, updated quarterly"
      },
      "pricing_options": [
        { "pricing_option_id": "full_page", "pricing_model": "flat_rate", "fixed_price": 28000, "currency": "EUR" },
        { "pricing_option_id": "dps", "pricing_model": "flat_rate", "fixed_price": 48000, "currency": "EUR" }
      ]
    }
  ]
}
```

コレクション/インストールメントモデルはプリント出版物とオーディオ/ビデオコンテンツで同一に機能します。インストールメントの `deadlines` オブジェクトは、ドイツの OBS システムが別々のメッセージ交換を通じて処理するものを置き換えます — ブッキング、キャンセル、素材配信がすべて事前に可視です。

## 関連項目

* [メディア製品](/docs/media-buy/product-discovery/media-products) — 完全な製品モデル
* [プリント広告](/docs/creative/channels/print) — プリント固有のクリエイティブフォーマット、物理寸法、ブリード、DPI
* [brand.json](/docs/brand-protocol/brand-json) — タレントアイデンティティとブランドセーフティ評価
