更新:研究确保脚本不会缓存事件,但到目前为止搜索并没有顺利进行。跟踪在GA中滚动虚拟页面视图
我正在使用下面的脚本来跟踪GA中的虚拟页面浏览量,该网站有一个非常长的主页,我们正在跟踪此页面。我遇到的问题是,一旦用户向下滚动到下面的部分,如果他们向上滚动(使其每页最多1个视图),它就不会注册为新的页面视图。任何帮助,这将不胜感激。我使用jQuery和下面的脚本发送/跟踪。
此脚本是在标记之前实施的Universal Analytics代码的补充。下面的第一个代码是正常的Analytics代码,因为这是帐户定义的位置,所以需要正确运行调试器。第二个脚本是我遇到问题的脚本。
普通UA脚本(位于head标签):
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-123456-1', 'auto');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
脚本用于滚动虚拟页面访问量:
<script language="javascript">
// Predefined variable
Frequency = 10;
//Tracking and Sending
_frequency = Frequency;
_repetition = 100/Frequency;
var _scrollMatrix = new Array();
for (ix = 0; ix < _repetition; ix++) {
_scrollMatrix[ix] = [_frequency, 'false'];
_frequency = Frequency + _frequency;
}
$(document).scroll(function (e) {
for (iz = 0; iz < _scrollMatrix.length; iz++) {
if (($(window).scrollTop() + $(window).height() >= $(document).height()
* _scrollMatrix[iz][0]/100) && (_scrollMatrix[iz][1]== 'false')) {
_scrollMatrix[iz][1] = 'true';
ga('send', 'pageview', _scrollMatrix[iz][0]+'%');
}
}
});
</script>
我被告知,我所需要做的就是修改代码,不要缓存滚动点,或重置每个滚动事件上的缓存。我会研究如何做到这一点。 – Ryan
你需要做的不仅仅是这些。至少您需要从滚动事件中删除循环,因为您要在每次滚动中发送10%-100%的值,并且您需要将对Google Analytics的调用修复为正确的方法调用(并发送用户在页面中的实际位置)。我真的没有在下面写下我的答案来惹恼你或什么,只是指出你的脚本有几个问题。 –
我并不是想让它看起来好像我忽略了你的建议,但我真的很欣赏你为此付出的时间和精力。但是,从我完成的每一项测试中,我们都会按照预期向Google Analytics报告,除非用户滚动到XX%并且该页面视图发送一次,否则如果用户返回该页面滚动位置。 使用ga('send','pageview','page path')的格式;确实发送给GA,因为这是他们建议的基本虚拟页面视图。 我绝不是一个编码专家,但他们正按预期发送(一次)。 – Ryan