# 賞品設定

ルーレット、ガチャポン、グリッドボックスなどのくじ引きゲームは、賞品設定システムを使用しています。このガイドでは賞品の設定と管理方法を説明します。

## 賞品の種類

### バウチャーコード

バウチャーセットからユニークなコードを配布：

- 当選時にコードを自動割り当て
- プレイヤーにユニークなコードを表示
- コードは受取済みとしてマーク

**用途：**

- 割引コード
- ギフトカード
- プロモーションオファー

### アイテム賞品

説明的な賞品（物理的またはコンセプチュアル）：

- 賞品名と画像を表示
- プレイヤーがメール/フォームで受取を申請
- 手動で発送

**用途：**

- 物理的な商品
- 無料製品
- サービスアップグレード

### バウチャーセット

自動配布のためにバウチャーセットに直接リンク：

- リンクされたセットからコードを取得
- 在庫を自動管理
- 受取を追跡

### カスタムバウチャー

外部プロバイダーが発行するコードを配布：

- 受取時にwebhookでプロバイダーへリクエスト
- プロバイダーが実際のコードを返却
- コードはDailyPlay外（自社システム）で管理

**用途：**

- ECストアやロイヤルティシステムなど、コードを別プラットフォームで管理している場合

### 賞品なし（もう一度）

プレイヤーが当選しないスロット：

- 「もう一度」メッセージを表示
- 確率バランスに不可欠
- プレイヤーの再挑戦意欲を維持

![賞品設定](/img/prize/prize-customization-voucher.jpg)

---

## カスタムバウチャー（Webhook連携）

カスタムバウチャーは、引き換えを**外部プロバイダー**に委任します。DailyPlayのバウチャーセットからコードを取得する代わりに、プレイヤーの受取時にプロバイダーへwebhookを送信し、実際のコードを取得します。コードをDailyPlay外で管理している場合に使用します。

:::note[前提条件]
カスタムバウチャー賞品は、組織の管理者が**バウチャーwebhook接続**を設定した後にのみ利用できます。接続がない場合、賞品エディターにこのオプションは表示されません。設定方法は[接続](/ja/connections/overview)を参照してください。
:::

### プロバイダーと接続

この賞品タイプには2つの層があります：

| 層               | 内容                                                                       |
| ---------------- | -------------------------------------------------------------------------- |
| **プロバイダー** | プロバイダーが必要とするフィールドとwebhookの形式を定義するテンプレート。   |
| **接続**         | 組織が設定したプロバイダーのインスタンス（実際のwebhook URLと認証情報）。   |

プロバイダーは定義、接続はそれに対する組織の設定済みの接続です。組織は同じプロバイダーに対して複数の接続を持つことができます（例：「ステージング」と「本番」ストア）。

### 接続の選択

賞品の**種類**セレクターでは、アクティブなバウチャーwebhook接続が標準タイプと並んでそれぞれボタンとして表示されます。選択すると：

- 賞品がその接続とプロバイダーに紐付けられます
- 賞品名が空の場合、接続名で自動入力されます
- プロバイダー設定と数量のための**バウチャー処理**パネルが表示されます

複数の接続がある場合、それぞれ別のボタンとして表示され、どの接続で賞品を処理するかを正確に選べます。

### プロバイダー設定（フィールド）

一部のプロバイダーは賞品ごとに追加設定を必要とします（例：割引やカートルールの識別子）。これらのフィールドは接続を選択すると**プロバイダー設定**の下に自動表示されます。各フィールドは：

- テキスト、数値、はい/いいえの値
- **必須**としてマーク可能（入力するまで賞品は保存できません）
- 最小/最大値、長さ、形式（例：メール）による制約

DailyPlayはこれらのフィールドをエディターとサーバー側の両方で検証し、組織がプロバイダーへのアクセス権を持っているかも再確認します。

### 数量と在庫

