
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了数据分析中关于埋点的一些基础知识等内容,而本文我们就通过案例分析来简单了解一下,数据埋点关键点都包含哪些内容。
1、流程梳理
这里存在一个问题,可能库还没初始化完毕,一些点已经产生了,比如曝光类的,如果这时候生成对应的点进入缓冲队列,就是属于无效的点因为没有加载到坑位信息、配置参数等,所以针对这种场景下产生的点位信息,我们新开一个队列存储,等到初始化完成再去处理;
2、点击埋点
点击埋点我们开始的思考是提供一个组件,包裹需要进行点击埋点的dom元素,也有可能是组件,然后给子元素绑定点击事件,当用户触发事件时进行埋点相关处理。
按照上述思路我们就必须绑定点击事件到dom上,但是我们又不想引入额外的dom元素,因为这会增加dom结构层级,给使用者带来麻烦,这样留给我们的操作空间就剩下props.children,所以我们去递归TrackerClick组件的children,找到外层的dom元素,同时要求TrackerClick下面必须有一个container元素,按照这个思路我们进行了处理。
3、曝光埋点
曝光对于我们来说一直是比较麻烦的,我们先来看看曝光埋点的一些要求:
元素出现在视窗内一定的比例才算一次合法的曝光
元素在视窗内停留的时长达到一定的标准才算曝光
统计元素曝光时长
4、运行时参数
一般固定的参数我们会放在config配置文件中管理,当然也有一些运行时的参数,比如userId,modulePosition等运行时字段,针对这种场景我们提供extraprops通过组件的props传递,在组件内部拼装,使用时只需要传入对应业务字段即可。
5、appendQueue
一些场景下我们没法绑定事件到dom上,比如原生的元素:audio、video,以及封装层级很深的业务组件,类似这种只对外提供了回调,针对这种场景我们提供了appendQueue方法,把点加入到缓冲队列中。
6、定时任务
我们的设计是所有产生的点都会进入缓冲队列中,通过定时任务上报。目前策略是点击类上报频率1000ms,曝光类3000ms,当然这个间隔也不是凭空想象的,经过跟算法、BI讨论商定出来的,兼顾了前端的需求与算法那边实时性的要求,目前这两个值也是支持配置的。
关于定时任务的时间间隔,我们取点击和曝光上报频率的大公约数,以减少执行次数。
7、页面曝光
我们在初始化的时候会根据配置文件中约定的字段判断是否需要处理页面曝光;
页面曝光的关键是采集页面曝光的时机,浏览器的页面生命周期标准和规范才开始制定没多久,各个厂商支持的都不是很好,参考Chrome的页面生命周期中的visibilitychange事件作为采集页面曝光的时机。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。