追蹤程式碼:_gaq 全域物件

透過 push(...) 方法,您可以直接使用 _gaq 全域物件追蹤非同步網頁。這也提供建立追蹤器物件的方法,但僅可在極少數情況下使用。

如要進行傳統網頁追蹤,請改用 _gat 全域物件。

_gaq 物件方法

方法說明

_createAsyncTracker()

    _createAsyncTracker(accountId, opt_name)
    建立可由名稱參照的追蹤器物件,以便發出非同步追蹤呼叫。如未指定名稱,就會是空字串 '',代表採用非同步語法的預設追蹤程式。如果指定名稱已有非同步追蹤程式,則新追蹤工具會覆寫該追蹤器。

    注意:在一般情況下,只有在已推送至 _gaq 的函式內,才能使用這個方法。只有在極少數情況下才應使用這項定義。
    _gaq._createAsyncTracker('UA-65432-1');

    參數

      String accountId 追蹤程式物件的完整網站資源 ID (例如 UA-65432-1)。
      String opt_name 用於儲存追蹤器物件的名稱。稍後在非同步追蹤呼叫中,使用此名稱來參照追蹤器物件。

    returns

      Tracker 已建立的追蹤物件。

_getAsyncTracker()

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

    注意:在一般情況下,只有在已推送至 _gaq 的函式內,才能使用這個方法。只有在極少數情況下才應使用這項定義。
    _gaq._getAsyncTracker();

    參數

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

    returns

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

push

    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 會解析為這個函式,並在推送時執行指令。

    如要命名追蹤器,可以在方法名稱前面加上追蹤器名稱 (以及一個點)。如果函式名稱符合追蹤器名稱,就會在該追蹤器執行。

    以下範例建立及使用任意稱為 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]);"

    只要連結上方有非同步 Analytics (分析) 程式碼片段, 就算點擊時 Analytics (分析) 尚未完全載入,系統也不會擷取任何錯誤。這也是非同步追蹤的眾多優點之一。

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

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

      參數

        Array commandArray 要執行的指令。系統可在同一叫用中推送一或多項上述內容。

      returns

        Number 無法執行的指令數量。