最近公司有一项新需求,要求获取主界面每个按钮的点击事件,来获取分析用户行为。
客户端埋点和无埋点的区别
-
客户端埋点(手动埋点,代码埋点):
纯手动写代码,调用埋点SDK的函数,在需要埋点的业务逻辑功能位置调用接口上报埋点数据。友盟等第三方数据服务商大部分都采用这种方案。
手动埋点让使用者可以方便地设置自定义属性、自定义事件。所以当你需要深入下钻,并精细化自定义分析时,比较适合使用手动埋点。
手动埋点的缺陷就是,项目工程量大,需要埋点的位置太多,而且需要产品开发运营之间相互反复沟通,容易出现手动差错,如果错误,重新埋点的成本也很高。这会导致整个数据收集周期变的很长,收集成本变的很高,而且效率很低。因为手动埋点需要开发人员完成,所以每次有埋点更新,或者漏埋点,都需要重新走上线发布流程,更新成本也高,对线上系统稳定性也有一定危害。
-
客户端无埋点(自动埋点,全埋点):
无埋点并不是没有任何埋点,所谓无只是不需要工程师在业务代码里面插入侵入式的代码。只需要简单的加载了一段定义好的SDK代码,技术门槛更低,使用与部署也简单,避免了需求变更,埋点错误导致的重新埋点。
通过这个SDK代码,前端会自动全量采集全部事件并上报埋点数据,能够呈现用户行为的每一次点击、每一次跳转、每一次登录等全量、实时用户行为数据,这些数据传到后端后,可通过用户分群、漏斗对比等功能,分析不同访问来源、不同城市、不同广告来源等多维度的不同转化细节,细而全。
无埋点的劣势是自定义属性不灵活,传输时效性差,数据可靠性欠佳,耗费网络流量,还会增加服务器负载,而且兼容性也不佳。
客户端埋点技术
iOS埋点业务方案已经写得很清楚了,直接看人家写得就好。
客户端无埋点技术
iOS无埋点数据统计实践写得很详细,就当个搬运工,直接看作者写得就行。
何时使用埋点技术,无埋点技术
在查找文章时,看到很多文章在说埋点技术已死,未来是无埋点获取用户行为的天下,通过运行上面高手的demo,发觉如果用埋点获取用户点击数据时,确实需要些一部分代码。并且不同控件,都要添加一个方法来获取他的事件。确实有点麻烦。
使用无埋点sdk时,只需要在appDelegate中声明注册一下。所有数据都可以获取的到,但是数据有点杂,到后期分析的时候需要下功夫来区分。