在外部JS文件中访问Google Analytics Universal Analytics

Nic*_*tal 14 javascript google-analytics

在旧版Google Analytics中,您只需添加var _gaq = _gaq || [];javascript文件的顶部,即可在GA完全加载之前推送事件和事务.

使用Universal Analytics时,您不再使用.push(),那么ga在外部文件中创建对象的正确方法是什么?Google Analytics可能尚未加载,但您需要推送事件和交易?

Bri*_*way 10

Google Analytics摘要中的立即调用函数表达式处理该对象的创建.在代码段中,您会看到以下内容:

i[r] = i[r] || function() {
    (i[r].q = i[r].q || []).push(arguments)
}
Run Code Online (Sandbox Code Playgroud)

我们从传递给IIFE的参数知道i = window和r ="ga":

(function(i, s, o, g, r, a, m) {
    //...
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
Run Code Online (Sandbox Code Playgroud)

在un-uglyfied JavaScript中,代码片段如下所示:

window['ga'] = window['ga'] || function() {
    ( window['ga'].q =  window['ga'].q || []).push(arguments)
}
Run Code Online (Sandbox Code Playgroud)

因此,通过调用全局函数ga,您实际上创建了一个充当队列的数组(如果它尚不存在)并将值推送到队列中.

在Universal Analytics中,调用此函数:

ga('create', 'UA-XXXX-Y', 'auto');
Run Code Online (Sandbox Code Playgroud)

与之前版本的GA中的相同:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXX-Y']);
Run Code Online (Sandbox Code Playgroud)

更多信息可以在Google开发文档中找到.