iOS埋点

来源:互联网 发布:png图片可以编辑源码么 编辑:程序博客网 时间:2024/04/29 03:51

1.摘要
 如果你的公司用户基数足够大,那么根据埋点数据分析得到的反馈是非常有用的。除了第三方的埋点数据分析,比如友盟,如果我们希望自己也存一份数据,作为对友盟数据的对比,在iOS工程中如何实现呢?   一般的埋点分为PV(界面级别的),PA(action事件级别).下边为了减少冗余,简称PV,PA。PV中的数据一般都是静态的,与业务逻辑不相关,比如进入时间,离开时间,是否进入该界面等等。   所以这类需求是很好处理的,一般都会让所有的controller都继承BaseViewController。这样左右的信息都基于一个类中,符合高聚合的表现。   那么PA的事件埋点数据如何处理呢?最传统的方法是在每个action中添加相应的埋点数据,但是这样功能和业务逻辑就混在一起,代码结构很混乱,不简洁,不优雅。   混在在一起,放眼望去,怎么埋点到处都是啊,自己都烦的不行。尤其是每一次action改变之后,对应的逻辑就要改变,我要去不同的类中去更改。实在是不胜其烦。   其实早就有解决之道,而且非常好用,这里推荐MOAspect。它校于Aspect,有一个功能很重要就是支持相同的方法名注册,而Aspect是不支持不同类相同方法名注册的。   这些都是都是在去年经过验证,并且线上反馈还不错的。大家可以放心去用,坑都是踩过的。

做产品的同学在产品上线后经常离不开一个词,数据分析。那么要如何进行数据分析呢?不妨先问自己这么几个问题。

  • 你要分析什么问题?是找问题还是验证?
  • 关于这些问题你需要哪些数据?
  • 这些数据从哪里来?

要怎么解决这些问题呢?答案是数据埋点。首先通过产品定位及目标来确定自己需要哪些数据,其次通过在产品各个流程环节中设置数据埋点,最后,当用户使用产品时,后台就能源源不断地接收到数据了。

前几天看到一个段子,论数据分析的重要性:
一个哥们,有次聚会时说自己买了很多条iPhone数据线,家里的每个房间插一条,走到哪都能随时充电。在场的姑娘们都当成是段子笑笑都过去了,只有个细心的姑娘悄悄问他买了多少条,他说42条。现在她和他在北京三环内总共42个房间的数套豪宅愉快地生活,下个月结婚。

2. 客户端埋点方案

  • 使用第三方统计SDK,如:友盟统计等。
  • 自己手动埋点。
    本文讲述的是自己手动埋点。
    本文埋点主要统计的数据为:当前页面,页面停留时间(进入与退出时间差计算),点击事件等。
    原理:记录每个页面进入退出(viewWillAppear与viewWillDisappear)的时间,用来计算页面停留时间,把触发时间以及一些点击行为操作全记到一个模型对象中,然后在页面离开或点击事件触发把这个模型写入到数据表中,到时候只要从表中取出数据再发送给后台即可实现埋点。写的不是很清楚,详情见demo

3.优化处理

为防止对后台接口造成数据攻击,每5分钟从数据库中取一次数据发送,每200条列表数据向服务发送,直到本次取出所有数据全部发送完毕。

原创粉丝点击