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

# Pricing models

title: 価格モデル
description: CPM、CPCV、CPP、CPC、DOOH など柔軟な価格モデルに関する包括的ガイド
keywords: \[pricing models, CPM, CPCV, CPP, CPC, CPV, GRP, video pricing, DOOH, share of voice, measurement]
------------------------------------------------------------------------------------------------------------

AdCP は多様な広告チャネルとビジネス目的に合わせ、複数の価格モデルをサポートしています。パブリッシャーが対応する価格モデルを宣言し、バイヤーが提示されたオプションから選択します。

## パブリッシャーが宣言し、バイヤーが選ぶモデル

### 仕組み

1. パブリッシャーは商品内の `pricing_options` 配列で **価格オプションを宣言** する（各オプションには固有の `pricing_option_id` を付与）
2. バイヤーは `get_products` を通じて **利用可能なオプションを探索** します
3. バイヤーはメディアバイ作成時に `pricing_option_id` を指定し、**特定のオプションを選択** します
4. **配信計測** は宣言された `delivery_measurement` のプロバイダーに従う

### 主なメリット

* **柔軟性**: 同じインベントリに複数の価格モデルを提示できます
* **通貨サポート**: パブリッシャーが対応通貨を指定し、バイヤーはそれに合わせる
* **市場標準**: 各チャネル（TV・動画・ディスプレイ・パフォーマンス）が自然な単価を利用できます
* **期待値の明確化**: キャンペーン開始前に双方が価格へ合意できます

## 計測とソース・オブ・トゥルース

### 計測プロバイダーをソース・オブ・トゥルースとします

**商品で計測プロバイダーを宣言し、バイヤーはそのプロバイダーを配信指標の正と認めます。**

パブリッシャーは商品内で計測プロバイダーを指定します。

```json theme={null}
{
  "product_id": "premium_video",
  "delivery_measurement": {
    "provider": "Google Ad Manager with IAS viewability verification",
    "notes": "MRC-accredited viewability measurement. 50% in-view for 1 second (display) or 2 seconds (video)."
  }
}
```

**一般的な計測プロバイダー:**

* **アドサーバー**: Google Ad Manager、Freewheel、SpringServe
* **アテンション計測**: Adelaide、Lumen、TVision
* **サードパーティ検証**: IAS、DoubleVerify、Scope3
* **TV/オーディオ計測**: Nielsen、Comscore、iSpot.tv、Triton Digital
* **DOOH**: Geopath、Vistar、Place Exchange

商品を受け入れることで、バイヤーは宣言された計測プロバイダーを配信指標の正として同意します。

### 計測条件とパフォーマンス基準

プロバイダーの宣言にとどまらず、セラーはプロダクトに構造化された条件を公開でき、バイヤーは購入作成時にそれらを交渉できます。これらは二つの別個の関心事です:

* **`measurement_terms`** — 誰が課金メトリクスを数え、閾値が破られたときに何が起きるか（メイクグッド）
* **`performance_standards`** — どのレート閾値が適用されるか（ビューアビリティ、IVT、完了、ブランドセーフティ、アテンション）

```json theme={null}
{
  "product_id": "premium_guaranteed_video",
  "delivery_measurement": {
    "provider": "Google Ad Manager with DoubleVerify verification",
    "notes": "MRC-accredited viewability. DV IVT filtering enabled."
  },
  "measurement_terms": {
    "billing_measurement": {
      "vendor": { "domain": "admanager.google.com" },
      "max_variance_percent": 10
    },
    "makegood_policy": {
      "available_remedies": ["additional_delivery", "credit", "invoice_adjustment"]
    }
  },
  "performance_standards": [
    {
      "metric": "viewability",
      "threshold": 0.70,
      "standard": "mrc",
      "vendor": { "domain": "doubleverify.com" }
    },
    {
      "metric": "ivt",
      "threshold": 0.05,
      "vendor": { "domain": "doubleverify.com" }
    },
    {
      "metric": "completion_rate",
      "threshold": 0.80,
      "vendor": { "domain": "doubleverify.com" }
    }
  ]
}
```

**計測条件のフィールド:**

* **`billing_measurement`** — どのベンダーによる課金メトリクス（`pricing_model` が決定）のカウントが請求を支配するか。`max_variance_percent` は、非課金側のカウントの乖離が解決を引き起こす閾値を定義します。
* **`makegood_policy`** — 任意のパフォーマンス基準または請求の差異が破られたときに利用可能な、閉じた救済メニュー。三つの救済タイプ: `additional_delivery`（インプレッションの延長/追加、同等物）、`credit`（将来の購入への充当）、`invoice_adjustment`（現在の請求書の減額）。セラーがこのメニューから提案し、バイヤーが受諾または異議を申し立てます。

