跟踪代码:_gaq 全局对象

_gaq 全局对象可通过 push(...) 方法直接用于异步网页跟踪。该对象还提供了可创建跟踪器对象的方法,但这些方法仅应在少数情况下使用。

对于传统网页跟踪,请改用 _gat 全局对象。

_gaq 对象方法

传送方式的详细信息

_createAsyncTracker()

    _createAsyncTracker(accountId, opt_name)
    创建一个跟踪器对象,以便在进行异步跟踪调用时通过名称引用。如果未指定名称,则将为空字符串 '',表示异步语法中的默认跟踪器。 如果给定名称已有异步跟踪器,则该跟踪器将被新跟踪器覆盖。

    注意:此方法通常只有在推送到 _gaq 的函数中才安全使用。只应在极少数情况下使用。
    _gaq._createAsyncTracker('UA-65432-1');

    形参

      String accountId 跟踪器对象的完整网络媒体资源 ID(例如 UA-65432-1)。
      String opt_name用于存储跟踪器对象的名称。此名称日后用于在异步跟踪调用中引用跟踪器对象。

    返回

      Tracker 已创建的跟踪对象。

_getAsyncTracker()

    _getAsyncTracker(opt_name)
    返回之前使用指定名称创建的跟踪器对象。 如果未指定名称,则使用默认跟踪器名称(空字符串 '')。如果不存在具有指定名称的跟踪器对象,系统会创建一个新跟踪器,将其分配给该名称并返回。

    注意:此方法通常只有在推送到 _gaq 的函数中才安全使用。只应在极少数情况下使用。
    _gaq._getAsyncTracker();

    形参

      String opt_name 要检索的跟踪器对象的名称。

    返回

      Tracker 检索或创建的跟踪对象。

推送

    push(commandArray)
    执行指定的 command array,它只是一个采用以下格式的 JavaScript 数组。该数组的第一个元素必须是以字符串形式传递的跟踪器对象方法的名称。其余数组元素是作为参数传入函数的值。

    以下用法是典型的:
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-65432-1']);
    _gaq.push(['_trackPageview']);

    此函数名为 push_gaq,以便在 Analytics(分析)完全加载之前使用数组代替 _gaq。在 Google Analytics(分析)加载期间,系统会将命令推送/加入数组。Google Analytics(分析)加载完成后,会将该数组替换为 _gaq 对象,并执行所有已加入队列的命令。对 _gaq.push 的后续调用将解析到此函数,该函数会在推送命令时执行命令。

    可以通过在方法名称前添加跟踪器名称(连同点号)来为跟踪器命名。如果函数名称使用跟踪器的名称限定,则会在跟踪器上执行。

    以下示例创建了一个名为“myTracker”的跟踪器。
    var _gaq = _gaq || [];
    _gaq.push(['myTracker._setAccount', 'UA-65432-2']);
    _gaq.push(['myTracker._setDomainName', 'foo.com']);
    _gaq.push(['myTracker._trackPageview']);

    注意:跟踪器会在命令首次引用时创建。默认跟踪器通过第一个未明确指定跟踪器名称的命令创建。默认跟踪器的名称是空字符串 ''

    除了推送命令数组之外,您还可以推送函数对象。 这对返回值的跟踪器方法特别有用。这些函数可以同时引用 _gat_gaq
    var _gaq = _gaq || [];
    _gaq.push(function() {
      var tracker = _gat._getTracker('UA-65432-1');
      tracker._trackPageview();
    });

    您也可以直接在网页的 HTML 中使用推送语法。
    onclick="_gaq.push(['_trackEvent', 'name', value]);"

    只要异步 Google Analytics(分析)代码段位于链接上方,系统就会正确无误地捕获点击,即使 Google Analytics(分析)在点击时尚未完全加载也是如此。这正是异步跟踪的诸多好处之一。

    最后,您可以一次推送所有命令,而不是为每个命令数组输入 _gaq.push(...)。以下代码演示了这种方法。如需了解详情,请参阅异步代码段使用指南

    _gaq.push(
      ['_setAccount', 'UA-XXXXX-X'],
      ['_setDomainName', 'example.com'],
      ['_setCustomVar', 1, 'Section', 'Life & Style', 3],
      ['_trackPageview']
    );

      形参

        Array commandArray 要执行的命令。在同一调用中可以推送其中一项或多项。

      返回

        Number 未能执行的命令的数量。