什么是数据埋点?
埋点是在软件或应用程序的关键位置(如用户操作、事件触发、页面访问等)插入代码,以收集用户行为和应用程序性能数据的技术手段。
我们先了解时间埋点,比如,用户观看一段视频时中途退出不看了,为了方便用户体验,下次打开这段视频时应该从上次观看的位置接着播放,要实现这个就需要用到时间埋点。怎么实现呢?用户在打开视频时开始记录时间,关闭视频时生成一个埋点数据。把记录的数据通过接口发给后台,后台会统计视频观看进度。
埋点工具
我们需要封装一个埋点工具(方便复用和修改),记录单条埋点数据,上报埋点数据数组。
步骤:1.参考接口定义上报数据类型。2.封装埋点工具。3.使用埋点工具,完成记录和上报。
上报数据类型(根据后端接口写)比如:
export interface TimeItem {
Id: string
startTime: number
endTime: number
}
封装工具函数
import { TimeItem } from '../../models'
import { http } from './Http'
import { logger } from './Logger'
class Tracking {
list: TimeItem[] = []
record(startTime: number, endTime: number, Id: string) {
this.list.push({
startTime,
endTime,
Id
})
}
//推送埋点数据给后台(不同网络请求方法不同,根据封装的http发送请求)
async report() {
await http.request<null>({ url: 'time/tracking', method: 'post', data: { timeList: this.list } })
this.list = []
}
}
export const tracking = new Tracking()
视频页调用埋点工具
startTime: number = Date.now()
onPageShow(): void {
this.startTime = Date.now()
}
onPageHide(): void {
tracking.record(this.startTime, Date.now(), this.item.id)
tracking.report()
}