**パフォーマンス基準のフィールド:**

`performance_standards` 配列の各エントリは以下を指定します:

* **`metric`** — 何を計測するか: `viewability`、`ivt`、`completion_rate`、`brand_safety`、`attention_score`
* **`threshold`** — 小数（0〜1）のレート。これが下限か上限かはメトリクスによります: viewability、completion\_rate、brand\_safety、attention\_score は下限（超えなければならない）、ivt は上限（超えてはならない）。
* **`standard`** — ビューアビリティでは必須（`"mrc"` または `"groupm"`）。他のメトリクスでは省略。
* **`vendor`** — 誰が計測するか。ドメインで識別されます。確定パッケージで合意された場合、クリエイティブは指定ベンダーのトラッカーアセットを含まなければなりません（MUST）。

**交渉のフロー:**

1. セラーがプロダクトに `measurement_terms` と `performance_standards` を公開（デフォルト）
2. バイヤーが `create_media_buy` のパッケージリクエストで上書きを提案
3. セラーが受諾（確定パッケージでエコー）、拒否（`TERMS_REJECTED`）、または調整（変更した条件を返す）
4. 閾値が破られた場合、セラーが合意済みの `makegood_policy` から救済を提案し、バイヤーが受諾または異議を申し立てる

バイヤーがこれらのフィールドを省略した場合、プロダクトのデフォルトが適用されます。

### キャンセルポリシー

保証プロダクトは、キャンセルが有効になるまでに必要な最短通知期間を持つ `cancellation_policy` を宣言できます:

```json theme={null}
{
  "product_id": "premium_guaranteed_video",
  "delivery_type": "guaranteed",
  "cancellation_policy": {
    "notice_period": { "interval": 30, "unit": "days" },
    "cancellation_fee": { "type": "percent_remaining", "rate": 0.5 }
  }
}
```

**キャンセル料のタイプ:**

* **`percent_remaining`** — 残りのコミット済み支出額に対する割合（`rate` が必要。例: 50% なら `0.5`）
* **`full_commitment`** — 配信に関わらず、バイヤーはコミット済み予算全額を負う
* **`fixed_fee`** — 定額の金額（購入の通貨で `amount` が必要）
* **`none`** — キャンセル料なし（通知ありのキャンセルは無料）

`measurement_terms` と異なり、キャンセルポリシーは交渉のサーフェスではありません——セラーが宣言し、バイヤーはそのプロダクトに対してメディアバイを作成することで受諾します。十分な通知なくキャンセルされた保証付き購入には、宣言されたキャンセル料が発生します。

### ベストプラクティス

**パブリッシャー向け:**

* 計測プロバイダー（アドサーバーと第三者検証を含む）を明確に示します
* 計測方法を平易な言葉で説明します
* DOOH ではオーディエンス計測ソース（Geopath、会場センサーなど）を明記します

**バイヤー向け:**

* 予算確定前に計測プロバイダーを確認します
* キャンペーン要件に合致しているか確認します
* 必要に応じて契約で監査権を交渉します

## サポートされる価格モデル

### CPM (Cost Per Mille)

**インプレッション 1,000 件あたりのコスト**。従来のディスプレイ広告の価格体系。

**ユースケース**: ディスプレイ、ネイティブ、バナー広告

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/cpm-option.json",
  "pricing_option_id": "cpm_usd_guaranteed",
  "pricing_model": "cpm",
  "fixed_price": 12.50,
  "currency": "USD",
  "min_spend_per_package": 5000
}
```

**課金**: 配信された広告インプレッション 1,000 件ごとに課金

***

### vCPM (Viewable Cost Per Mille)

**ビューアブルインプレッション 1,000 件あたりのコスト**。MRC のビューアビリティ基準を満たすインプレッションのみに支払う。

**ユースケース**: ビューアビリティ保証付きのディスプレイ、ネイティブ、動画広告

**ビューアビリティ基準**（MRC 標準）:

* **ディスプレイ広告**: ピクセルの 50% が 1 秒以上表示
* **動画広告**: ピクセルの 50% が 2 秒以上表示

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/vcpm-option.json",
  "pricing_option_id": "vcpm_usd_guaranteed",
  "pricing_model": "vcpm",
  "fixed_price": 18.50,
  "currency": "USD",
  "min_spend_per_package": 5000
}
```

**課金**: ビューアブルインプレッション 1,000 件ごとに課金（MRC のビューアビリティ閾値を満たすインプレッション）。ビューアビリティは宣言された計測プロバイダーで測定。

**計測要件**: パブリッシャーは商品の `delivery_measurement` フィールドでビューアビリティ計測プロバイダーを宣言すること。一般的なプロバイダーには IAS、DoubleVerify、MOAT、Google Active View などがあります。

***

