编辑:以下是无法正常工作的代码
(我更改了它以简化问题)
<script>
// save startTime at the begginning of the page
var _startTime = new Date().getTime();
</script>
<!--
... page code here ...
-->
<script>
//Google Analytics code
(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-XXXXXX-Y', 'auto');
ga('send', 'pageview');
(function (w,d,$,ga,createFunction) {
createFunction = function(timingVar) {
return function() {
var time = (new Date().getTime() - _startTime);
if (time > 0) {
ga('send', 'timing', 'performance', timingVar, time, 'desktop');
} //if
if (console && console.log) console.log(timingVar +':'+ time);
};
};
$(d).on('ready',createFunction('page ready'));
$(w).on('load',createFunction('page load'));
})(window,document,jQuery,ga);
</script>
仍然不确定为什么此代码无效。
这是我的原始问题(代码有效)
我尝试使用Google Analytics的User Timings功能来跟踪不同情况下的网页加载时间。
我无法在页面加载时发送时间命令。以下是我用来实现此目的的代码。
<script>
// save startTime at the begginning of the page
var _startTime = new Date().getTime();
</script>
<!--
... page code here ...
-->
<script>
//Google Analytics code
(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-XXXXXX-Y', 'auto');
ga('send', 'pageview');
// track document ready even time
$(document).on('ready',function() {
var time = (new Date().getTime() - _startTime);
if (time > 0) {
ga('send', 'timing', 'performance', 'page ready', time, 'desktop');
} //if
console.log('page ready:'+ time);
});
// track window load time
$(window).on('load',function() {
var time = (new Date().getTime() - _startTime);
if (time > 0) {
ga('send', 'timing', 'performance', 'page load', time, 'desktop');
} //if
console.log('page load:'+ time);
});
</script>
我在Chrome中对此进行测试并安装了Google Analytics Debugger扩展程序。
我在控制台中查看,我看到了综合浏览量和时间安排&#34;页面已准备好&#34;正在发送的命令,但时间和页面加载&#34;命令永远不会发送。
两个console.log()
都显示正在触发的事件,但没有数据发送到Google Analytics以获取时间&#34;页面加载&#34;命令。
以下是我已完成的其他验证:
关于命令未在窗口加载事件中发送的原因可能有什么想法?
答案 0 :(得分:2)
您实际运行的代码和您在此页面上粘贴的代码必须有所不同。这里的一切对我来说都很好,如果我运行你的确切代码,它就可以了。
您可以查看此jsbin演示以获取证据。注意如何发送三次点击:1次综合浏览和2次定时点击 http://jsbin.com/kafeduweme/edit?html,console
答案 1 :(得分:-1)
这不是一个错误。这是关于跟踪器本身的默认配置。此功能受采样限制,此功能默认采用1%采样时序跟踪功能。所以在控制台中查看事件的可能性非常低。
启动跟踪器时设置采样率:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a target="_blank" href="http://google.com">Hit me!</a>
<input></input>
功能描述: https://developers.google.com/analytics/devguides/collection/analyticsjs/user-timings