- 代码埋点
由开发人员在触发事件的具体方法里,植入多行代码把需要上传的参数上报至服务端。 - 可视化埋点
根据标识来识别每一个事件, 针对指定的事件进行取参埋点。而事件的标识与参数信息都写在配置表中,通过动态下发配置表来实现埋点统计。 - 无埋点
无埋点并不是不需要埋点,更准确的说应该是“全埋”, 任意一个事件都被绑定一个标识,所有的事件都别记录下来。 通过定期上传记录文件,配合文件解析,解析出来我们想要的数据, 并生成可视化报告供专业人员分析 , 因此实现“无埋点”统计。
如何实现无侵入的自动化埋点?
哪几种情景需要埋点
UIControl, UITablview(collectionView与tableView基本相同), UITapGesture,BarButtonItem, UIViewController的PV统计。
UIControl支持的点击类型
各类点击事件的拦截
页面事件的拦截
滑动事件 & UIWebView加载事件
View_Path
viewPath 是最关键的一项信息,能够唯一标识当前 view。
收集控件数据时,需要将界面上的任何一个View与其他View区分开来。这就需要为界面上的每一个控件分配一个唯一的ViewID。此ViewID除了具有区分性,还需要具有一致性,即同一个View无论界面布局如何动态变化,或者说多次进入同一页面,此ViewID理论上保持不变。
唯一标识问题
唯一标识的组成方式主要是由 target + action 来确定, 即任何一个事件都存在一个target与action。 在此引入AOP编程,AOP(Aspect-Oriented-Programming)即面向切面编程的思想,基于 Runtime 的 Method Swizzling能力,来 hook 相应的方法,从而在hook方法中进行统一的埋点处理。例如所有的按钮被点击时,都会触发UIApplication的sendAction方法,我们hook这个方法,即可拦截所有按钮的点击事件。
网友评论