# Braze コネクション

Brazeコネクションを使用すると、[/users/track](https://www.braze.com/docs/api/endpoints/user_data/post_user_track/)
APIを通じてプレイヤーデータをBrazeに直接プッシュできます。各トリガーイベントは**ユーザー属性**と**カスタムイベント**の両方をBrazeに送信するため、ゲームアクティビティに基づいてセグメントの構築、キャンペーンのトリガー、Canvasフローのオーケストレーションが可能です。

---

## 前提条件

| 要件                   | 確認場所                                                                            |
| :--------------------- | :---------------------------------------------------------------------------------- |
| **Braze REST APIキー** | Brazeダッシュボード → **設定** → **APIキー**（`users.track`権限が必要）             |
| **RESTエンドポイント** | Brazeダッシュボード → **設定** → **APIキー**（例：`https://rest.iad-01.braze.com`） |

---

## セットアップ

1. メインナビゲーションから**コネクション**へ移動
2. **コネクションを追加**をクリックし、**Braze**を選択
3. **APIキー**と**RESTエンドポイント**を入力
4. コネクションを保存
5. ストリームにリンクし、トリガーイベントを選択

---

## ユーザー識別

DailyPlayは、プレイヤーがストリームにアクセスする際にURLパラメータを通じてBrazeのユーザーを識別します。Brazeは2種類の識別子をサポートしています：

| URLパラメータ | Braze APIフィールド | 説明                                        |
| :------------ | :------------------ | :------------------------------------------ |
| `braze_id`    | `braze_id`          | Brazeの内部ユーザー識別子                   |
| `external_id` | `external_id`       | BrazeにマッピングされたシステムのユーザーID |
| `user_id`     | `external_id`       | エイリアス — `external_id`と同様に扱われる  |

DailyPlayは優先順位に従って識別子を確認します：`braze_id` → `external_id` →
`user_id`。URLパラメータにいずれも存在しない場合、プレイヤーのDailyPlay
`player_uuid`が`external_id`として使用されます。

### ストリームURLの例

```
https://app.dailyplay.ai/stream/my-org/my-stream?external_id=usr_123
```

---

## Brazeに送信される属性

各トリガーイベントは、以下のカスタム属性でBrazeのユーザープロファイルを更新します：

### トップレベル属性

| 属性          | 型     | 説明                                                          |
| :------------ | :----- | :------------------------------------------------------------ |
| `country`     | string | プレイヤーの国コード（自動検出）                              |
| `device_type` | string | プレイヤーが使用したデバイスタイプ（例：`mobile`、`desktop`） |

### ネストされた `dailyplay` オブジェクト

DailyPlay固有のすべての属性は、ユーザープロファイルの`dailyplay`オブジェクトの下にグループ化されます：

| 属性                             | 型     | 説明                                                                                        |
| :------------------------------- | :----- | :------------------------------------------------------------------------------------------ |
| `dailyplay.last_game_id`         | string | 最後にプレイしたゲームのID                                                                  |
| `dailyplay.last_stream_name`     | string | ゲームが属するストリーム名                                                                  |
| `dailyplay.last_stream_slug`     | string | ストリームのURLスラッグ                                                                     |
| `dailyplay.last_play_date`       | string | 最後のインタラクションのISO 8601タイムスタンプ                                              |
| `dailyplay.stream_<stream_slug>` | string | このストリームで記録されたイベントタイプ（例：`play_complete`）— ファネルトラッキングに便利 |
| `dailyplay.last_game_score`      | number | プレイヤーのスコア（`play_complete`イベントのみ）                                           |
| `dailyplay.last_play_duration`   | number | プレイ時間（秒）（`play_complete`イベントのみ）                                             |

:::tip
`dailyplay.stream_<stream_slug>`属性は、ストリームごとの最新のイベントタイプを保存します。Brazeでジャーニーベースのセグメントを構築するために使用できます。例えば、`dailyplay.stream_welcome_stream`が`play_complete`であるユーザーをターゲットにできます。:::

---

## Brazeに送信されるカスタムイベント

各トリガーは`dailyplay_<event_type>`の命名パターンでBrazeにカスタムイベントを発火します：

| イベント名                   | 発火タイミング                               |
| :--------------------------- | :------------------------------------------- |
| `dailyplay_stream_access`    | プレイヤーがストリームページを開いたとき     |
| `dailyplay_play_start`       | プレイヤーがゲームを開始したとき             |
| `dailyplay_play_complete`    | プレイヤーがゲームを完了したとき             |
| `dailyplay_prize_redemption` | プレイヤーが賞品やバウチャーを受け取ったとき |

### イベントプロパティ

すべてのカスタムイベントには以下のプロパティが含まれます：

| プロパティ              | 型     | 説明                                        |
| :---------------------- | :----- | :------------------------------------------ |
| `game_id`               | string | ゲームのID                                  |
| `stream_id`             | number | ストリーム（キャンペーン）のID              |
| `stream_name`           | string | ストリームの表示名                          |
| `player_uuid`           | string | DailyPlayプレイヤー識別子                   |
| `score`                 | number | プレイヤーのスコア（`play_complete`のみ）   |
| `play_duration_seconds` | number | 完了までの時間（秒）（`play_complete`のみ） |
| `url_<param>`           | string | `url_`プレフィックス付きの追加URLパラメータ |

:::note識別パラメータ（`braze_id`、`external_id`、`user_id`）はユーザー識別に使用されるため、イベントプロパティからは除外されます。:::

---

## ペイロードの例

以下は、`play_complete`イベントでDailyPlayがBrazeに送信する完全な`/users/track`ペイロードです：

```json
{
  "attributes": [
    {
      "external_id": "usr_123",
      "country": "US",
      "device_type": "mobile",
      "dailyplay": {
        "last_game_id": "163",
        "last_stream_name": "Summer Campaign",
        "last_stream_slug": "summer-campaign",
        "last_play_date": "2026-04-09T14:30:00.000Z",
        "stream_summer-campaign": "play_complete",
        "last_game_score": 85,
        "last_play_duration": 32
      }
    }
  ],
  "events": [
    {
      "external_id": "usr_123",
      "name": "dailyplay_play_complete",
      "time": "2026-04-09T14:30:00.000Z",
      "properties": {
        "game_id": "163",
        "stream_id": 453,
        "stream_name": "Summer Campaign",
        "player_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "score": 85,
        "play_duration_seconds": 32,
        "url_source": "email_campaign"
      }
    }
  ]
}
```

---

## Brazeでの活用例

- **トリガーキャンペーン** — `dailyplay_play_complete`発火時にフォローアップメッセージを送信
- **セグメンテーション** —
  `dailyplay.last_game_score`や`dailyplay.stream_<slug>`属性に基づくセグメント構築
- **Canvasフロー**
  — ゲームイベントをマルチステップジャーニーのエントリートリガーや判断分岐として使用
- **リエンゲージメント** —
  `dailyplay_play_start`をトリガーしたが`dailyplay_play_complete`をトリガーしていないユーザーをターゲット