跳到主要内容

自动采集

最近更新 2026/10/03

OpenHarmony SDK 支持包括安装、启动、关闭等在内事件的自动采集。

一、介绍​

AE 系统提供自动化收集数据的接口,您可根据业务需求自行选择需要自动收集的数据。

目前支持的自动采集事件类型有:

  1. 安装事件:记录 APP 被安装的行为
  2. 启动事件:包括打开 APP 和从后台打开APP
  3. 关闭事件:包括关闭 APP 和App进入后台
  4. 浏览事件:用户在 APP 中浏览页面(Ability)
  5. 点击事件:用户在 APP 中点击控件
  6. 崩溃事件:APP 发生崩溃时记录崩溃信息(native层的崩溃暂不支持)

接下来将会详细介绍每种数据的采集方法

二、开启自动采集​

您可以调用enableAutoTrack,打开自动采集功能:

//APP安装事件 TDAutoTrackEventType.APP_INSTALL
//APP启动事件 TDAutoTrackEventType.APP_START
//APP关闭事件 TDAutoTrackEventType.APP_END
//APP浏览页面事件 TDAutoTrackEventType.APP_VIEW_SCREEN
//APP点击控件事件 TDAutoTrackEventType.APP_CLICK
//APP崩溃事件 TDAutoTrackEventType.APP_CRASH
TDAnalytics.enableAutoTrack(context,TDAutoTrackEventType.APP_START | TDAutoTrackEventType.APP_INSTALL | TDAutoTrackEventType.APP_END | TDAutoTrackEventType.APP_VIEW_SCREEN | TDAutoTrackEventType.APP_CLICK | TDAutoTrackEventType.APP_CRASH)
备注

enableAutoTrack需要在主线程中调用,如果需要在work线程中初始化SDK,可参考下面的代码

const workerInstance = new worker.ThreadWorker("./workers/worker.ets");
TDAnalytics.enableAutoTrack(this.context,
TDAutoTrackEventType.APP_START | TDAutoTrackEventType.APP_INSTALL | TDAutoTrackEventType.APP_END |
TDAutoTrackEventType.APP_VIEW_SCREEN | TDAutoTrackEventType.APP_CRASH |
TDAutoTrackEventType.APP_CLICK,
(command: string, params: Object, appId?: string) => {
//这里会将需要触发的自动采集事件回调出来,需要将消息发送到work线程去处理
workerInstance.postMessage({
type: command,
params: params
})
})
const workerPort = worker.workerPort;

workerPort.onmessage = (d: MessageEvents): void => {
if (d.data.type === 'track') {
TDAnalytics.track(d.data.params);
} else if (d.data.type === 'timeEvent') {
TDAnalytics.timeEvent(d.data.params);
} else if (d.data.type === 'flush') {
TDAnalytics.flush()
}
}

三、详细介绍​

3.1 安装事件​

APP 安装事件将会记录 APP 的实际安装,在 APP 启动时上报,事件触发时间是 APP 安装后首次启动的时间,APP 升级并不会触发安装事件,而删除重装后会上报安装事件。

  • 事件名:ta_app_install

3.2 启动事件​

APP 启动事件将会在用户开启 APP,或从后台唤醒 APP 时触发,详细的事件介绍如下:

  • 事件名:ta_app_start
  • 预置属性:#resume_from_background,布尔型,表示 APP 是用户开启还是从后台唤醒,取值为 true 表示从后台唤醒,false 为直接开启。
  • 通过ApplicationStateChangeCallback中的onApplicationForeground回调来触发

3.3 关闭事件​

APP 关闭事件将会在用户关闭 APP,或将 APP 调至后台时触发,详细的事件介绍如下:

  • 事件名:ta_app_end
  • 预置属性:#duration,数值型,表示该次 APP 访问(自启动至结束)的时长,单位是秒。
  • 通过ApplicationStateChangeCallback中的onApplicationBackground回调来触发

3.4 浏览页面事件​

APP 浏览页面事件会在用户浏览页面(Ability)时触发,详细的事件介绍如下:

  • 事件名:ta_app_view
  • 预置属性:

#screen_name,字符串型,为Ability的简单类名

  • 自定义页面数据

    • router切换
    router.pushUrl({
    url: 'pages/PageOne', params: {
    'ta_data_tag': {
    'key1': 'value1',
    'key2': 234,
    'ignore': true
    }
    }
    })
    //ta_data_tag 为自定义参数
    //ignore为true 是忽略该页面的浏览事件
    • navigation切换
    interface UserLoginParam {
    // 业务自定义参数
    customParams?: string
    //目标页面的浏览事件追加的自定义参数
    ta_data_tag?: ThinkingDataPageParams
    }

    interface ThinkingDataPageParams {
    key1: string
    key2: number,
    ignore?:boolean
    }

    let paramData: UserLoginParam = { customParams: 'AAA', ta_data_tag: { key1: 'xxx', key2: 18,ignore:true } }
    this.navPathStack.pushPath({
    name: 'NavDestinationTitle' + item,
    param: paramData
    });

    //ta_data_tag 为自定义参数
    //ignore为true 是忽略该页面的浏览事件

3.5 点击事件​

APP 控件点击事件将会在用户点击控件(view)时触发

  • 事件名:ta_app_click

  • 预置属性:

    #screen_name,字符串型,为控件所属Activity的包名.类名

    #element_type,字符串型,为控件的类型

    #element_id,字符串型,为控件的 ID

  • 自定义参数

Button("Button", { type: ButtonType.Normal, stateEffect: true })
.width('30%')
.customProperty("ta_data_tag", {
'key1': 10,
'key2': 'this is a string',
'ignore':false
})
.onClick(() => {

})
//ta_data_tag 为自定义参数
//ignore为true 是忽略该元素的点击事件

3.6 崩溃事件​

当 APP 出现未捕获异常时,会上报 APP 崩溃事件

  • 事件名:ta_app_crash
  • 预置属性:#app_crashed_reason,字符型,记录崩溃时的堆栈轨迹
  • 通过ErrorObserver的onUnhandledException来监听,暂不支持native的崩溃采集。
这篇文档对你有帮助吗?