第一类是代码埋点,即在需要埋点的节点手动调用接口上传埋点数据,友盟、百度统计等第三方数据统计服务商大都采用这种方案;
第二类是可视化埋点,即通过可视化工具配置采集节点,在前端自动解析配置并上报埋点数据,从而实现所谓的“无痕埋点”, 代表方案是已经开源的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中遇到的问
灰度上线,简单点理解就是按产品需求优先级,抽出核心需求,在满足用户基本要求的情况下快速上线,并通过限制流量、白名单等机制进行产品试用,以此收集用户的意...
无埋点或者全埋点可以通过一个配置文件来让前端过滤,然后传给后端,节省流量
网友评论