### CPCV (Cost Per Completed View)

**動画/オーディオの 100% 完視聴あたりのコスト**。完全視聴された場合のみ支払う。

**ユースケース**: 動画キャンペーン、オーディオ広告、プレロール動画

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/cpcv-option.json",
  "pricing_option_id": "cpcv_usd_guaranteed",
  "pricing_model": "cpcv",
  "fixed_price": 0.15,
  "currency": "USD"
}
```

**課金**: 視聴者が動画/オーディオ広告を 100% 再生した場合にのみ課金。完視聴は宣言された計測プロバイダーで測定。

***

### CPV (Cost Per View)

**閾値到達ごとの視聴単価**。視聴者がパブリッシャー定義の閾値に達したときに課金。

**ユースケース**: 短い完了要件がある動画キャンペーン

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/cpv-option.json",
  "pricing_option_id": "cpv_usd_50pct",
  "pricing_model": "cpv",
  "fixed_price": 0.08,
  "currency": "USD",
  "parameters": {
    "view_threshold": 0.5
  }
}
```

**課金**: 視聴者が閾値に達したときに課金（例: 50% 完了、30 秒到達など）

**パラメーター**:

* `view_threshold`: 0.0〜1.0 の小数（例: 0.5 = 50% 完了）

***

### CPP (Cost Per Point)

**Gross Rating Point（GRP） あたりのコスト**。従来の TV/ラジオの指標。

**ユースケース**: CTV、リニア TV、ラジオ、オーディオストリーミング

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/cpp-option.json",
  "pricing_option_id": "cpp_usd_a18-49",
  "pricing_model": "cpp",
  "fixed_price": 250.00,
  "currency": "USD",
  "parameters": {
    "demographic": "A18-49",
    "min_points": 50
  },
  "min_spend_per_package": 12500
}
```

**課金**: 対象デモグラフィックに対して配信された rating point ごとに課金

**パラメーター**:

* `demographic`: 対象デモグラフィック（例: "A18-49"、"W25-54"、"M35+"）
* `min_points`: 必須の最小 GRP コミットメント

**報告されるメトリクス**:

* `grps`: 配信された合計 Gross Rating Points
* `reach`: 到達したユニーク人数
* `frequency`: 一人当たりの平均接触頻度

**計測要件**:

CPP 価格では **認定されたデモグラフィック計測** が必要です。パブリッシャーは計測プロバイダーを宣言してください。

```json theme={null}
{
  "pricing_model": "cpp",
  "fixed_price": 250.00,
  "delivery_measurement": {
    "provider": "Nielsen DAR",
    "notes": "Panel-based demographic measurement for A18-49. GRP reports available weekly."
  }
}
```

**CPP 向けの一般的な計測プロバイダー**:

* **Nielsen DAR/TV**: 業界標準の TV 計測
* **Comscore**: CTV 向け Campaign Ratings
* **iSpot.tv**: 高度な TV 分析
* **Triton Digital**: オーディオ/ストリーミング計測

バイヤーは CPP 取引を受ける前に、計測プロバイダーがキャンペーン要件に合致するか確認してください。

***

### CPC (Cost Per Click)

**クリック単価**。エンゲージメントを目的としたパフォーマンス型の価格。

**ユースケース**: ダイレクトレスポンス、検索広告、ソーシャル広告

**例**:

```json theme={null}
{
  "pricing_model": "cpc",
  "currency": "USD",
  "floor_price": 0.50,
  "price_guidance": {
    "p50": 1.20,
    "p75": 2.00
  }
}
```

**課金**: ユーザーが広告をクリックした場合のみ課金

***

### CPA (Cost Per Acquisition)

**コンバージョンイベントあたりのコスト** - 定義されたコンバージョンが発生したときに広告主が支払います。

**ユースケース**: リテールメディア（注文ごとの支払い）、リード獲得、アプリインストールキャンペーン、コマースメディア

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/cpa-option.json",
  "pricing_option_id": "cpa_usd_purchase",
  "pricing_model": "cpa",
  "event_type": "purchase",
  "fixed_price": 5.00,
  "currency": "USD"
}
```

**課金**: 指定された `event_type` が発火したときに固定価格が課金されます。価格オプションは何のイベントが課金を引き起こすかを宣言します——これは配信の最適化を制御する `optimization_goals` とは独立です。

**パラメーター**:

* `event_type`（必須）: 課金を引き起こすコンバージョンイベント。標準のイベントタイプ列挙を使用します（例: `purchase`、`lead`、`app_install`、`add_to_cart`、有料サブスクリプションには `subscribe`、無料の継続的オプトインには `follow`）。
* `event_source_id`（任意）: 存在する場合、この特定のソースからのイベントのみが課金の対象になります。`sync_event_sources` で設定されたイベントソースと一致しなければなりません。省略時は、指定された `event_type` の任意のイベントが対象になります。

