目录
此内容是否有帮助?

# 自动采集

# 一、 开启自动采集事件

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

// 自动采集事件类型
[Flags]
public enum AUTO_TRACK_EVENTS
{
    NONE = 0,
    APP_START = 1 << 0,
    APP_END = 1 << 1,
    APP_CRASH = 1 << 4,
    APP_INSTALL = 1 << 5,
    ALL = APP_START | APP_END | APP_INSTALL | APP_CRASH
}

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

  • APP_START: 当游戏进入前台的时候会触发上报 ta_app_start, 预置属性 #resume_from_background 表示本次启动是否是重新启动。
  • APP_END: 当游戏进入后台的时候会触发上报 ta_app_end, 预置属性 #duration 字段表示此次游戏在前台的持续时长,单位为秒。
  • APP_CRASH: 当出现未捕获异常的时候会触发上报 ta_app_crash, 目前 Android 平台会处理虚拟机的未捕获异常。iOS 平台会处理 Unix 信号异常和 NSException 异常。
  • APP_INSTALL: 当应用首次安装后打开时触发上报 ta_app_install. 不区分是否是卸载重装。该时间只在安装后上报一次,后续更新不会再上报。

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

// 开启全部自动采集事件
ThinkingAnalyticsAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.ALL);

// 开启启动和关闭事件的自动采集
ThinkingAnalyticsAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.APP_START | AUTO_TRACK_EVENTS.APP_END);

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

关于 APP_CRASH 如果在 iOSAndroid 平台上只想采集 Objective-CJava 异常,不采集 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 开启自动采集的同时,传入需要采集的自定义属性。

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

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

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

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

// 设置指多个自动采集事件的自定义属性
ThinkingAnalyticsAPI.SetAutoTrackProperties(AUTO_TRACK_EVENTS.APP_INSTALL | AUTO_TRACK_EVENTS.APP_CRASH, new Dictionary<string, object>() 
{
    {"install_crash_key", "install_crash_value"}
});

// 开启全部自动采集事件
ThinkingAnalyticsAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.ALL);

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

从 v2.4.0 开始,支持设置自动采集事件回调,以实时设置自定义属性,或在对应事件触发时机执行自定义代码。设置自动采集事件回调,需要先新建类并实现 `IAutoTrackEventCallback` 接口,复写 `public Dictionary<string, object> AutoTrackEventCallback(int type, Dictionary<string, object>properties)` 方法,该方法的返回值即是需要设置的动采集事件属性。再调用 `EnableAutoTrack` 传入自动采集事件回调对象,如下:
// 1.自动采集事件回调实现
public class AutoTrackECB : IAutoTrackEventCallback
{
    public Dictionary<string, object> AutoTrackEventCallback(int type, Dictionary<string, object>properties)
    {
        return new Dictionary<string, object>() 
        {
            {"AutoTrackEventProperty", DateTime.Today}
        };
    }
}
// 2.开启自动采集,并设置事件回调
ThinkingAnalyticsAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.ALL, new AutoTrackECB());

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

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

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

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

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

#