鸿蒙中的数据埋点


一、数据埋点

数据埋点是一种在软件应用中收集用户行为数据的技术手段。通过在应用的特定位置插入代码,记录用户的操作行为、系统状态等信息,并将这些数据发送到服务器进行分析。数据埋点可以帮助开发者了解用户如何使用应用、哪些功能受欢迎、哪些地方存在问题,从而为产品优化和决策提供依据。

二、使用场景

1. 用户行为分析

了解用户在应用中的操作路径,例如用户从哪个页面进入,经过哪些步骤到达目标页面,哪些页面被频繁访问,哪些功能被频繁使用等。这有助于优化应用的导航结构和功能布局。
分析用户的交互行为,如点击、滑动、长按等操作的频率和分布,以改进界面设计和交互体验。
监测用户的留存率、活跃度等指标,评估应用的整体用户体验和吸引力。

2. 常见的场景

例如: 在我们刷抖音视频时,在一个视频页停留的时间比较长,抖音就会给你推好多类似的这种视频,这就用到了数据埋点。

3. 具体实现

实现步骤:

  1. 参考接口,定义上报数据类型
    例如:
export interface TimeItem {
  questionId: string
  startTime: number
  endTime: number
}
  1. 封装埋点工具 使用埋点工具
import { TimeItem } from '../../models'
import { http } from './Http'
import { logger } from './Logger'
 
class Tracking {
  list: TimeItem[] = []
 
  record(startTime: number, endTime: number, questionId: string) {
    this.list.push({
      startTime,
      endTime,
      questionId
    })
    logger.debug('Tracking', JSON.stringify(this.list))
  }
 
  async report() {
    await http.request<null>({ url: 'time/tracking', method: 'post', data: { timeList: this.list } })
    this.list = []
  }
}
 
export const tracking = new Tracking()
  1. 完成记录和上报(离开页面上报)
  startTime: number = Date.now()
 
  onPageShow(): void {
    this.startTime = Date.now()
  }
 
  onPageHide(): void {
    tracking.record(this.startTime, Date.now(), this.item.id)
    tracking.report()
  }

小提示:
用户频繁的进出页面,这个上报请求会频繁的发送,服务端压力很大怎么优化?
可以积累上报数据数到N条后触发上报条件,但目前数据是在应用内存中,退出或强杀后将销毁。
需要记录的同时存储起来,应用启动的时候(或者登录成功的时候)去上报一次

总结

埋点是在软件或应用程序的关键位置(如用户操作、事件触发、页面访问等)插入代码,以收集用户行为和应用程序性能数据的技术手段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值