# Event Manager（事件管理器）

> Manage standard and custom events, view event health, and create event parameters in the Event Manager.

通过 Event Manager（事件管理器）可以查看已配置的事件，并可以创建自定义事件。事件可以跟踪特定的游戏内行为，例如 `newPlayer`（新安装游戏）和 `gameEnded`（关闭或退出游戏）。

## 什么是事件？

事件是游戏中发生的操作，例如在游戏运行过程中或者当玩家执行寻找宝藏或购买物品等活动时发生的操作。事件包含有关该事件的上下文信息，例如：获得的物品、玩家拥有的游戏币数量以及物品的获取方式。您可以根据您的游戏对这些进行自定义，并从中获取有用的信息。使用事件并借助 Data Explorer（数据资源管理器）和漏斗图可以衡量玩家的参与度、支出和转化率。

事件提供了玩家当时状态的快照，并给出了历史中的一个点，然后可以使用该点来构建玩家的行为。事件以描述玩家操作和状态的小型 JSON 文档格式发送。

事件有一个描述游戏中某个点的参数集合，例如：`MissionStarted` 和 `MissionCompleted` 具有参数 `missionID` 和 `missionName`，用于描述哪个任务已开始以及哪个任务已完成。

## 事件

标准事件是无需检测或开发者配置即可使用的事件。这些事件用于计算通过 Unity Analytics 提供的指标和 KPI。

当玩家执行关键操作时，会触发标准事件。您可以获取以下信息：玩家的参与度如何？游戏在哪些国家/地区的表现最好？哪些受众表现不佳？

可供使用的标准事件包括：

