[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();