答案 0 :(得分:23)
您的变量定义var _gaq
位于函数内部。这意味着它在该函数内局部作用域并且不会全局存在。 Google Analytics取决于全局变量_gaq
。如果你想将它保存在这样的函数中,请将其引用为window._gaq
。
答案 1 :(得分:14)
您完全忽略了异步跟踪代码的重点。不要将它放在外部文件中,因为这与包含旧的同步GA完全相同。
最重要的是,不要将跟踪代码推迟到window.onload
,因为它可能会触发太晚。
如果您使用异步GA ,只需将其放在内联脚本标记中的文档顶部。这也是Google Analytics website上的推荐。
将异步代码段插入 您的
<head>
部分的底部 页面,在你的任何其他脚本之后 页面或模板可能会使用。
答案 2 :(得分:0)
老实说,我没有读过所有这些帖子,因为它们已经很老了。但是我最近需要将Gtag(谷歌标签管理器用于分析跟踪)添加到一个旧网站,这是一个1000静态HTML文件和(LUCKILY)一个html文件有一个包含js文件的spry菜单栏,就像我说很旧的网站!出于我的目的,我并不担心性能,而是测量流量,以便我们可以迁移它。您的情况可能有所不同,但以下代码适用于包含Gtag的外部js。
我使用此文件加载下面的代码,因为上面的代码是针对旧版ga.js
//Added Google Anyltics Tag Container Tracking - included here to min rebuilding DOM
function loadGoogleAnalytics(){
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = 'https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
}
loadGoogleAnalytics(); //Create the script
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXXXXX-1');
//Confirmed with Google tag Assistant