使用来自外部JS文件的Google Analytics异步代码

时间:2010-07-16 10:16:55

标签: javascript asynchronous google-analytics unobtrusive-javascript

3 个答案:

答案 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