integrationlatest接入文档 / 自动采集
自动采集
OpenHarmony SDK 支持包括安装、启动、关闭等在内事件的自动采集。
一、介绍
AE 系统提供自动化收集数据的接口,您可根据业务需求自行选择需要自动收集的数据。
目前支持的自动采集事件类型有:
- 安装事件:记录 APP 被安装的行为
- 启动事件:包括打开 APP 和从后台打开APP
- 关闭事件:包括关闭 APP 和App进入后台
- 浏览事件:用户在 APP 中浏览页面(Ability)
- 点击事件:用户在 APP 中点击控件
- 崩溃事件: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: stringkey2: 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的崩溃采集。
这篇文档对你有帮助吗?