| 事件名称                 | 描述                                                                                                               | 触发类型                           |
| -------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| aquisitionSource     | 记录用户获取渠道的相关信息。此事件中应填充归因服务商 SDK 提供的信息。                                                                            | 需要手动触发                         |
| newPlayer            | 当新玩家在其设备上安装应用时发送此事件。                                                                                             | 自动                             |
| gameStarted          | 当游戏新会话开始时发送此事件。当用户首次启动应用时，将启动一个新会话。                                                                              | 自动                             |
| gameEnded            | 当玩家退出游戏时发送此事件。                                                                                                   | 自动                             |
| gameRunning          | 在应用运行期间定期发送此事件以检测会话活动。                                                                                           | 每 60 秒自动发送一次（如果自上次检查以来未发送其他事件） |
| clientDevice         | 记录用户首次启动应用的时间以及设备信息更改的时间。                                                                                        | 自动                             |
| ddnaForgetMe         | 记录玩家选择退出数据收集的时间。                                                                                                 | 自动                             |
| adImpression         | 可在玩家看到游戏中的广告时手动发送此事件。                                                                                            | 需要手动触发                         |
| transaction          | 当玩家进行应用内购并跟踪购买金额时发送此事件。交易验证可以通过 [Unity IAP](https://docs.unity3d.com/Manual/UnityIAPValidatingReceipts.html) 完成。 | 需要手动触发                         |
| transactionFailed    | 当玩家进行应用内购交易不成功时发送此事件。成功的交易由 transaction 事件跟踪。                                                                    | 需要手动触发                         |
| sdkStart             | 当 SDK 初始化时发送此事件。                                                                                                 | 自动                             |
| notificationOpened   | 当打开推送通知时或游戏运行期间收到通知时发送此事件。                                                                                       | 自动                             |
| notificationServices | 记录玩家的推送通知令牌。                                                                                                     | 自动                             |
| outOfGameSend        | 向玩家发送推送通知时发送此事件。                                                                                                 | 自动                             |
| userAssignment       | 自动将玩家分配到广告系列以用于报告。                                                                                               | 自动                             |

## 自定义事件

Unity Analytics 附带了标准事件，无需额外配置即可使用。但是，您可以通过下载 SDK 并在游戏中实现 SDK 来创建自定义事件。自定义事件的创建工作流程将在 Unity Dashboard（Unity 后台）中提供，并最终在 Unity 编辑器中也会提供。

> **Note:**
>
> 在 UGS Event Manager（事件管理器）中需要重新创建旧版 Unity Analytics 自定义事件，以便 UGS Analytics 接收这些事件发送的数据并认为这些数据有效。

您可以在 Unity Dashboard（Unity 后台）中查看事件，创建和编辑自定义事件，以及通过 Data Explorer（数据资源管理器）分析事件性能。

在以下情况下，Analytics 后端会将事件作为无效事件拒绝：

* 在用户设备上收集事件的时间戳比将事件摄入后端服务的时间戳**早** 30 天**以上**。
* 在用户设备上收集事件的时间戳比将事件摄入后端服务的时间戳**晚** 24 小时**以上**。

### 通过 Unity Dashboard（Unity 后台）创建自定义事件

1. 转到 **Event Manager（事件管理器）**，然后选择 **Add New（新增）**> **Custom Event（自定义事件）**，并指定其名称和描述。事件名称的第一个字符必须是字母。名称只能由英文字母数字和下划线字符组成。可以启用或禁用自定义事件，但不能删除。
2. 您可以在 Event Manager（事件管理器）创建窗口中分配参数。选择 **Assign Parameter（分配参数）**> \*\*Create New Parameter（创建新参数）\*\*以创建您自己的参数。参数需要名称、描述和数据类型。参数名称的第一个字符必须是字母。名称只能由英文字母数字和下划线字符组成。可以编辑参数，但不能删除。数据类型包括字符串、整数、浮点数和布尔值。最多可以向环境添加 1,500 个参数。
3. 确保您的事件设置为 **Enabled（已启用）**，并且后台中定义的架构与游戏代码中定义的架构匹配。
4. 还可以在 Event Manager（事件管理器）页面中创建参数。选择 **Add New（新增）**> **Custom Parameter（自定义参数）**，然后指定其名称、描述和类型。


**Frame:**
![](/api/media?file=/analytics/media/images/event-manager-parameter.png)

5. 还可以选择在创建事件时将事件复制到更多环境。选择 **Copy to Environment（复制到环境）**，然后从列表中选择环境。您可以一次选择多个环境。


**Frame:**
![](/api/media?file=/analytics/media/images/event-manager-event-create-on-event-copy.png)

6.\*\*注意：\*\*选中 \*\*Enable Event（启用事件）\*\*也会启用要复制到所选环境的事件。

### 将自定义事件复制到其他环境

您可以使用 Event Manager（事件管理器）将多个自定义事件复制到另一个环境。

\*\*注意：\*\*如果目标环境中已存在某个事件，则无法将该事件复制到其他环境。

1. 选择要复制的事件：


   **Frame:**
   ![](/api/media?file=/analytics/media/images/event-manager-events-list.png)
2. 选择 **Copy to Environment（复制到环境）**。
3. 选择要将事件复制到的一个或多个环境。


   **Frame:**
   ![](/api/media?file=/analytics/media/images/event-manager-event-copy-drawer.png)
4. （可选）选择是否在创建时启用复制的事件。
5. 选择 \*\*Confirm（确认）\*\*以执行复制操作。
6. 您将收到确认每个事件复制操作的结果的通知：


   **Frame:**
   ![](/api/media?file=/analytics/media/images/event-manager-event-copy-notifications.png)

### 通过 Data Explorer（数据资源管理器）查看和分析标准事件或自定义事件

使用 Data Explorer（数据资源管理器）可以在图表和表格中显示一段时间内的标准数据或自定义数据。您可以选择关联的参数，并应用维度和参数过滤器。标准过滤器包括位置、平台、版本和受众。

还可以按自定义事件的可用参数过滤自定义事件。参数是可选的，但具有唯一性的用户始终存在，以便表示在特定日期触发该事件的唯一用户数。参数的类型可以是字符串、整数、浮点数和布尔值。


**Frame:**
![与事件关联的参数列表。](/api/media?file=/analytics/media/images/parameters.png)

通过对可用参数进行分组可以深入了解游戏的表现。您可以了解最受欢迎的关卡以及大多数玩家偏好的游戏难度等信息。
