追蹤程式碼:_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要儲存追蹤程式物件的名稱。稍後請使用這個名稱在非同步追蹤呼叫中參照追蹤器物件。

    return

      Tracker 已建立的追蹤物件。

_getAsyncTracker()

    _getAsyncTracker(opt_name)
    傳回先前以指定名稱建立的追蹤器物件。 如未指定名稱,系統會使用預設追蹤程式名稱 (空字串 '')。如果指定名稱的追蹤器物件不存在,系統會建立新追蹤程式並指派給該名稱,然後傳回。

    注意:此方法通常只能在已推送至 _gaq 的函式中使用。只有在極少數情況下才應使用。
    _gaq._getAsyncTracker();

    參數

      String opt_name 要擷取的追蹤器物件名稱。

    return

      Tracker 擷取或建立的追蹤物件。

推送

    push(commandArray)
    執行指定的 command array,這只是符合以下格式的 JavaScript 陣列。陣列的第一個元素必須是以字串形式傳送的追蹤程式方法名稱。系統會將其他陣列元素做為引數,傳遞至函式。

    一般來說,以下使用情況:
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-65432-1']);
    _gaq.push(['_trackPageview']);

    這個函式的名稱為「push」,因此在 Analytics (分析) 載入前,您可以使用陣列來取代 _gaq。在 Analytics (分析) 載入時,指令會推送/排入陣列。Analytics (分析) 完成載入後,會以 _gaq 物件取代陣列,並執行所有已排入佇列的指令。之後對 _gaq.push 的呼叫會解析為這個函式,進而在推送時執行指令。

    如要命名追蹤程式,您可以在方法名稱前方加上追蹤器名稱 (以及點)。如果函式名稱符合追蹤程式的名稱,系統會在該追蹤器上執行該函式。

    以下範例建立並採用了 mymyTracker 的追蹤工具。
    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]);"

    如果非同步 Analytics (分析) 程式碼片段位於連結上方,在系統未擷取任何點擊時,就會擷取點擊,即使 Analytics (分析) 尚未在點擊時完全載入。這是非同步追蹤的諸多優點之一。

    最後,您可以一次推送所有指令,而不必為每個指令陣列輸入 _gaq.push(...)。以下程式碼演示了這個技巧。詳情請參閱非同步程式碼片段使用指南

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

      參數

        Array commandArray 要執行的指令。其中一或多個項目可以在相同的叫用中推送。

      return

        Number 無法執行的指令數量。