埋点方式方法研究

第一类是代码埋点,即在需要埋点的节点手动调用接口上传埋点数据,友盟、百度统计等第三方数据统计服务商大都采用这种方案;

第二类是可视化埋点,即通过可视化工具配置采集节点,在前端自动解析配置并上报埋点数据,从而实现所谓的“无痕埋点”, 代表方案是已经开源的Mixpanel

第三类是“无埋点”,它并不是真正的不需要埋点,而是前端自动采集全部事件并上报埋点数据,在后端数据计算时过滤出有用数据,代表方案是国内的GrowingIO。

无埋点数据需求

  • 小程序的初始化执行情况上报
  • 接口请求上报
  • 错误上报
  • 用户行为上报

针对微信小程序开发无埋点sdk的难点及重点

  • 无法直接拦截/监听请求 微信请求统一通过微信API完成 ,请求模块已被微信方封装,且小程序的运行环境不是浏览器对象,不像web应用那样重写封装很自如。

  • 三种运行环境的监控兼容性保证

  • Android 上,js运行环境是 X5 内核

  • iOS 上,js 运行环境是 JavaScriptCore

  • 开发工具上, j s运行环境是 nwjs(chrome内核)

  • 用户行为无法直接监听

  • 强拓展性 需要适用于多种架构设计场景(小程序)下使用

  • sdk需轻量 每个小程序的包存在2M的限制,并且小程序并不支持在代码中引入npm包,故sdk本身会占用2M的大小限制。虽然小程序有分包的内测,但该功能未完全放开,再者作为一个sdk体积过大也是不合理的。

  • 数据收集量大,尽量减少性能损耗

  • 不影响业务(基本需求)

小程序无埋点sdk设计

数据层设计:

数据流走向设计:

采集方式设计:

接入方式:
import Prajna from './lib/prajna-wxapp-sdk.js';

Prajna.init({channel: 'channel',env: config.IS_PRODUCION ? 'product': 'beta',project: 'yourProjectName',methodConfg: {} // 业务特殊关注的方法执行和自定义打点名称})

小程序无埋点SDK中遇到的问

灰度上线,简单点理解就是按产品需求优先级,抽出核心需求,在满足用户基本要求的情况下快速上线,并通过限制流量、白名单等机制进行产品试用,以此收集用户的意...

无埋点或者全埋点可以通过一个配置文件来让前端过滤,然后传给后端,节省流量

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容