在铬调试日志查看站点页面时,会出现以下消息。
未捕获的ReferenceError:未定义_gaq
页面本身应该使用跟踪对象onload
事件处理程序和火_trackEvent
为谷歌Analytics(分析)。
我最好的猜测是,也许是ga.js
文件没有及时装载,因此onload
_trackEvent
触发没有被捕获。 异步代码段正被所述前使用</body>
关闭并且对象被定位在中间<body>
(一些其他职位已引用jQuery的位置太多,但,这可能是一个红鲱鱼)
任何帮助,不胜感激。
从https://developers.google.com/analytics/devguides/collection/gajs/此代码替换现有的“传统片断”与“最新,异步版本,你应该首先删除现有的跟踪代码段。”
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
要查看事件进来(要知道,如果这是工作)寻找“活动”上的“报告”页面左侧的“实时”菜单选项下。
关于异步代码段的位置, GA帮助页说-
因此,它在收盘前出现该段粘贴到网站模板页</head>
标记。
我首先想到的是,JS应在页面底部加载,以提高速度。 然而,GA异步跟踪代码段应在头部被加载,因为它不会立即加载的ga.js,它不会阻止页面执行。(它通过动态地添加脚本标签到DOM,这使做到这一点它在队列的后面。)
如果由于某种原因,你不能将异步代码段,举至头顶,你可以定义_gaq
自己,像这个-
<button onclick="var _gaq = _gaq || []; _gaq.push(['_trackEvent', 'button3', 'clicked'])"/><button>
有同样的问题。 你必须定义_gaq
阵列。 就在头的谷歌分析脚本后补充一点:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);
您可以使用最新版本的analytics.js代替的ga.js
的ga.js是一个传统的图书馆。 如果你开始一个新的实现,我们建议您使用最新版本的库,analytics.js的。 对于exisiting实现,学习如何从的ga.js迁移到analytics.js。
下面是一个例子:
ga('send', {
hitType: 'event',
eventCategory: 'Video',
eventAction: 'play',
eventLabel: 'cats.mp4'
});
将跟踪操作的代码:
<script type="text/javascript">
var gaq;
var _gaq = gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_setDomainName', 'yourdomain.com']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
+ '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>