# サポートされている UGS イベント

> Learn about the events emitted by Unity Gaming Services that you can use to trigger Cloud Code scripts or modules.

Unity Gaming Services は、プレイヤーのアクティビティとゲームの状態に関する情報を提供できるイベントを発行します。これらのイベントを使用して、対応するイベントタイプでトリガー設定を作成することにより、Cloud Code スクリプトまたはモジュールをトリガーします。

イベントがトリガー設定にどのように対応するかを確認するには、[トリガー構造](../tutorials/define-triggers/trigger-structure) を参照してください。

> **Note:**
>
> **ノート:** このページでは、UGS から発行されたイベントについて説明します。Scheduler サービスは、Cloud Code スクリプトまたはモジュールをトリガーするために使用できるイベントも発行します。スケジュール設定の作成方法のガイドラインは、[イベントのスケジュール](../tutorials/schedule-events/rest-api) を参照してください。

Unity Gaming Services によって発行されるイベントのリストについては、以下の表を参照してください。

| サービス                 | イベント名                        | 発行されるタイミング                                                                               |
| -------------------- | ---------------------------- | ---------------------------------------------------------------------------------------- |
| 認証                   | [サインアップ](#signed-up)         | プレイヤーが Authentication サービス にサインアップしたとき。作成されたプレイヤーもサインインし、[サインイン](#signed-in) イベントを発行します。 |
| 認証                   | [サインイン](#signed-in)          | プレイヤーが Authentication サービスにサインインするか、トークンをリフレッシュしたとき。                                     |
| Leaderboards         | [リセット](#reset)               | リーダーボードをリセットしたとき。                                                                        |
| Leaderboards         | [スコア送信](#score-submitted)    | プレイヤーがスコアをリーダーボードに送信したとき。                                                                |
| Cloud Save           | [キー保存](#key-saved)           | プレイヤーまたはエンティティの Cloud Save キーが保存されたとき。                                                   |
| Moderation (モデレーション) | [プレイヤーアクション](#player-action) | プレイヤーアクションは審査されます。                                                                       |

## 認証##authentication

[Authentication サービス](/authentication.md) は、新規プレイヤーのエンゲージメントの促進、サインインボーナスの提供、および戻ってきたプレイヤーへの報酬の授与に役立つイベントを提供します。

Unity Runtime からプレイヤーを認証している場合、プレイヤー認証フローが完了する前にイベントが発生します。

### サインアップ##signed-up

サインアップイベントは、プレイヤーが Authentication サービスで作成されたときに発行されます。作成されたプレイヤーもサインインし、[サインイン](#signed-in) イベントを発行します。

イベントタイプ: `com.unity.services.player-auth.signed-up.v1`

イベントのペイロードについては、以下の表を参照してください。

| フィールド        | 説明                                                           | 型      |
| ------------ | ------------------------------------------------------------ | ------ |
| `playerId`   | さまざまなデバイスや外部プロバイダーで、戻ってきたプレイヤーおよび新規プレイヤーを識別するために使用される英数字文字列。 | string |
| `providerId` | サインインに使用されたプロバイダー。                                           | string |
| `createdAt`  | プレイヤーアカウントが作成されたときのタイムスタンプ (RFC3339 形式)。                     | string |

イベントで `playerId` を使用して [プレイヤーエンドポイントの取得](https://services.docs.unity.com/player-auth/v1/#tag/Player-authentication/operation/getplayer) を呼び出すことで完全なプレイヤー情報を取得します。

[ユースケースサンプル: 新規にサインアップしたプレイヤーのデフォルト設定値での初期化](../tutorials/use-cases/initialize-new-players) に示されている、このイベントの使用方法の例を参照してください。

### サインイン##signed-in

サインインイベントは、プレイヤーが Authentication サービスにサインインするか、トークンをリフレッシュしたときに発行されます。

イベントタイプ: `com.unity.services.player-auth.signed-in.v1`

イベントのペイロードについては、以下の表を参照してください。

| フィールド             | 説明                                                           | 型      |
| ----------------- | ------------------------------------------------------------ | ------ |
| `playerId`        | さまざまなデバイスや外部プロバイダーで、戻ってきたプレイヤーおよび新規プレイヤーを識別するために使用される英数字文字列。 | string |
| `providerId`      | サインインに使用されたプロバイダー。                                           | string |
| `createdAt`       | プレイヤーアカウントが作成されたときのタイムスタンプ (RFC3339 形式)。                     | string |
| `lastLoginAt`     | プレイヤーが最後にサインインしたときのタイムスタンプ (RFC3339 形式)。                     | string |
| `previousLoginAt` | プレイヤーが前回サインインした日付のタイムスタンプ (RFC3339 形式)。                      | string |

イベントで `playerId` を使用して [プレイヤーエンドポイントの取得](https://services.docs.unity.com/player-auth/v1/#tag/Player-authentication/operation/getplayer) を呼び出すことで完全なプレイヤー情報を取得します。

## Leaderboards##leaderboards

[Leaderboard サービス](/leaderboards.md) は、エンゲージメントの推進に役立つイベントを提供します。

### リセット##reset

リセットイベントは、リーダーボードがリセットされたときに発行されます。

イベントタイプ: `com.unity.services.leaderboards.reset.v1`

イベントのペイロードについては、以下の表を参照してください。

| フィールド                  | 説明               | 型      |
| ---------------------- | ---------------- | ------ |
| `leaderboardId`        | リーダーボード ID。      | string |
| `leaderboardVersionId` | リーダーボードバージョン ID。 | string |

このイベントを使用して、リーダーボードの上位プレイヤーに報酬を与えたり、プレイヤーを別のティアにプロモートおよびデモートしたりできます。

[ユースケースサンプル: シーズンの終わりにゲーム内通貨で上位プレイヤーに報酬を与える](../tutorials/use-cases/reward-top-players) に示されている、このイベントの使用方法の例を参照してください。

### スコア送信##score-submitted

Leaderboards サービスは、プレイヤーがスコアをリーダーボードに送信したときにスコア送信イベントを発行します。

イベントタイプ: `com.unity.services.leaderboards.score-submitted.v1`

イベントのペイロードについては、以下の表を参照してください。

| フィールド           | 説明                                | 型      |
| --------------- | --------------------------------- | ------ |
| `leaderboardId` | スコアが送信されるリーダーボード ID。              | string |
| `updatedTime`   | スコア送信のタイムスタンプ (RFC3339 形式)。       | string |
| `playerId`      | プレイヤー ID。                         | string |
| `playerName`    | プレイヤー名。                           | string |
| `rank`          | プレイヤーのランク。                        | int    |
| `score`         | 送信されたスコア。                         | double |
| `tier`          | プレイヤーのティア。階層化されていないリーダーボードの空の文字列。 | string |
| `bucketId`      | バケット ID。バケット化されていないリーダーボードの空の文字列。 | string |

このイベントを使用してエンゲージメントを推進できます。例えば、プレイヤーがリーダーボードで優れたパフォーマンスを達成したときに通知したり、特定のランクに達したプレイヤーに報酬を与えたりできます。

[ユースケースサンプル: スコアが破られたプレイヤーにプッシュメッセージを送信する](../tutorials/use-cases/higher-score-message) に示されている、このイベントの使用方法の例を参照してください。

## Cloud Save##cloud-save

[Cloud Save](/cloud-save.md) サービスは、アイテムが更新されたときにプレイヤーに通知することでエンゲージメントを推進するのに役立つイベントを送信します。

### キー保存##key-saved

キー保存イベントは、プレイヤーのアイテムまたは Cloud Save のエンティティが保存されたときに発行されます。

イベントタイプ: `com.unity.services.cloud-save.key-saved.v1`

イベントのペイロードについては、以下の表を参照してください。

| フィールド           | 説明                                                                | 型      |
| --------------- | ----------------------------------------------------------------- | ------ |
| `id`            | イベントに関連付けられているプレイヤーまたはエンティティの ID。`idType` に対応します。                 | string |
| `idType`        | アイテムセット ID タイプ (`custom` または `player`)。                           | string |
| `key`           | Cloud Save アイテムのキー。                                               | string |
| `valueIncluded` | Cloud Save アイテムの値がイベントに含まれるかどうか。サイズが 128b 未満の値のみが返されます。           | bool   |
| `value`         | Cloud Save アイテムの値。サイズが 128b 未満の値のみが返されます。                         | object |
| `writeLock`     | Cloud Save アイテムの書き込みロック。                                          | string |
| `accessClass`   | アイテムのアクセスクラス。これは `default`、`public`、`private` または `protected` です。 | string |
| `modifiedDate`  | アイテムの変更日 (RFC3339 形式)。                                            | string |

このイベントを使用して、アイテムが更新されたときにプレイヤーに通知することでエンゲージメントを推進できます。

## Moderation (モデレーション)##moderation

[Moderation サービス](/safe-text/overview.md) には、プレイヤーの行動を管理するのに役立つイベントが用意されています。Moderation サービスを通じてプレイヤーアクションが審査されるときに実行するカスタムアクションを Cloud Code で定義できます。例えば、Cloud Code でカスタムアクションを定義して、イベントが発生したときに特定のゲームモードからプレイヤーをバンできます。

> **Note:**
>
> **ノート:** Moderation タイプの Cloud Code スクリプトを使用すると、ワークフローで [カスタムアクションを管理](/safe-text/custom-actions.md) し、使用を準備するためのテンプレートを提供できます。デフォルトでは、これらのスクリプトをゲームクライアントから実行することはできません。詳細については、[スクリプトタイプ](/cloud-code/scripts/how-to-guides/script-types.md) を参照してください。

### プレイヤーアクション##player-action

プレイヤーアクションイベントは、プレイヤーのアクションが審査されるときに発行されます。

イベントタイプ: `com.unity.services.moderation.player-action-event.v1`。

イベントのペイロードについては、以下の表を参照してください。

| フィールド               | 説明                                                                                     | 型               |
| ------------------- | -------------------------------------------------------------------------------------- | --------------- |
| `playerActionId`    | イベントに関連するプレイヤーアクションの UUID。                                                             | string          |
| `incidentId`        | このプレイヤーアクションが適用されたモデレーションインシデントの UUID。                                                 | string          |
| `eventType`         | アクションに関連付けられているイベントのタイプ。値は、プレイヤーアクションが適用されている場合は `apply`、取り消されている場合は `revoke` になります。   | string          |
| `actionName`        | 適用されているプレイヤーアクションの種類の識別子。                                                              | string          |
| `actionDisplayName` | 適用されているプレイヤーアクションの種類の表示名。                                                              | string          |
| `actionReason`      | プレイヤーアクションが適用または取り消される理由。                                                              | string          |
| `actionComment`     | モデレーターがアクションを適用または取り消す理由として提供したコメント。                                                   | string          |
| `moderatorName`     | このプレイヤーアクションを担当するモデレーター。                                                               | string          |
| `playerUasId`       | 影響を受けるプレイヤーの uas ID。                                                                   | string          |
| `playerName`        | 影響を受けるプレイヤーのユーザー名。プレイヤー名を取得できない場合、この値には `playerUasId` と同じ値が入力されます。                     | string          |
| `oneTimeAction`     | このプレイヤーアクションが 1 回限りのアクションであるかどうかを定義します。                                                | bool            |
| `createdAt`         | プレイヤーアクションが作成されたときのタイムスタンプ (RFC3339 形式)。                                               | string          |
| `expiresAt`         | プレイヤーアクションが失効するときのタイムスタンプ (RFC3339 形式)。プレイヤーアクションが永続的または 1 回限りのアクションである場合は null になります。 | string または null |
| `deactivatedAt`     | プレイヤーアクションが取り消されたときのタイムスタンプ (RFC3339 形式)。プレイヤーアクションが取り消されていない場合は null になります。           | string または null |
| `externalIds`       | プレイヤーの外部 ID のマップ。キーはプロバイダー ID で、値は外部 ID です。                                            | object          |
