[发明专利]一种基于iOS应用的轻量级解耦式埋点方法及装置在审
| 申请号: | 202011084482.5 | 申请日: | 2020-10-12 |
| 公开(公告)号: | CN112230903A | 公开(公告)日: | 2021-01-15 |
| 发明(设计)人: | 金小俊;赵化;李卫丽 | 申请(专利权)人: | 上海赛可出行科技服务有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F11/36 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 200131 上海市浦东新区自由贸*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 ios 应用 轻量级 解耦式埋点 方法 装置 | ||
本发明公开了一种基于iOS应用的轻量级解耦式埋点方法及装置,涉及数据采集分析技术领域,方法包括:通过维护一个JSON文件来指定埋点所在的类和方法,继而利用AOP的方式在对应的类和方法执行时动态嵌入埋点代码。本发明通过维护一个JSON文件来指定埋点所在的类和方法,继而利用AOP的方式在对应的类和方法执行时动态嵌入埋点代码;对于需要逻辑判断来确定埋点值的场景,提供hook方法的入参,以及所在类的属性值读取,根据相应的状态值设置不同的埋点;具有以下优点:支持动态下发埋点配置;物理隔离埋点代码和业务代码;插件式的埋点功能实现。
技术领域
本发明涉及数据采集分析技术领域,特别涉及一种基于iOS应用的轻量级解耦式埋点方法及装置。
背景技术
在发展日新月异的移动互联网时代,数据扮演着极其重要的角色。埋点作为一种最简单最直接的用户行为统计方式,能够全面精确的采集用户的使用习惯以及各功能点的迭代反馈等等,有了这些数据才能更好的驱动产品的决策设计和新业务场景的规划。
目前业内最常用的埋点方法是代码埋点,代码埋点的特点是灵活,可以在相应的业务代码处根据业务逻辑和变量值判断实现场景化的埋点值记录,但其缺点也尤其明显,将埋点和业务代码耦合在了一起,造成了埋点代码对业务代码的入侵,且埋点逻辑极易对业务逻辑造成污染。另外,对于埋点代码的移除只能通过手动删除代码的方式来实现。
发明内容
本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于iOS应用的轻量级解耦式埋点方法及装置,本发明通过维护一个JSON文件来指定埋点所在的类和方法,继而利用AOP的方式在对应的类和方法执行时动态嵌入埋点代码;对于需要逻辑判断来确定埋点值的场景,提供hook方法的入参,以及所在类的属性值读取,根据相应的状态值设置不同的埋点;具有以下优点:支持动态下发埋点配置;物理隔离埋点代码和业务代码;插件式的埋点功能实现。
为了解决上述技术问题,本发明提供了如下的技术方案:
本发明一种基于iOS应用的轻量级解耦式埋点方法及装置,所述装置包括埋点配置JSON表和埋点SDK,具体埋点方法如下:
一、配置埋点信息
埋点配置JSON表中包含需要hook的类名class和具体的事件event信息,event中包括hook的方法和对应的埋点值;通过AOP的方式物理隔离埋点代码和业务代码,避免埋点的逻辑侵入污染业务逻辑;埋点包括固定埋点和需要逻辑判断的场景化埋点,对于场景化埋点,需要提供一个impl类来提供相应的逻辑判断;
二、固定埋点场景:
对于固定的埋点,只需要在对应的方法执行时直接记录埋点,具体方法为利用iOS系统的runtime来实现AOP,通过MethodSwizzling机制来hook相应的类和方法;为了便于检测无效的埋点,还需对hook的类和方法进行匹配校验,若类中没有对应的方法,则抛出断言;
三、场景化埋点:
场景化埋点主要为同一事件但是在多种状态或逻辑下不同埋点的情况,本发明通过提供一个protocol由埋点impl类来实现,根据不同的逻辑判断,返回对应的埋点值;埋点实现类的类名需要与埋点配置JSON中的event里的key保持一致;
四、状态判断:
根据状态量来确定埋点值;根据订单种类和订单状态来返回对应的埋点值,首先定义JSON表中同名的impl类,并遵循RJEventTracking协议;
五、入参判断:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海赛可出行科技服务有限公司,未经上海赛可出行科技服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011084482.5/2.html,转载请声明来源钻瓜专利网。





