需求: 公司的业务方和产品部门想要采集页面的每一个组件的里面具体曝光的内容,以方便定位出用户对哪些组件 哪些内容感兴趣,从而针对性的在这些内容上多投放该组件,做到定点分析。
下面是接到这个需求之后做的一个技术方案和实现思路:
1 背景介绍:
曝光:商品出现在用户眼前,也就是浏览器视窗,就是曝光.。而我们是需要采集在可视区域停留N秒的的数据(目前是2秒),传给神策后台。那么触发曝光的场景有如下:
1)页面曝光:在可视区域停留N秒,N可以做调整
2)页面切换,从其他页面跳转或返回按钮回到当前页面,符合1的
3)(手机home键,锁屏键,息屏的时候 再次显示)移出可视区域到再次进来可视区域,符合1的。
其实不管曝光场景怎样的,我们只要把 每一次把可视区域停留N秒的组件 给采集出来 。尽量不漏踩 ,不重复采集就可以了。当然不可能做到百分之百准确的。排除一些外在因素 如上传神策数据过程中,手机忽然没有电,网络问题。 或者是小程序版本兼容问题性等会影响到采集的准确率。
2.那先看流程图:
3.具体的实现思路。
1)先从服务端获取 json 数据,部分代码:
(1)要是服务端的Json数据 没有错误,那就直接更新本地存储的Json数据
要是服务端的Json数据有错误,那么先检测一下本地有没有存储Json 数据,如果有,就直接采用本地存储的,要是getStorageSync是空的话,那么就采用当前页面的trackjson数据。
2