# 自动采集

> 来源：https://help.gravity-engine.com/docs/client-sdk/unity/automatic-tracking
> 介绍 Gravity Engine Unity SDK 支持自动采集的基础事件、开启方式及相关配置。



## 1. 介绍 [#1-介绍]

引力引擎 Unity SDK 提供了自动采集功能，支持自动采集一些基础行为事件，根据不同平台支持不同的事件采集。

**微信小游戏：**

* `启动（$MPLaunch）`：用户一次使用只会触发一次
* `展示（$MPShow）`：包括启动之后首次展示与后台调回前台
* `进入后台（$MPhide）`：并记录本次访问（展示至进入后台）的时间
* `场景加载（$SceneLoaded）`：记录游戏场景的加载
* `场景卸载（$SceneUnloaded）`：记录游戏场景的卸载

**抖音小游戏：**

* `启动（$MPLaunch）`：用户一次使用只会触发一次
* `展示（$MPShow）`：包括启动之后首次展示与后台调回前台
* `进入后台（$MPhide）`：并记录本次访问（展示至进入后台）的时间
* `场景加载（$SceneLoaded）`：记录游戏场景的加载
* `场景卸载（$SceneUnloaded）`：记录游戏场景的卸载

**Android：**

* `安装事件（$AppInstall）`：记录 APP 被安装的行为
* `启动事件（$AppStart）`：包括打开 APP 和从后台打开 APP
* `关闭事件（$AppEnd）`：包括关闭 APP 和 App 进入后台，同时收集启动的时长
* `浏览事件（$AppView）`：用户在 APP 中浏览页面（Activity）
* `点击事件（$AppClick）`：用户在 APP 中点击控件
* `崩溃事件（$AppCrash）`：APP 发生崩溃时记录崩溃信息

本文将会对微信小游戏和抖音小游戏支持的自采集事件做详细介绍，如您想了解 Android 平台的自采集事件，请参考[这里](/docs/client-sdk/android/advanced/automatic-tracking)。

## 2. 详细介绍 [#2-详细介绍]

### 2.1 启动事件 [#21-启动事件]

* 英文事件名：`$MPLaunch`
* 触发时机：首次打开或用户杀死进程再重新开启时触发，在进程的生命周期内只会触发一次。
* 自动采集属性：
  * `$scene`，场景值，取自微信提供的场景值
  * `$url_query`，页面参数

通过启动事件，您可以计算每天的用户使用次数、人均使用次数，包括以场景值做分组，查看不同场景值的用户的使用情况。

### 2.2 展示事件 [#22-展示事件]

* 英文事件名：`$MPShow`
* 触发时机：启动之后首次展示或后台调回前台时触发。
* 自动采集属性：
  * `$scene`，场景值，取自微信提供的场景值
  * `$url_query`，页面参数

展示事件由于会受到调出前后台的影响（条数较多），因此不太适合直接进行分析，但是可以在行为路径中标识用户的一次使用，可以作为用户行为路径的初始行为。

### 2.3 进入后台事件 [#23-进入后台事件]

* 英文事件名：`$MPHide`
* 触发时机：在进入后台时触发，并记录本次使用的时长。
* 自动采集属性：
  * `$scene`，场景值，取自微信提供的场景值
  * `$event_duration`，数值型，表示本次启动（`$MPShow`）到进入后台的持续时长，单位为秒

小程序隐藏事件会记录使用时长（单位为秒），因此可以直接计算用户使用总时长以及人均时长，也可以除以启动次数计算单次使用时长。

**设置前台会话阈值**：频繁切换前后台时，`$MPHide` 时间会很小，可以设置这个值忽略这种操作。当 `$MPHide` 发生时，事件少于设置的 time，会忽略计时。

```csharp
string accessToken = "x5emsWAxqnlwqpDH1j4bbicR8igmhruT";
string clientId = "default_placeholder";

GravityEngineAPI.Token token = new GravityEngineAPI.Token(accessToken, clientId, "xiaomi");

// 设置前台会话阈值（频繁切换前后台，AppEnd 时间会很小，可以设置这个值忽略这种操作）
// 当 AppEnd 发生时，事件少于设置的 time，会忽略计时
token.foregroundSessionThreshold = 10;
// 启动引力引擎
GravityEngineAPI.StartGravityEngine(token);
```

### 2.4 场景加载事件 [#24-场景加载事件]

* 英文事件名：`$SceneLoaded`
* 触发时机：游戏场景的加载时
* 自动采集属性：
  * `$scene_name`，场景名
  * `$scene_path`，页面路径，也就是转发时所在的页面路径

### 2.5 场景卸载事件 [#25-场景卸载事件]

* 英文事件名：`$SceneUnloaded`
* 触发时机：游戏场景的卸载时
* 自动采集属性：
  * `$scene_name`，场景名
  * `$scene_path`，页面路径，也就是转发时所在的页面路径
