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



Answers

你完全忽略了异步跟踪代码的重点。 不要把它放在外部文件中,因为这与包含旧的同步GA完全一样。

最重要的是,不要将跟踪代码推迟到window.onload因为它可能会触发太晚。

如果您使用异步GA, 只需将其放在内联脚本标记中的文档顶部 。 这也是Google Analytics网站上的推荐

在页面或模板可能使用的任何其他脚本之后,将异步代码段插入页面<head>部分底部

Question

我正在尝试将异步版Google Analytics跟踪代码添加到网站中。

我想将JavaScript保存在一个单独的文件中,并从那里调用它。

这是我目前在.js文件中得到的内容:

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function loadtracking() {
    var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXXXX-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);
        })();
}

addLoadEvent(loadtracking);

这就是我在主页面的<head>标签中得到的内容:

<script type="text/javascript" src="js/google-analytics.js" ></script>

然而,显然有一个问题,因为几天后,我没有得到统计数据!

我需要改变什么想法?

谢谢,尼尔

编辑:好的......在下面的一些反馈之后,我将添加我的.js文件的当前内容。 我将保持更新,以便如果/当这个问题得到解决,它将有希望帮助其他人尝试做类似的事情。

var _gaq = _gaq || [];

function loadtracking() {
        window._gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
        window._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);
        })();
}

loadtracking();



Links