**例**（イベントソースごとに異なるレート）:

```json theme={null}
{
  "pricing_options": [
    {
      "pricing_option_id": "cpa_online_purchase",
      "pricing_model": "cpa",
      "event_type": "purchase",
      "event_source_id": "website_pixel",
      "fixed_price": 5.00,
      "currency": "USD"
    },
    {
      "pricing_option_id": "cpa_instore_purchase",
      "pricing_model": "cpa",
      "event_type": "purchase",
      "event_source_id": "instore_attribution",
      "fixed_price": 3.00,
      "currency": "USD"
    }
  ]
}
```

**価格設定 vs 最適化**: CPA 価格オプションの `event_type`（何が課金を引き起こすか）は、パッケージの `optimization_goals`（プラットフォームが配信を何に向けて最適化するか）とは独立です。例えば、パッケージは `lead` イベントで CPA 価格を使いつつ、購入イベントを含む `event_sources` と `target: { kind: "per_ad_spend", value: 4.0 }` を持つイベント目標を設定できます——課金はリードで発火しますが、配信は下流の購入リターンに向けて最適化されます。

**返金と調整**: 返金の扱いとコンバージョン調整のポリシーは、バイヤーとセラーの間の商業的条件です。プロトコルは、返金されたコンバージョンのクローバックや請求クレジットを規定しません。

**注記**: CPA は、別個の「CPO」（Cost Per Order）や「CPL」（Cost Per Lead）の価格モデルの必要性を置き換えます。セラーは同じプロダクトで、異なるイベントタイプ、イベントソース、価格を持つ複数の CPA オプションを提供できます。

***

### Flat Rate

**固定費**。配信ボリュームに関係なく一括で支払う。

**ユースケース**: スポンサーシップ、テイクオーバー、独占枠、ブランドコンテンツ

**例**:

```json theme={null}
{
  "pricing_model": "flat_rate",
  "fixed_price": 50000.00,
  "currency": "USD"
}
```

**課金**: キャンペーン期間全体に対して固定費を支払う

***

### Time (Cost Per Time Unit)

**時間単位あたりのコスト** - レートがキャンペーン期間に応じてスケールし、セルフサーブのスポンサーシップを可能にします。

**ユースケース**: ホームページのテイクオーバー、セクションのスポンサーシップ、価格が予約期間に依存するプレミアムプレースメント

