暂停数据发送及再次启动数据采集
最近在采集H5网页用户行为数据时,使用DTM监控了翻页。
在监控翻页后,即触发了s.t(),采集页面数据。
遇到的问题是,翻页后,网页进行POST请求页面数据,才能获取到产品数据。
导致采集PV时,无法知道当前页面产品ID,如果再触发个采集产品ID的,会导致server call 无意义增加。
解决办法:
1)正常触发s.t();
2)判断当前是否为产品介绍页,如果是产品介绍页,产品信息是否存在,如果不存在,则触发s.abort 方法,暂停当前数据采集
说明:此时,数据采集代码会把未发送的数据记录下来;
3)使用DTM监控网页中变量变化(获取到网页全局变量的变化即触发相应事件),触发一个s.tl()方法
注:此时,s.tl方法和事件采集的s.tl不同,因为没有传输事件相关内容,因此,只是会触发数据采集代码计算,不会添加事件采集。
触发了数据采集代码计算后,会把之前2)中未发送的数据发送,此时,已经可以正常获取到产品信息了。
这个实现方案使用的是,数据采集代码,出现数据发送异常时,触发了将数据记录下来的机制,再下次发送数据方法触发时,先核对是否有未发送数据,如果有,则发送未发送成功的数据。
此时,传输的数据会包含一个lrt变量,这个变量是个时间。
对服务器端lrt变量的使用猜测
服务器端,会记录数据采集时间。如果出现lrt变量,则表示数据采集出现过错误,使用当前接收数据的时间,减去 lrt 时间,则是正常数据时间。
如果猜测正确。
则完美的实现了采集页面数据包含了产品信息。同时没有因为页面数据的异步,导致数据采集多增加server call的情况。
在监控翻页后,即触发了s.t(),采集页面数据。
遇到的问题是,翻页后,网页进行POST请求页面数据,才能获取到产品数据。
导致采集PV时,无法知道当前页面产品ID,如果再触发个采集产品ID的,会导致server call 无意义增加。
解决办法:
1)正常触发s.t();
2)判断当前是否为产品介绍页,如果是产品介绍页,产品信息是否存在,如果不存在,则触发s.abort 方法,暂停当前数据采集
说明:此时,数据采集代码会把未发送的数据记录下来;
3)使用DTM监控网页中变量变化(获取到网页全局变量的变化即触发相应事件),触发一个s.tl()方法
注:此时,s.tl方法和事件采集的s.tl不同,因为没有传输事件相关内容,因此,只是会触发数据采集代码计算,不会添加事件采集。
触发了数据采集代码计算后,会把之前2)中未发送的数据发送,此时,已经可以正常获取到产品信息了。
这个实现方案使用的是,数据采集代码,出现数据发送异常时,触发了将数据记录下来的机制,再下次发送数据方法触发时,先核对是否有未发送数据,如果有,则发送未发送成功的数据。
此时,传输的数据会包含一个lrt变量,这个变量是个时间。
对服务器端lrt变量的使用猜测
服务器端,会记录数据采集时间。如果出现lrt变量,则表示数据采集出现过错误,使用当前接收数据的时间,减去 lrt 时间,则是正常数据时间。
如果猜测正确。
则完美的实现了采集页面数据包含了产品信息。同时没有因为页面数据的异步,导致数据采集多增加server call的情况。
> 我来回应