iOS打点方案设计

更新时间:2023-07-06 01:18:53 阅读: 评论:0

iOS打点⽅案设计
⼀、背景
业务扩展的需要,对⽤户⾏为数据的收集和分析也就⽇益重要,前期实现的打点⽅案是直接在业务代码中埋点,与业务结合的太深,⽆法跨app使⽤,且开发测试都⽐较⿇烦。基于以上,我们设计了统计sdk,⽤以解决开发和测试成本,降低客户端打点的复杂度。
⼆、业务分析
梦幻西游副本攻略打点类型
pageView打点,页⾯显⽰后提交的打点
pageClick打点,⽤户点击事件产⽣的⽤户⾏为打点
pageExchange打点,打开新的页⾯窗⼝,纪录页⾯流转的打点
exposure打点,⽤户浏览时,曝光产品的打点
mobile_log打点,⽤来记录⼀些不是⽤户交互⾏为的打点
360创始人
⾏为与业务数据
打点纪录的不仅仅是⽤户的操作⾏为,还需要涉及到具体⽤户操作的业务数据。 例如,⽤户点击收藏,则打点事件中应该有收藏的物品的ID或者其他属性等。⽤户浏览⼀段商品列表,曝光中应该有具体商品的信息上报,如ID,商品类型,商品sku等。
sdk的设计原则是要脱离业务数据的,但是打点的核⼼就是上报该有的业务数据。 经过对各种现有第三⽅统计sdk的调查,现有的可视化埋点,代码埋点等, 不能实现我公司复杂的业务统计需求。为了可以跨app使⽤,同时尽量不添加与业务⽆关的统计代码,做到AOP编程。最终我们确定⽅案,使⽤runtime底层拦截所有的点击事件及相应的滑动事件,同时事先声明业务数据,绑定相应的控件,实现打点。
声明业务数据
将业务数据和界⾯元素绑定,形成⼀个包含业务数据的独特视图。技术实现上可以扩展视图的属性。
各种心情图片大全如view上扩展⼀个analysisData的属性,在这个view⽣成的时候,定义⼀份业务数据赋予analysisData。当这个view有⽤户操作产⽣打点的时候,则取 analysisData作为业务数据解析上传。针对可复⽤的视图类型,则需要有搭配的数据源,保证复⽤后取到的业务数据是⽤户操作的界⾯元素对应的业务数据。
⽐如,⼀个收藏按钮需要打点,那么开发同学,需要按sdk的规范给该按钮的扩展属性赋值,声明相应的业务数据,那么在sdk打点时,才能有业务数据上报。没有声明业务数据的⽤户操作默认为⽆打点事件。
三、模块设计
⾏为抓取模块
按钮点击事件的抓取
⼿势事件的抓取
tableView和collectionView代理事件的抓取
抓取模块可以抓取到⼤部分⽤户的⾏为操作,传递给数据收集模块判断是否需要统计。
数据收集模块
收集模块负责判断抓取到的⽤户⾏为操作是否需要统计。将需要统计的⾏为,按照配置解析模块的规则,进⾏对应的业务数据解析及封装相应的上报数据。
数据组装模块
组装模块负责将收集模块的打点数据,根据配置⽂件的相应配置,组装为对应格式的上报数据,然后传递给上报模块。白带变多
沆瀣一气什么意思
打点数据存储模块
科学养猪技术将收集模块数据结构处理好的打点数据,构建每项打点数据之间的⽤户⾏为关联,形成可以分析⽤户⾏为的打点数据链,并进⾏存储。根据配置⽂件的上报规则,选择相应的时机进⾏上报。黄山有什么好玩的
数据上报模块
大国的崛起负责上报打点数据。此处进⾏最后封装和数据加密,根据配置⽂件中的上报URL,上报规则,选择在适当的时机调⽤相应的接⼝,完成上报。
打点s d k主要由以上四个模块组成,类图如下:
打点sdk.jpg
四、具体技术实现
实现按钮点击事件的抓取
⽅法:扩展UIControl

本文发布于:2023-07-06 01:18:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1080843.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   打点   业务   模块   上报   需要   相应   事件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图