鸿蒙应用开发--数据埋点的名称由来,发展脉络,典型场景,现代演进的无埋点和智能化埋点//学习时长数据埋点的实现--待更新
鸿蒙应用开发--数据埋点的名称由来,发展脉络,典型场景,现代演进的无埋点和智能化埋点//学习时长数据埋点的实现--待更新
数据埋点名称的由来可以从其功能和应用场景的形象化表达来理解:
1. 术语起源
-
“埋”的隐喻
取自 “埋藏标记” 的概念,类似于地质勘探中在地表埋设标记点以记录信息。在软件开发中,指在代码逻辑中“埋藏”数据采集点,用于记录用户行为或系统状态。 -
“点”的含义
代表 关键事件节点(如按钮点击、页面跳转、接口调用),这些节点需要被标记以收集特定数据。
2. 发展脉络
阶段 | 技术特征 | 术语演变 |
---|---|---|
早期调试 | 开发者在代码中插入log 语句(如console.log ),用于调试程序逻辑 | 称为 “打日志” |
数据分析需求 | 针对用户行为(点击、曝光、停留)添加专用数据记录代码 | 开始称为 “埋点” |
自动化工具兴起 | 无侵入式埋点(可视化埋点、全埋点)无需手动编码 | 沿用“埋点”概念,但实现方式升级 |
3. 中西术语对比
中文术语 | 英文对应概念 | 核心差异 |
---|---|---|
数据埋点 | Event Tracking / Instrumentation | 中文更强调“隐蔽性”和“定点性”,英文更侧重技术实现 |
埋点工程师 | Data Engineer (Analytics) | 中文岗位名称直接体现核心工作内容 |
4. 命名合理性分析
-
功能性隐喻
如同在用户行为路径上“埋下传感器”,触达关键节点即触发数据采集。 -
技术特征契合
传统埋点需 侵入代码(如同埋入土壤),虽必要但应尽量隐蔽;现代无埋点技术则更像“地表监测设备”。 -
行业传承
从传统软件开发的“打日志”延伸而来,但更聚焦于 业务分析 而非单纯调试。
5. 典型场景示例
埋点名称 | 含义 | 命名逻辑 |
---|---|---|
home_page_click | 首页点击事件 | [页面][区域][动作] |
payment_success | 支付成功事件 | [业务流程]_[状态] |
video_play_duration | 视频播放时长 | [功能][行为][指标类型] |
6. 现代演进
-
无埋点(Auto Tracking)
通过全局监听自动采集数据,但业界仍沿用“埋点”一词,因其核心目标未变(标记关键数据节点)。 -
智能化埋点
AI自动识别高价值事件节点,实现“动态埋点”,本质仍是选择性地“埋”。
总结
“数据埋点”这一名称融合了 技术逻辑(代码植入)与 业务需求(精准标记),既体现其实现方式(像埋藏标记一样在代码中插入采集逻辑),又强调了数据采集的 针对性(聚焦关键节点)。其名称的持续使用,反映了数据采集从“手动标记”到“智能感知”的技术演进中,对核心目标的一致追求。
定义自定义类TrackingService
管理页面埋点访问数据
import { HdHttp } from './request';
import { promptAction } from '@kit.ArkUI';
export interface iTimeList {
/**
* 结束时间(毫秒)
*/
endTime: number;
/**
* 试题id
*/
questionId: string;
/**
* 开始时间(毫秒)
*/
startTime: number;
}
class TrackingService {
// 1. 准备一个iTimeList类型的数据
timeItem: iTimeList = {
questionId: '0',
startTime: 0,
endTime: 0
}
// 2. 设置当前题目id
setQuestionId(id: string) {
this.timeItem.questionId = id
}
// 3. 设置开始时间
setStartTime(time: number) {
this.timeItem.startTime = time
}
// 4. 设置结束时间
setEndTime(time: number) {
this.timeItem.endTime = time
}
// 5. 上报iTimeList对象给服务器
async saveData() {
// 上报给服务器
await HdHttp.Post<string>('hm/time/tracking', new Object({
timeList: [this.timeItem]
}))
promptAction.showToast({ message: '埋点数据上报完毕' })
}
}
// 导出类的对象实例
export const trackingService = new TrackingService()
页面植入数据埋点
在进入页面和离开页面的时候执行TrackingService的实例对象的埋点函数
,代码如下