Javascript 谷歌分析计时事件未发送
编辑:这里是实际不起作用的代码 (为了简化问题,我修改了它)Javascript 谷歌分析计时事件未发送,javascript,google-analytics,analytics,Javascript,Google Analytics,Analytics,编辑:这里是实际不起作用的代码 (为了简化问题,我修改了它) //在页面开始时保存开始时间 var_startTime=new Date().getTime(); //谷歌分析代码 (函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){ (i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o), m=s.getElementsByTagNam
//在页面开始时保存开始时间
var_startTime=new Date().getTime();
//谷歌分析代码
(函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga(“创建”、“UA-XXXXXX-Y”、“自动”);
ga(‘发送’、‘页面浏览’);
(函数(w,d,$,ga,createFunction){
createFunction=函数(计时变量){
返回函数(){
var time=(new Date().getTime()-\u startTime);
如果(时间>0){
ga(“发送”、“计时”、“性能”、“计时变量”、“时间”、“桌面”);
}//如果
if(console&&console.log)console.log(timingVar+':'+时间);
};
};
$(d).on('ready',createFunction('page ready');
$(w).on('load',createFunction('page load'));
})(窗口、文档、jQuery、ga);
仍然不确定为什么这个代码不起作用
这是我的原始问题(代码有效)
我正在尝试使用谷歌分析的功能来跟踪不同场景下的页面加载时间
我无法获取页面加载时发送的计时命令。下面是我用来实现这一点的代码
<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>
//在页面开始时保存开始时间
var_startTime=new Date().getTime();
//谷歌分析代码
(函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga(“创建”、“UA-XXXXXX-Y”、“自动”);
ga(‘发送’、‘页面浏览’);
//跟踪文档准备就绪时间
$(文档).on('ready',function(){
var time=(new Date().getTime()-\u startTime);
如果(时间>0){
ga(‘发送’、‘计时’、‘性能’、‘页面就绪’、‘时间’、‘桌面’);
}//如果
log('page ready:'+时间);
});
//轨道窗口加载时间
$(窗口).on('load',function(){
var time=(new Date().getTime()-\u startTime);
如果(时间>0){
ga(“发送”、“计时”、“性能”、“页面加载”、“时间”、“桌面”);
}//如果
log('页面加载:'+时间);
});
我正在Chrome上测试,并安装了扩展
我查看控制台,看到正在发送pageview和计时“page ready”命令,但计时“page load”命令从未发送
这两个console.log()
都显示了正在触发的事件,但是没有为计时“页面加载”命令发送到Google Analytics的数据
以下是我所做的其他验证:
- 时间值始终为整数
- 我是否只有“页面加载”计时命令并不重要
ga('create', 'UA-XXXX-Y', {'siteSpeedSampleRate': 50});
文档
字段参考:
功能描述:
您实际运行的代码与粘贴在此页面上的代码必须有所不同。这里的一切对我来说都很好,如果我运行你的精确代码,它就会工作 你可以看看这个jsbin演示来证明。注意三次点击的发送方式:1次页面浏览和2次定时点击。
我觉得这是正确的。调试器对
ga('send','timing',…)
命令说了什么?它要么说成功,要么告诉你失败的是什么。你是不是等了24小时才让数据显示在标准报告中?@PhilipWalton我已经提出了这个问题来说明我从调试器中得到了什么。命令根本没有被触发,没有消息说它失败了,奇怪吧?@DaImTo 24小时后,我在报告中看到一些数据,但我有14000个文档事件准备就绪,900个页面加载事件(应该相等)。因此,该命令似乎针对某些用户启动,但我无法查看从浏览器发送的任何数据。我已经删除了documentready命令,现在只剩下pageload命令了。明天我将报告结果。好的,我尝试了新站点的采样率为50和100,现在我看到一个信号发送到GA。它似乎没有包含类别、变量名称、值和标签。下面是调试器显示内容的屏幕截图。我将等待,看看数据是否在计时报告中。这个完整的答案是不正确的siteSpeedSampleRate
对发送定时没有影响。这只会影响点击analytics.js自动发送的站点速度。您愿意更新此答案吗?我为此花了几天时间(因为我不得不恢复使用正常事件而不是计时事件并重写我的仪表盘)好吧,我的代码周围有一个(函数(w,d,$,ga){…})(窗口,文档,jQuery,ga)
,它不起作用。我删除了包装器函数,两个命令都被发送(不管siteSpeedSampleRate是什么)。我将更新问题以反映这一点。为了简化代码,我从问题中删除了b
ga('create', 'UA-XXXX-Y', {'siteSpeedSampleRate': 50});