iOS无侵入的埋点方案如何实现?

 

在开发过程中,埋点可以解决两大类问题:一是了解用户使用 App 的行为,二是降低分析线上问题的难度。目前,iOS 开发中常见的埋点方式,主要包括:

· 代码埋点

· 可视化埋点

· 无埋点

代码埋点

代码埋点主要就是通过手写代码的方式来埋点,能很精确的在需要埋点的代码处加上埋点的代码,可以很方便地记录当前环境的变量值,方便调试,并跟踪埋点内容,但存在开发工作量大,并且埋点代码到处都是,后期难以维护等问题。

缺点:

1. 显而易见,你会在后期维护的时候写的怀疑人生

2. 复用性差,几乎不能移植给其他项目

3. 工作量大,而且会越写越多

4. 统计代码上线之后,如果出现问题,只能后续版本迭代

5. 如果统计项目名字改变了,原来老的APP版本依旧会统计老的页面名字

优点:

1. 如果非要写一个其他统计无法做到的优点的话,那就是可自定义程度高吧,统计代码想写到那里写到那里(其实这些也可以在后面的方案实现,只是实现上稍微麻烦一点罢了)

2. 最容易想到的方案(前期费时少,使用起来费手不费思路)

可视化埋点

就是将埋点增加和修改的工作可视化了,提升了增加和维护埋点的体验。

该方案的具体步骤就是:

1. 从后台获取需要统计的地方

2. hook住需要统计的类的load方法来Method Swizzing要统计的方法

3. 上传统计到的事件给后台分析

用UIViewController、UIControl为例子,讲解一下该方案的思路。

UIViewController PV统计,页面的统计较为简单,利用Method Swizzing hook 系统的viewDidLoad, 直接通过页面名称即可锁定页面的展示代码如下:

UIControl 点击统计,主要通过hook sendAction:to:forEvent: 来实现, 其唯一标识符我们用 targetname/selector/tag来标记,具体代码如下:

缺点:

1. 需要后台配合

2. 可拓展性不是很高,因为需要修改后台下发的统计内容来每次的版本统计扩展

优点:

1. 相对于第一种方案,代码量少

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值