我在通过history.state/pushing
跟踪我的网站时遇到问题。我有这个Google Analytics代码:
<script type="text/javascript">
(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-XXXXXXXX-X', 'auto');
ga('send', 'pageview');
</script>
现在我有事件监听器来检查history.pushState
何时出现:
<script>
(function(history){
var pushState = history.pushState;
history.pushState = function(state) {
if (typeof history.onpushstate == "function") {
history.onpushstate({state: state});
}
// ... whatever else you want to do
// maybe call onhashchange e.handler
return pushState.apply(history, arguments);
}
})(window.history);
function __inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
window.onpopstate = history.onpushstate = function(e) {
setTimeout(function() {
var path = document.location.pathname;
ga('set', path);
ga('send', 'pageview');
}, 650);
}
</script>
跟踪好,它会发送适当的网址,但Chrome扩展程序标记助手(由谷歌)报告我:
跟踪相同的网络媒体资源ID两次。
我的Google Analytics跟踪代码的第二个实例显示在列表中的代码助手中。
我的实施和/或方法出了什么问题?
修改
我有四个网址:
/home
/home/personal-info
/home/employment-info
/home/privacy-settings
/home/documents
我不想跟踪/home
。
答案 0 :(得分:2)
如果页面在短时间内发送了多个综合浏览量,则
Tag Assistant Recordings会报告一个页面被跟踪两次的警告。
(Tag Assistant Recordings目前不考虑网页浏览的参数,这可能会在Tag Assistant中发生变化)
在这种情况下,您在页面初始化时会看到一个综合浏览量,在事件处理程序中会有一个。
答案 1 :(得分:1)
您未正确设置路径。
应为ga('set', 'page', path)
,或者您可以ga('send', 'pageview', path)