之前我介绍过Infinite Ajax Scroll这款jQuery滚动分页插件,该插件可以实现页面滚动到最底部,自动异步加载数据,提高网页浏览体验,不过,使用这个插件后,对数据统计会造成很大误差,这里就介绍一下如何避免数据统计上的误差。
使用Infinite Ajax Scroll插件之后,由于大量页面是通过Javascript进行加载,这使得网页的PV不准确,用户可能加载了很多页面,但统计代码只统计一个页面的PV,这会造成一种现象,网站部署Infinite Ajax Scroll插件之后,会发现PV反而降低,跳出率大幅升高,单用户访问页面数量迅速下降,很多数据统计指标出现了大幅失真的情况,这个原因就是,通过Javascript加载的页面没有被统计到。
如果用户使用的是Google Analytics(谷歌分析),默认情况下只会统计一次访问和一次浏览,用户通过插件访问的页面无法被统计到,下面就介绍一下如何让Google Analytics能够统计出Infinite Ajax Scroll插件加载的页面。
首先,按照“使用Infinite Ajax Scroll实现下拉加载效果”一文所示,Infinite Ajax Scroll需要增加的代码保存不变,在其后面再增加一些代码,代码如下:
ias.extension(new IASSpinnerExtension());
ias.on('pageChange', function(pageNum, scrollOffset, url) {
pathurl = jQuery('<a/>').attr('href',url)[0].pathname.replace(/^[^\/]/,'/');
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview', pathurl);
history.pushState(null,null,url);
});
上面代码将会在每一次url地址变换时候加载,需要使用analytics.js格式的Google Analytics代码,老格式的Google Analytics代码请自行转换,UA需要换成用户自己的数字,倒数2、3行即可将页面加载统计进去,其中最后一行还可以在下滚的时候变更用户url为当前地址,不过网页不会刷新加载。
经过增加上面的代码,用户就可以通过Google Analytics(谷歌分析)来统计出Infinite Ajax Scroll插件加载的页面的PV数据了。