**例**:

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/pricing-options/time-option.json",
  "pricing_option_id": "time_usd_daily",
  "pricing_model": "time",
  "fixed_price": 50000.00,
  "currency": "USD",
  "parameters": {
    "time_unit": "day",
    "min_duration": 1,
    "max_duration": 30
  }
}
```

**課金**: コスト = `fixed_price` × キャンペーンフライト内の `time_unit` 数。例えば、1 日 \$50,000 の 3 日間キャンペーンは合計 \$150,000 です。

**パラメーター**:

* `time_unit`（必須）: `"hour"`、`"day"`、`"week"`、`"month"`
* `min_duration`（任意）: 時間単位での最短予約期間
* `max_duration`（任意）: 時間単位での最長予約期間

**時間単位の計算**:

| Time Unit | Calculation         |
| --------- | ------------------- |
| `hour`    | レート × フライト内の時間数     |
| `day`     | レート × フライト内の暦日数     |
| `week`    | レート × 週数（丸めはセラー定義）  |
| `month`   | レート × 月数（日割りはセラー定義） |

**Flat Rate との比較**:

| Aspect            | Flat Rate   | Time            |
| ----------------- | ----------- | --------------- |
| 意味論               | 固定の総コスト     | レート × 期間        |
| `fixed_price` の意味 | キャンペーンの総コスト | 時間単位あたりのコスト     |
| バイヤーの柔軟性          | 期間を交渉する必要あり | 任意の期間をセルフサーブ    |
| ユースケース            | 固定のスポンサーシップ | スケーラブルなスポンサーシップ |

***

## Digital Out-of-Home (DOOH) の価格

DOOH 広告では既存の価格モデル（主に **CPM** または **flat\_rate**）を用い、在庫の割り当てを説明するための任意パラメーターを追加します。

### 基本概念

* **DOOH 向け CPM**: 会場トラフィック（例: Geopath データ）に基づいてインプレッションを算出し、1,000 インプレッション単位で価格を設定
* **DOOH 向け定額**: 特定の期間または配分（時間・日単位、独占テイクオーバーなど）に対して固定費を設定

### 簡単な例: ビルボードのテイクオーバー

```json theme={null}
{
  "product_id": "billboard_takeover",
  "name": "Premium Billboard - 24 Hour Takeover",
  "pricing_options": [{
    "pricing_model": "flat_rate",
    "fixed_price": 50000.00,
    "currency": "USD"
  }],
  "delivery_measurement": {
    "provider": "Geopath",
    "notes": "Venue traffic data updated monthly. Estimated 2.5M impressions over 24 hours."
  }
}
```

### DOOH パラメーター（任意）

パブリッシャーは DOOH の配分を説明するため、追加パラメーターを含めてもよい。

* `duration_hours`: 時間ベース料金のための配信時間
* `sov_percentage`: 音声シェア（利用可能な再生枠の %）
* `daypart`: 特定の時間帯（例: "morning\_commute"）
* `venue_package`: 画面のまとまったパッケージ名称

**注意**: DOOH の計測やバイイング慣行は市場によって異なります。パブリッシャーは商品説明と `delivery_measurement` フィールドで、計測方法と在庫配分を明確に説明してください。

***

## 価格の内訳（Price Breakdown）

バイヤーとセラーが値引きやコミッションを交渉した場合、`price_breakdown` オブジェクトが、`fixed_price` がレートカードからどう導出されたかを開示します。これは任意です——内訳を必要としないセラーは丸ごと省略でき、既存の実装へのオーバーヘッドはゼロです。

`price_breakdown` はプランニングレイヤーの構成物です。AdCP 内の価格オプションと確定パッケージに存在します——インプレッションレベルの OpenRTB の入札リクエストやレスポンスには伝播しません。

### 構造

```json theme={null}
{
  "pricing_option_id": "cpm_eur_premium",
  "pricing_model": "cpm",
  "fixed_price": 11.90,
  "currency": "EUR",
  "price_breakdown": {
    "list_price": 14.00,
    "adjustments": [
      { "kind": "discount", "name": "volume", "rate": 0.15, "description": "12x frequency discount" },
      { "kind": "commission", "name": "agency", "rate": 0.15, "description": "Agency commission" },
      { "kind": "settlement", "name": "cash_discount", "rate": 0.02, "description": "2% discount for payment within 10 days" }
    ]
  }
}
```

* `list_price` — 調整前のレートカードまたは基本価格
* `adjustments` — 順序付けられた調整のリスト。各項目は `kind` で分類されます
* `fixed_price`（親の価格オプション上）— `list_price` にすべての `fee` と `discount` の調整を順に適用した結果と等しくなければなりません

実装は、前方互換性のため `price_breakdown` とその調整における認識できないフィールドを無視すべきです。

### 調整の種別

調整は、その経済的効果に基づいて四つの種別に分かれます:

| Kind         | Effect on buyer price | Effect on publisher revenue | When applied                                  |
| ------------ | --------------------- | --------------------------- | --------------------------------------------- |
| `fee`        | 増やす                   | 増やす                         | 見積もり前——`list_price` を `fixed_price` に向けて引き上げる |
| `discount`   | 減らす                   | 減らす                         | 見積もり前——`list_price` を `fixed_price` に向けて引き下げる |
| `commission` | なし——予算に含まれる           | 減らす（収益分配）                   | 仲介者とパブリッシャー間の収益配分                             |
| `settlement` | なし——請求書発行後            | 実際の支払いを減らす                  | 請求または支払いの時点                                   |

**Fee** はバイヤーの支払額を増やします。アドサービング料、データ/ターゲティングの追加料金、ブランドセーフティ検証のコストは基本価格に加算されます。fee の調整がなければ、これらは `list_price` の中で不透明になります。

**Discount** はバイヤーの支払額を減らします。ボリュームディスカウント、交渉レート、早期予約割引はいずれもバイヤーのコストとパブリッシャーの収益の両方を下げます。

**Commission** は収益分配です。バイヤーの価格と予算は変わりません——コミッションは、支払いが仲介者（例: エージェンシー）とパブリッシャーの間でどう分割されるかを決めます。予算は常にコミッション込みで管理されます。複数のコミッション調整は、ディスカウントと同様に順次複合します——例えば、15% のエージェンシーコミッションに続く 5% のトレーディングデスク手数料は、パブリッシャーが `budget × 0.85 × 0.95` を受け取ることを意味します。

**Settlement の調整**は請求または支払いの時点で適用されます（例: 早期支払いに対する現金割引）。コミット済みの価格や予算には影響しません。遡及的なリベートやパフォーマンスインセンティブは `price_breakdown` の対象外であり、照合のワークフローで扱われます。

### 受益者（Beneficiary）

各調整は、調整の価値を誰が受け取るかを識別する任意の `beneficiary` フィールドを含められます。これは複数の仲介者が連なるチェーンにおけるコミッション調整で最も有用です:

```json theme={null}
{ "kind": "commission", "name": "agency", "rate": 0.15, "beneficiary": "mediaagency.example.com" },
{ "kind": "commission", "name": "trading_desk", "rate": 0.05, "beneficiary": "tradingdesk.example.com" }
```

値は sellers.json のドメイン、AdCP のアカウント ID、または人が読める当事者名にできます。

### 不変条件

不変条件は次のとおりです: `list_price` にすべての `fee` と `discount` の調整を順に適用したものが `fixed_price` と等しい。コミッションと settlement の調整は関与しません——それらは透明性のために開示されます。fee や discount の調整が存在しない場合、`fixed_price` は `list_price` と等しくなければなりません。

この不変条件は、親オブジェクトに `fixed_price` が存在する場合にのみ適用されます。オークションベースのパッケージ（`bid_price` のみが存在する）では、`price_breakdown` は情報提供です——[確定パッケージ上](#on-confirmed-packages)を参照してください。

fee と discount の調整は、配列の順序で次の式を使って複合します:

```
For rate-based fees:        running = running × (1 + rate)
For amount-based fees:      running = running + amount
For rate-based discounts:   running = running × (1 − rate)
For amount-based discounts: running = running − amount
```

すべての金銭的な値は、各ステップで通貨の精度（例: EUR/USD は小数点以下 2 桁）に丸められます。不変条件は丸めの後に成立します。

混在した調整の例:

```
list_price: 12.00
  fee, amount: 2.00          → 12.00 + 2.00 = 14.00
  discount, rate: 0.15       → 14.00 × 0.85 = 11.90
