适用平台 iOS / Android / HarmonyOS(可扩展至 Web、小程序)

事件采集 Tracker

自动采集

  • 页面曝光,每次露出都触发,支持设置业务参数,页面停留时长,后端根据前端发送的页面曝光时间和后台停留时间计算,页面来源(a-b-c,c-b,b 的来源是 c)

  • 登录/退出,不发送事件,只修改本地存储的 userId

  • App 生命周期(冷启动/热启动/退后台(杀掉),上滑并杀掉 app 会先走“退后台”回调方法,可在这里统计退出事件

  • 按钮/图片/Cell 点击事件

手动采集

  • 视图曝光(SDK 提供支持,然后根据需求手动去埋),支持 Banner轮播图/List列表 Item 曝光,曝光比例暂不考虑

  • 常规业务埋点

数据处理 DataBuffer

数据内容

基础数据

  • 基础属性(设备/版本/渠道/时间戳(客户端时间)/事件ID和类型/sessionId等),事件ID和sessionId 用于对埋点数据排序,需要在冷启动和切换用户时更新,退到后台达到指定时间再返回到 app 时也需要更新(app和小程序用5分钟,web用30分钟)

  • 用户属性(匿名ID/用户ID),匿名ID用 UUID + KeyChain 实现,不同端实现方式相似

  • 埋点平台ID,冷启动和登录后调接口拿,和匿名ID一起存在 Keychain

业务数据

  • 公共属性(城市/影院)

  • 业务属性(movieId/movieName),类型支持数字和字符串

H5 埋点数据

  • App 内嵌 H5 的事件,由 App 来发(基础数据由 App 获取,H5 发送业务属性)

数据缓存

  • 内存缓存(Queue)

  • 本地缓存(SQLite 加密存储),冷启动时检查,删除 30 天前的数据(事务)

  • 数据转移规则(50条/15秒/退后台(被杀)),防止数据因崩溃或断网丢失,避免内存暴涨和频繁读写文件,以及保障数据完整性,转移过程:专有Queue/异步/事务

上报 Uploader

  • 上报频率控制(冷启动、定时发送(默认 15 秒)、条数触发(默认 100 条))

  • 数据压缩(GZIP)

  • 数据加密(AES)

  • 数据格式(Protobuf)

  • 上传流量控制(WIFI/5G)

全局配置 Config

  • API 远端控制(采集开关(API 按渠道控制开关)/每次上报数量/上传间隔/sessionId 更新时间),忽略接口返回的无效数据,0,“”

  • App 本地控制(是否输出日志/视图曝光比例/要忽略的页面(无意义的容器页面)等)

日志与调试

  • 支持在 IDE 输出日志(SDK初始化结果/埋点数据记录/上报结果等),线上关掉

  • QA 环境支持抓包

其它

  • 隐私合规方面需要产品去修改相关文档,说明采集数据用途

  • 异常隔离,埋点功能出问题不能影响到 App 使用

导图版

App 埋点 SDK 设计思维导图