历史状态推送和谷歌分析
History state pushing and Google Analytics
我在通过history.state/pushing
跟踪我的网站时遇到问题。我有这个谷歌分析代码:
<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>
跟踪良好,它会将适当的URL发送到应有的位置,但是Chrome扩展程序标签助手(Google)报告了我:
同一网络媒体资源 ID 会被跟踪两次。
我的第二个 Google Analytics(分析)跟踪代码实例会显示在跟踪代码助手的列表中。
我的实现和/或方法有什么问题?
编辑:
我有四个网址:
/home
/home/personal-info
/home/employment-info
/home/privacy-settings
/home/documents
而且我不想/home
跟踪。
标签助理录制文件会报告一条警告,指出如果某个网页在短时间内发送了多次网页浏览匹配,则该网页会被跟踪两次。
(标签助手录音目前不考虑网页浏览的参数,这在标签助手中可能应该改变)
在这种情况下,您在网页初始化中有一个网页浏览命中,在事件处理程序中有一个。
您没有正确设置路径。应该ga('set', 'page', path)
或者你可以做ga('send', 'pageview', path)
相关文章:
- 获取谷歌位置自动完成状态
- 谷歌地图API保存访问历史
- 谷歌地理编码状态始终为空
- 谷歌图表LineGraph切换数据表和维护状态
- 谷歌地图叠加层消息不会保持隐藏状态
- 谷歌地图放置API V3自动完成 - 在输入时选择第一个选项(并使其保持这种状态)
- 谷歌闭包编译器和历史API
- 谷歌地理编码 API 状态检查 - OVER_QUERY_LIMIT
- 以编程方式切换谷歌日历 API 的忙/闲事件状态
- 历史状态推送和谷歌分析
- 在谷歌Chrome开发者工具网络选项卡中,状态完成意味着什么
- 如何防止谷歌的地理编码警报状态消息
- 谷歌浏览器“;返回“;以及“;向前“;历史
- 角度/离子谷歌地图的状态变化
- 谷歌地图API V3:缩放状态与大多数标记
- 谷歌地图如何在不重新加载和不使用历史API的情况下改变其URL ?
- 如何判断谷歌翻译是否处于激活状态?
- 混淆了-html5历史api和谷歌爬虫
- 状态代码OVER_QUERY_LMIT谷歌地图API
- 检查谷歌地图画布元素是否已处于空闲状态