跳到主要内容

自动采集

最近更新 2026/10/03

一、 开启自动采集事件​

提示

Harmony平台该功能暂时关闭

您可以通过调用 EnableAutoTrack 传入 TDAutoTrackEventType 来开启指定事件的自动采集功能。

public enum TDAutoTrackEventType
{
None = 0,
AppStart = 1 << 0,
AppEnd = 1 << 1,
AppCrash = 1 << 4,
AppInstall = 1 << 5,
AppSceneLoad = 1 << 6,
AppSceneUnload = 1 << 7,
All = AppStart | AppEnd | AppInstall | AppCrash | AppSceneLoad | AppSceneUnload
}

对于自动采集事件的说明如下:

  • AppStart: 当游戏进入前台的时候会触发上报 ta_app_start, 预置属性 #resume_from_background 表示本次启动是否是重新启动。
提示

注:微信小游戏的AppStart事件变为show事件,事件名为: ta_mg_show,增加属性start_reason

  • AppEnd: 当游戏进入后台的时候会触发上报 ta_app_end, 预置属性 #duration 字段表示此次游戏在前台的持续时长,单位为秒。
提示

注:微信小游戏的AppEnd事件变为hide事件,事件名为: ta_mg_hide

  • AppCrash: 当出现未捕获异常的时候会触发上报 ta_app_crash, 目前 Android 平台会处理虚拟机的未捕获异常。iOS 平台会处理 Unix 信号异常和 NSException 异常。
  • AppInstall: 当应用首次安装后打开时触发上报 ta_app_install. 不区分是否是卸载重装。该事件只在安装后上报一次,后续更新不会再上报。
提示

注:微信小游戏的AppInstall事件变为launch事件,事件名为: ta_mg_launch,增加属性start_reason

  • AppSceneLoad: 当游戏场景(Scene)加载的时候触发上报 ta_scene_loaded
  • AppSceneUnload: 当游戏场景(Scene)卸载的时候触发上报 ta_scene_unloaded

您可以通过传入 TDAutoTrackEventType.All 来开启目前支持的所有自动采集事件,也可以根据您项目的需求开启部分自动采集事件。

// 开启全部自动采集事件
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.All);

// 开启启动和关闭事件的自动采集
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppStart | TDAutoTrackEventType.AppEnd);

注意:如果您需要设置自定义访客 ID,或者公共事件属性,需要在打开自动采集事件之前完成。自动采集事件目前不支持动态公共属性。

关于 AppCrash 如果在 iOS 和 Android 平台上只想采集 Objective-C 和 Java 异常,不采集 C# 异常,在 v2.3.1 及以上版本,可以通过在 Resources 目录添加 ta_public_config.xml 来配置开关,如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- ThinkingAnalytics disable C# Exception -->
<bool name="DisableCSharpException">true</bool>
</resources>

二、 设置自动采集事件的自定义属性​

自 v2.2.4 开始,您可以通过调用 EnableAutoTrack 开启自动采集的同时,传入需要采集的自定义属性。

// 开启自动采集事件,并设置自定义属性
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.All, new Dictionary<string, object>() {
{"custom_key", "custom_value"}
});

也可以调用 SetAutoTrackProperties 来指定特定自动采集事件的自定义属性。

注意:SetAutoTrackProperties 不会开启自动采集事件的采集,需要配合 EnableAutoTrack 方法使用。

// 设置单个自动采集事件的自定义属性
TDAnalytics.SetAutoTrackProperties(TDAutoTrackEventType.AppStart, new Dictionary<string, object>()
{
{"start_key", "start_value"}
});

// 设置多个自动采集事件的自定义属性
TDAnalytics.SetAutoTrackProperties(TDAutoTrackEventType.AppInstall | TDAutoTrackEventType.AppStart, new Dictionary<string, object>()
{
{"install_crash_key", "install_crash_value"}
});

// 开启全部自动采集事件
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.All);

三、 设置自动采集事件回调​

从 v2.4.0 开始,支持设置自动采集事件回调,以实时设置自定义属性,或在对应事件触发时机执行自定义代码。设置自动采集事件回调,需要先新建类并实现 TDAutoTrackEventHandler 接口,复写 public Dictionary<string, object> GetAutoTrackEventProperties(int type, Dictionary<string, object>properties) 方法,该方法的返回值即是需要设置的自动采集事件属性。再调用 EnableAutoTrack 传入自动采集事件回调对象,如下:

// 1.自动采集事件回调实现
public class AutoTrackECB : TDAutoTrackEventHandler
{
public Dictionary<string, object> GetAutoTrackEventProperties(int type, Dictionary<string, object>properties)
{
return new Dictionary<string, object>()
{
{"AutoTrackEventProperty", DateTime.Today}
};
}
}
// 2.开启自动采集,并设置事件回调
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.All, new AutoTrackECB());

四、 开启场景自动采集事件​

从 v2.4.1 开始,支持自动采集场景的加载和卸载事件。

通过注册场景加载、卸载的委托事件,来开启场景的自动采集事件。

建议在 MonoBehaviour 脚本的 OnEnable 方法中调用。

private void OnEnable()
{
// 监听场景加载、卸载事件
SceneManager.sceneLoaded += TDAnalytics.OnSceneLoaded;
SceneManager.sceneUnloaded += TDAnalytics.OnSceneUnloaded;
}

从 v2.5.1 开始,可以通过调用 EnableAutoTrack 方法开启场景自动采集事件

// 开启全部自动采集事件
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.All);

// 开启场景加载和卸载事件的自动采集
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppSceneLoad | TDAutoTrackEventType.AppSceneUnload);
这篇文档对你有帮助吗?