fixed_price: 11.90 ✓
```

上記の構造の例では: 14.00 × (1 − 0.15) = 11.90 ✓（その例に fee の調整はありません）

### Rate と Amount

各調整は `rate` または `amount` のちょうど一方を含まなければなりません:

* `rate` — 小数の割合。0 より大きく 1 より小さい（0 \< rate \< 1）。例: 15% なら 0.15
* `amount` — 価格オプションの通貨での正の数（> 0）

```json theme={null}
{ "kind": "discount", "name": "volume", "rate": 0.15 }
{ "kind": "discount", "name": "negotiated", "amount": 2.00, "description": "Flat rate reduction" }
```

### 予算とコミッション

予算は常に `fixed_price` のレベルで、コミッション込みで建てられます。バイヤーが €11.90 CPM で €10,000 をコミットする場合、その €10,000 がバイヤーのコストです。エージェンシーはその金額からコミッションを取り、パブリッシャーは残りを受け取ります。

これは、セラー間でレートを比較するバイヤーエージェントが `fixed_price` を直接使えることを意味します——基盤となるコミッション構造に関わらず、それが実際の単位あたりコストです。

### 確定パッケージ上

`price_breakdown` フィールドはパッケージレスポンス（確定したラインアイテム）にも現れます。これはセラーが埋めるものであり、バイヤーエージェントは読み取り専用として扱うべきです。

**固定価格のパッケージ**は価格オプションの内訳をエコーします:

```json theme={null}
{
  "package_id": "pkg_12345",
  "product_id": "premium_display",
  "pricing_option_id": "cpm_eur_premium",
  "fixed_price": 11.90,
  "budget": 10000,
  "price_breakdown": {
    "list_price": 14.00,
    "adjustments": [
      { "kind": "discount", "name": "volume", "rate": 0.15, "description": "12x frequency discount" },
      { "kind": "commission", "name": "agency", "rate": 0.15, "description": "Agency commission" },
      { "kind": "settlement", "name": "cash_discount", "rate": 0.02, "description": "2% for payment within 10 days" }
    ]
  }
}
```

**オークションベースのパッケージ**は、`price_breakdown` を使ってクリアリング価格に対するコミッションと settlement の条件を開示します。オークションのパッケージでは、開示すべきレートカードの導出がないため、`list_price` はクリアリング価格に設定されます。ディスカウントの不変条件は適用されません——内訳は情報提供のみです:

```json theme={null}
{
  "package_id": "pkg_67890",
  "product_id": "premium_display",
  "pricing_option_id": "cpm_eur_auction",
  "bid_price": 12.50,
  "budget": 10000,
  "price_breakdown": {
    "list_price": 12.50,
    "adjustments": [
      { "kind": "commission", "name": "agency", "rate": 0.15, "description": "Agency commission" },
      { "kind": "settlement", "name": "cash_discount", "rate": 0.02, "description": "2% for payment within 10 days" }
    ]
  }
}
```

***

## 適用可能な調整（Eligible Adjustments）

パブリッシャーは `eligible_adjustments` を使って、どの調整種別が価格オプションに適用されるかを宣言できます。これにより、交渉が始まる前に、ディスカウント、コミッション、settlement の条件が利用可能かどうかをバイヤーエージェントに事前に伝えられます。

```json theme={null}
{
  "pricing_option_id": "cpm_eur_standard",
  "pricing_model": "cpm",
  "fixed_price": 14.00,
  "currency": "EUR",
  "eligible_adjustments": ["fee", "discount", "commission", "settlement"]
}
```

`eligible_adjustments` が存在する場合、バイヤーはどの種別の調整を期待または要求すべきかを知ります。存在しない場合、事前に宣言された調整はありません——バイヤーは、既に適用された調整があるかどうか `price_breakdown`（存在する場合）を確認すべきです。

このフィールドは `price_breakdown` と対になります: `eligible_adjustments` は何が*可能か*を示し、`price_breakdown` は何が*適用されたか*を示します。

***

## 複数通貨サポート

パブリッシャーは同一の商品を複数通貨で提供できます。

```json theme={null}
{
  "product_id": "premium_video",
  "pricing_options": [
    {
      "pricing_option_id": "cpm_usd_guaranteed",
      "pricing_model": "cpm",
      "fixed_price": 45.00,
      "currency": "USD"
    },
    {
      "pricing_option_id": "cpm_eur_guaranteed",
      "pricing_model": "cpm",
      "fixed_price": 40.00,
      "currency": "EUR"
    },
    {
      "pricing_option_id": "cpm_gbp_guaranteed",
      "pricing_model": "cpm",
      "fixed_price": 35.00,
      "currency": "GBP"
    }
  ]
}
```

**バイヤーの責務**: パブリッシャーがサポートする通貨を選択する必要があります。

## 固定価格とオークション価格

### 固定価格（`fixed_price` がある場合）

* パブリッシャーが固定価格を設定
* 価格が保証され予測可能
* 保証インベントリで一般的
* `fixed_price` フィールドを含めます

### オークション価格（`fixed_price` がない場合）

* 最終価格はオークションで決定
* パブリッシャーは `floor_price`（下限）と `price_guidance`（パーセンタイルの目安）を提示
* 非保証インベントリで一般的
* バイヤーはメディアバイリクエストで `bid_price` を送信

**オークションの例**:

```json theme={null}
{
  "pricing_option_id": "cpcv_usd_auction",
  "pricing_model": "cpcv",
  "currency": "USD",
  "floor_price": 0.08,
  "price_guidance": {
    "p25": 0.10,
    "p50": 0.12,
    "p75": 0.15,
    "p90": 0.18
  }
}
```

## バイヤーの選択プロセス

各パッケージは独自の価格オプションを指定し、それが通貨と価格モデルを決定します。

```json theme={null}
{
  "buyer_ref": "campaign_001",
  "start_time": "2025-01-01T00:00:00Z",
  "end_time": "2025-01-31T23:59:59Z",
  "brand_manifest": {
    "name": "Acme Corp",
    "url": "https://acmecorp.com"
  },
  "brief": "Q1 Brand Campaign",
  "packages": [{
    "buyer_ref": "pkg_ctv",
    "product_id": "premium_ctv",
    "format_ids": [{"agent_url": "https://creative.adcontextprotocol.org", "id": "video_30s"}],
    "pricing_option_id": "cpcv_usd_auction",
    "budget": 50000,
    "pacing": "even",
    "bid_price": 0.16
  }]
}
```

**流れ:**

1. パッケージが商品から `pricing_option_id`（例: "cpcv\_usd\_auction"）を選択
2. 価格オプションが通貨・価格モデル・固定かオークションかを決定
3. パッケージの `budget` はその価格オプションの通貨で指定
4. オークション型価格では `bid_price` が必須
5. セラーはパッケージ間で通貨の整合性を検証

## 価格モデル別のレポート指標

価格モデルによって主要指標が異なります。

| Pricing Model | Primary Metric        | Secondary Metrics                     |
| ------------- | --------------------- | ------------------------------------- |
| CPM           | impressions           | clicks, ctr, spend                    |
| vCPM          | viewable\_impressions | impressions, viewability\_rate, spend |
| CPCV          | completed\_views      | impressions, completion\_rate, spend  |
| CPV           | views                 | impressions, quartile\_data, spend    |
| CPP           | grps                  | reach, frequency, spend               |
| CPC           | clicks                | impressions, ctr, spend               |
| Flat Rate     | N/A                   | impressions, reach, frequency         |

## 例: 複数モデルを持つ CTV 商品

複数の価格オプションを持つ CTV インベントリを提供する例。

```json theme={null}
{
  "product_id": "ctv_premium_sports",
  "name": "Premium Sports CTV",
  "description": "High-engagement sports content on CTV devices",
  "format_ids": [
    {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "video_15s"
    },
    {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "video_30s"
    }
  ],
  "delivery_type": "guaranteed",
  "pricing_options": [
    {
      "pricing_option_id": "cpm_usd_guaranteed",
      "pricing_model": "cpm",
      "fixed_price": 55.00,
      "currency": "USD",
      "min_spend_per_package": 15000
    },
    {
      "pricing_option_id": "cpcv_usd_guaranteed",
      "pricing_model": "cpcv",
      "fixed_price": 0.22,
      "currency": "USD",
      "min_spend_per_package": 15000
    },
    {
      "pricing_option_id": "cpp_usd_m18-49",
      "pricing_model": "cpp",
      "fixed_price": 300.00,
      "currency": "USD",
      "parameters": {
        "demographic": "M18-49",
        "min_points": 50
      },
      "min_spend_per_package": 15000
    }
  ]
}
```

バイヤーは TV バイイングを計画する場合は CPP、エンゲージメント最適化なら CPCV、リーチ重視なら CPM を選択できます。

## 交渉ベースとプレミアムの価格設定

プレミアムなセラー——特に OOH、CTV スポンサーシップ、直接取引——は、固定レートを公開するのではなく交渉を通じて価格を確定することが多いです。AdCP は、別個の見積もりや price-on-request の仕組みを必要とせず、既存のブリーフ→プロポーザルの経路を通じてこのワークフローをサポートします。

### セラーはホールセール価格の公開を要求されない

プロダクトディスカバリー（`get_products`）は、セラーにホールセール価格やクリアリング価格の開示を要求しません。セラーは、公開の価格詳細が限定的またはまったくないプロダクトを公開してよい——例えば、オーディエンスとフォーマットの情報はあるが `pricing_options` がない CTV スポンサーシッププロダクト。プロダクトは発見可能ですが、バイヤーは実際の価格を含むプロポーザルを受け取るためにブリーフを提出しなければなりません。

### ブリーフへの選択的な応答

セラーは、どのブリーフに応答するか、どの価格を提示するかを制御します。取引しないと決めた在庫についてブリーフを受け取った場合、プロトコルネイティブな選択肢は次のとおりです:

* **プロポーザルからプロダクトを完全に省略する** — バイヤーはその在庫についてプロポーザルを見ず、このリクエストでは利用不可であることが示されます
* **`PROPOSAL_NOT_COMMITTED` を返す** — セラーがブリーフを検討したが、現時点でコミット可能なプロポーザルを提示していないという明示的なシグナル

いずれも、セラーが辞退した理由の開示を要求しません。これは「交渉なしでは価格を提示できない」のプロトコルネイティブな等価物です。

### 既存のフローが交渉ベースの取引をカバーする

交渉価格の在庫に対する標準的な経路は次のとおりです:

1. **セラーがプロダクトを公開** — 記述的なメタデータ（オーディエンス、フォーマット、プロパティ）を持つが、ホールセール価格は持たない
2. **バイヤーがブリーフを提出** — `get_products` を通じて、キャンペーンの目標と予算のパラメータを記述
3. **セラーがプロポーザルを返す** — 特定のブリーフに合わせた交渉価格とともに——または提案を辞退
4. **バイヤーがリファインまたは受諾** — その後 `proposal_id` を `create_media_buy` に渡す

これは今日のプレミアムな直接取引の仕組みを反映しています: セラーがブリーフを見て、関与するかどうかを決め、その機会に固有の条件を提示します。

## ベストプラクティス

### パブリッシャー向け

1. **関連性の高い価格モデルを提供する** - 在庫タイプとバイヤーの期待に合わせる
2. **適切な最低条件を設定する** - `min_spend_per_package` でキャンペーン成立性を確保
3. **価格の目安を提示する** - オークション価格では現実的な下限とパーセンタイルデータを示します
4. **複数通貨を検討する** - ターゲット市場の通貨に対応します
5. **パラメーターを明文化する** - 閾値、デモグラフィック、アクション種別を明確に説明

### バイヤー向け

1. **適切なモデルを選ぶ** - キャンペーン目的に合った価格を選択
2. **通貨を合わせる** - パブリッシャーが対応する通貨を選ぶ
3. **現実的な予算を設定する** - 最低出稿要件を考慮します
4. **目標と価格を整合させる** - 価格モデルに合った配信目標を設定
5. **関連指標をモニタリングする** - 価格モデルに直結する指標に注力

## 関連ドキュメント

* [Media Products](/docs/media-buy/product-discovery/media-products) - 商品モデルのリファレンス
* [Creating Media Buys](/docs/media-buy/task-reference/create_media_buy) - バイイング時の価格選択方法
* [Delivery Reporting](/docs/media-buy/task-reference/get_media_buy_delivery) - 価格モデル別の指標の見方
* [Glossary](/docs/reference/glossary) - 価格と指標の用語集
