自动采集

约 1721 字大约 6 分钟

一、 介绍

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

微信小游戏:

  • 启动($MPLaunch):用户一次使用只会触发一次
  • 展示($MPShow):包括启动之后首次展示与后台调回前台
  • 进入后台($MPhide):并记录本次访问(展示至进入后台)的时间
  • 页面展示($MPViewScreen):自动记录页面的路径以及前向路径
  • 转发分享($MPShare):自动记录转发时的页面
  • 场景加载($SceneLoaded):记录游戏场景的加载
  • 场景卸载($SceneUnloaded):记录游戏场景的卸载

抖音小游戏:

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

Android:

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

本文将会对微信小游戏和抖音小游戏支持的自采集事件做详细介绍,如您想了解 Android 平台的自采集事件,请参考这里

二、 开启自动采集

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

    public enum AUTO_TRACK_EVENTS
    {
        NONE = 0,
        APP_START = 1 << 0, // 当应用进入前台的时候触发上报,对应 $AppStart
        APP_END = 1 << 1, // 当应用进入后台的时候触发上报,对应 $AppEnd
        APP_CRASH = 1 << 4, // 当出现未捕获异常的时候触发上报,对应 $AppCrash
        APP_INSTALL = 1 << 5, // 应用安装后首次打开的时候触发上报,对应 $AppInstall
        APP_SCENE_LOAD = 1 << 6, // 当应用内加载场景的时候触发上报,对应 $SceneLoaded
        APP_SCENE_UNLOAD = 1 << 7, // 当应用内卸载场景的时候触发上报,对应 $SceneUnloaded
        APP_ALL = APP_START | APP_END | APP_INSTALL | APP_CRASH | APP_SCENE_LOAD | APP_SCENE_UNLOAD,
#if GRAVITY_WECHAT_GAME_MODE || GRAVITY_BYTEDANCE_GAME_MODE
        // 微信小游戏、抖音小游戏
        MP_SHOW = 1 << 8, // 当小游戏展示的时候触发上报,对应 $MPShow
        MP_HIDE = 1 << 9, // 当小游戏进入后台的时候触发上报,对应 $MPHide
        MP_SHARE = 1 << 10, // 当小游戏分享的时候触发上报,对应 $MPShare
        MP_ADD_TO_FAVORITES = 1 << 11, // 当小游戏添加收藏的时候触发上报,对应 $MPAddFavorites
        WECHAT_GAME_ALL = APP_SCENE_LOAD | APP_SCENE_UNLOAD | MP_SHOW | MP_HIDE | MP_SHARE | MP_ADD_TO_FAVORITES,
        BYTEDANCE_GAME_ALL = APP_SCENE_LOAD | APP_SCENE_UNLOAD | MP_SHOW | MP_HIDE
#endif
    }

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

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

// 开启展示和进入后台事件的自动采集
GravityEngineAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.MP_SHOW | AUTO_TRACK_EVENTS.MP_HIDE);

提示

为了更好的在引力引擎平台做后向数据分析,建议您使用我们预置好的组合:APP_ALLWECHAT_GAME_ALLBYTEDANCE_GAME_ALL

三、 详细介绍

3.1 启动事件

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

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

3.2 展示事件

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

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

3.3 进入后台事件

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

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

3.4 页面浏览事件

  • 英文事件名:$MPViewScreen
  • 触发时机:在页面被打开时,或从后台调回前台的页面展示时触发,会记录页面的路径以及访问的前向路径。
  • 自动采集属性:
    • $scene,场景值,取自微信提供的场景值
    • $url_query,页面参数

通过页面浏览事件,您可以计算每个页面的 pv、uv,以及用户访问小程序的使用路径。

3.5 页面转发分享事件

  • 英文事件名:$MPShare
  • 触发时机:在转发按钮被点击时触发(包括右上角导航栏的转发按钮,以及页面中的转发按钮)。
  • 自动采集属性:
    • $scene,场景值,取自微信提供的场景值
    • $share_method,分享途径
    • $share_depth,页面层级

页面转发分享事件,适合对页面的分享率进行分析,可以帮助您优化页面转发。

3.6 场景加载事件

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

3.7 场景卸载事件

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

四. 设置自动采集事件回调

支持设置自动采集事件回调,以实时设置自定义属性,或在对应事件触发时机执行自定义代码。

设置自动采集事件回调,需要先新建类并实现 IAutoTrackEventCallback 接口,复写AutoTrackEventCallback 方法,该方法的返回值即是需要设置的动采集事件属性。

再调用 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.开启自动采集,并设置事件回调
GravityEngineAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.ALL, new AutoTrackECB());