カスタムバウチャー賞品は、他の当選可能な賞品タイプと同じ**賞品上限**コントロールを使用します（詳細は下記の[在庫管理](#在庫管理)を参照）：

| フィールド       | 説明                                                                                                      |
| ---------------- | --------------------------------------------------------------------------------------------------------- |
| **合計数量**     | キャンペーン全体での当選上限回数。無制限の場合は空欄（最大1,000,000）。                                   |
| **1日の上限**    | 組織のカレンダー日あたりの当選上限。組織のタイムゾーンで深夜0時にリセット。無制限の場合は空欄。           |
| **残り**         | 読み取り専用。`残り / 合計`を表示。新規賞品では合計を反映し、保存後は当選を反映。                         |
| **本日の残り**   | 1日の上限を設定した場合、読み取り専用で`本日の残り / 1日の上限`を表示。                                   |

カスタムバウチャー賞品が合計または1日の上限に達すると、在庫が回復する（合計）か次の組織日になる（1日の上限）まで抽選から除外され、確率は他の対象賞品間で再配分されます（他の賞品タイプと同様）。

### 引き換えの仕組み

1. プレイヤーがカスタムバウチャー賞品に当選し、受取を行う
2. DailyPlayが賞品のプロバイダー設定とプレイヤー情報を含むwebhookを接続先プロバイダーへ送信
3. プロバイダーが実際のバウチャーコードを返却
4. コードがプレイヤーに表示される

---

## 賞品の設定

### ゲームエディター内

ゲーム作成または編集時、各賞品は追加・設定する「スロット」です。1つのスロットの基本的な流れは次のとおりです：

1. **賞品スロットを追加**をクリック — 新しいスロットカードが表示されます
2. **名前**を入力 — プレイヤーに表示される表示名（例：「10%オフ」）
3. **種類**を選択 — 賞品タイプを選びます（バウチャーセット、バウチャー、アイテム、外部リンク、カスタムバウチャー、賞品なし）
4. **当選確率（%）**を設定 — 抽選でのそのスロットの確率
5. 各賞品で繰り返し、すべての確率の合計が100%になるようにします

種類を選ぶと、その種類に応じたフィールド（バウチャーセット、外部URL、プロバイダー設定など）が自動的に表示されます。

**並べ替え：** 各賞品カードの**上へ移動 / 下へ移動**ボタンで表示順を変更できます。表示順は当選確率には影響しません。

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/prize/reorder-prize.mp4" type="video/mp4" />
</video>

**例：ゲームにバウチャーコード賞品を設定する方法：**

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/prize/voucher-code-prize.mp4" type="video/mp4" />
</video>

**例：ゲームにアイテム賞品を設定する方法：**

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/prize/add-code-to-game-voucher.mp4" type="video/mp4" />
</video>

### 賞品スロットの設定

各賞品スロットで設定：

| フィールド     | 説明                                                                                         |
| -------------- | -------------------------------------------------------------------------------------------- |
| 名前           | 表示名（例：「10%オフ」）                                                                    |
| 種類           | バウチャーコード、アイテム、賞品なし                                                         |
| 確率           | 当選確率（0-100%）                                                                           |
| 合計数量       | キャンペーン全体の当選上限（無制限の場合は空欄）。**賞品なし**には表示されません。             |
| 1日の上限      | 組織のカレンダー日あたりの当選上限（組織タイムゾーンの深夜0時にリセット）。**賞品なし**には表示されません。 |
| バウチャーセット | バウチャーセットへのリンク（バウチャー種類用）                                             |
| 画像           | カスタム賞品画像                                                                             |

### 確率ルール

すべてのスロットの確率は合計100%にする必要があります：

**例：**

- 大賞（5%）
- 二等賞（15%）
- 三等賞（30%）
- 賞品なし（50%）
- **合計：100%** ✅

:::caution[無効な設定]
確率の合計が100%でない場合、ゲームは正しく動作しません。DailyPlayは公開前に警告を表示します。
:::

合計が正しくない場合、エディターにインラインの警告が表示され、修正するまで先に進めません。

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/prize/prize-validiation-prize.mp4" type="video/mp4" />
</video>

---

## 最小スコアと最高ティア

スキルと運を組み合わせたゲームでは、賞品スロットごとに**最小スコア**を設定できます。プレイヤーがそのスコア以上を獲得した場合のみ、その賞品が抽選の対象になります。

### 最高ティアのみ

最小スコアに対応するゲームでは、賞品エディターの上部に**最高ティアのみ**トグルが表示されます。有効にすると、プレイヤーは対象となるすべてのティアの合算ではなく、**自分が到達した最高スコアティア**からのみ抽選されます。

- **オフ（既定）：** `min_score ≤ プレイヤーのスコア`のすべての賞品がまとめて抽選対象になります。
- **オン：** プレイヤーが解放した最高ティアの賞品のみが対象となり、下位ティアは除外されます。

トップパフォーマーに最高の報酬だけを競わせたい場合に使用します。

![最高ティアのみトグル](/img/prize/highest-tier-only.png)

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/prize/highest-tier-only-prize.mp4" type="video/mp4" />
</video>

---

## 賞品スロットの例

### ルーレット（8スロット）

| スロット | 賞品               | 確率 |
| -------- | ------------------ | ---- |
| 1        | 大賞（バウチャー） | 5%   |
| 2        | 20%オフ            | 10%  |
| 3        | 10%オフ            | 15%  |
| 4        | もう一度           | 20%  |
| 5        | 送料無料           | 10%  |
| 6        | もう一度           | 15%  |
| 7        | 5%オフ             | 15%  |
| 8        | もう一度           | 10%  |

### ガチャポン（6カプセル）

| カプセル | 賞品             | 確率 | 数量   |
| -------- | ---------------- | ---- | ------ |
| ゴールド | ¥5,000バウチャー | 2%   | 10     |
| シルバー | ¥2,000バウチャー | 8%   | 50     |
| ブロンズ | ¥1,000バウチャー | 20%  | 100    |
| ブルー   | 10%オフ          | 30%  | 無制限 |
| グリーン | 5%オフ           | 25%  | 無制限 |
| グレー   | もう一度         | 15%  | 無制限 |

---

## 在庫管理

**賞品なし**以外のすべての賞品タイプには、エディターに**賞品上限**セクションがあり、2つの任意の上限と2つの読み取り専用カウンターがあります。

| フィールド     | 説明                                                                                                      |
| -------------- | --------------------------------------------------------------------------------------------------------- |
| **合計数量**   | キャンペーン全体の当選上限。無制限の場合は空欄（最大1,000,000）。                                         |
| **1日の上限**  | 組織のカレンダー日あたりの当選上限。**組織のタイムゾーン**で深夜0時にリセット。無制限の場合は空欄。         |
| **残り**       | 合計上限を設定した場合、読み取り専用で`残り / 合計`を表示。                                               |
| **本日の残り** | 1日の上限を設定した場合、読み取り専用で`本日の残り / 1日の上限`を表示。                                   |

:::tip[高価値賞品を日ごとに分散]
合計上限なしで1日の上限だけを設定すると、1日あたりの配布ペースを調整できます（例：「大賞は1日5個」）。両方を組み合わせると、キャンペーン全体と日次の両方を制限できます（例：合計100、1日10）。
:::

### 検証ルール

- 各上限は正の整数、または空欄（無制限）
- **1日の上限**は両方設定時、**合計数量**を超えられません
- 上限は当選可能なすべての賞品タイプに適用（**賞品なし**を除く）

### 数量限定賞品（合計）

高価値賞品や在庫が限られた賞品に合計数量を設定：

1. 賞品が当選するたびに`remaining_quantity`が減少
2. 0になると、上限を引き上げるまで抽選から除外
3. 残りの賞品間で確率が自動調整

### 1日の上限

組織の1日あたりの当選回数を制限：

- 当選数は組織のタイムゾーンで深夜0時から翌日0時までカウント
- 1日の上限に達すると、その日の残り時間は抽選から除外
- 次の組織日の深夜0時に自動リセット（合計在庫は変わりません）
- 短期キャンペーンのペース配分や履行能力の保護に便利

### 無制限賞品

両方のフィールドを空欄にすると、常に提供できる賞品向け：

- デジタルコード、大きな在庫のバウチャーセット、外部リンク
- 在庫・日次の追跡不要

### 上限に達した場合

1. 上限に達した賞品は抽選でスキップ（合計枯渇または1日の上限）
2. 残りの対象賞品間で確率が再配分
3. **すべて**の賞品が対象外の場合、賞品なし
4. **1日の上限**でブロックされた賞品は、合計在庫が残っていれば組織日の深夜0時以降に再び対象になります
---

## 賞品統計の表示

### 賞品ダッシュボードから

組織から賞品ページにアクセス：

1. **組織** → **賞品**へ移動
2. 賞品設定のあるすべてのゲームを表示
3. 集計統計を確認

### 利用可能なメトリック

| メトリック       | 説明                       |
| ---------------- | -------------------------- |
| 総賞品数         | すべての設定済み賞品       |
| アクティブ賞品   | 現在当選可能な賞品         |
| 総当選数         | プレイヤーに付与された賞品 |
| 本日の当選数     | 今日付与された賞品         |
| バウチャー付与数 | 配布されたバウチャーコード |

### ゲームごとの統計

ゲームを展開して確認：

- 賞品設定
- 賞品スロットごとの当選数
- 残りの在庫
- 受取ステータス

---

## 賞品の引き換え

### 自動（バウチャーコード）

バウチャー種類の賞品の場合：

1. プレイヤーが当選
2. コードが自動的に割り当て
3. 画面にコードを表示
4. 任意でプレイヤーにメール送信
5. システムで受取済みとしてマーク

### 手動（アイテム賞品）

アイテム種類の賞品の場合：

1. プレイヤーが当選
2. 賞品名/画像を表示
3. プレイヤーが受取フォームを記入
4. 通知を受信
5. 手動で賞品を発送

---

## ベストプラクティス

### 確率バランス

:::tip[プレイヤー体験]
「賞品なし」の結果が多すぎないようにしましょう。プレイヤーは小さな賞品でもリワードを感じるべきです。
:::
**推奨配分：**

- 高価値賞品：5-10%
- 中価値賞品：20-30%
- 低価値賞品：30-40%
- 賞品なし：20-30%

### ビジュアルの魅力

- 各賞品に魅力的な画像を使用
- 賞品が見える状態で賞品ホイール/カプセルを表示
- 当選を楽しく感じさせる

<video autoplay loop muted playsinline preload="none">
  <source src="/vdo/prize/example-upload-image-prize.mp4" type="video/mp4" />
</video>

### 明確なコミュニケーション

- 賞品の価値を明確に表示
- 引き換え手順を表示
- 利用規約を含める

### テスト

ローンチ前に：

1. ゲームを何度もテスト
2. すべての賞品スロットが当選可能か確認
3. バウチャーコードが正しく表示されるか確認
4. 受取/メールフローをテスト

---

## トラブルシューティング

### プレイヤーが当選したがコードが表示されない

1. バウチャーセットに利用可能なコードがあるか確認
2. 賞品とバウチャーセットのリンクを確認
3. ブラウザコンソールでJavaScriptエラーを確認

### 確率がおかしい

- 合計が100%であることを確認
- より多くのテストを実行（少ないサンプルでは偏って見えることがある）
- 賞品が枯渇していないか確認（配分に影響）

### ゲームに賞品が表示されない

1. 賞品がアクティブ（無効化されていない）であることを確認
2. **残り**が0でないか、**本日の残り**が0でないか確認（1日の上限を設定している場合）
3. ゲームが公開済み（下書きでない）であることを確認

## 次のステップ

- 賞品用の[バウチャーを設定](/ja/rewards/vouchers)
- ゲームの[共有](/ja/sharing/share)について学ぶ