analytics.js 的運作方式

使用 analytics.js 進行評估時,幾乎一切都能透過 ga() 指令佇列完成。本指南將說明指令佇列的定義、運作方式,以及如何執行指令來評估使用者互動。

ga 指令佇列

Google Analytics (分析) 代碼定義了全域的 ga 函式,稱為「指令佇列」。之所以稱為指令佇列,是因為系統不會立即執行收到的指令,而是會將這些指令加入佇列,等到 analytics.js 程式庫完全載入後再執行。

在 JavaScript 中,函式也是物件,表示可包含屬性。Google Analytics (分析) 代碼會將 ga 函式物件的 q 屬性定義為空白陣列。在載入 analytics.js 程式庫之前,呼叫 ga() 函式會將傳送至 ga() 函式的引數清單附加至 q 陣列的結尾。

舉例來說,如果執行 Google Analytics (分析) 代碼,然後立即將 ga.q 的內容記錄到控制台,就會看到陣列 (長度為兩個項目),其中包含已傳遞至 ga() 函式的兩組引數:

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

載入 analytics.js 程式庫後,會檢查 ga.q 陣列的內容,並依序執行每個指令。之後,系統會重新定義 ga() 函式,因此所有後續呼叫都會立即執行。

這個模式可讓開發人員使用 ga() 指令佇列,不必擔心 analytics.js 程式庫是否已完成載入。它提供簡單的同步介面,能抽取出大多數複雜的非同步程式碼。

新增指令至佇列

所有對 ga() 指令佇列的呼叫都會共用一個通用簽章。第一個參數「command」是識別特定 analytics.js 方法的字串。其他任何參數都是傳遞至該方法的引數。

特定指令參照的方法可以是全域方法 (例如 create)、ga 物件上的方法,也可以是追蹤器物件上的執行個體方法 (例如 send)。如果 ga() 指令佇列收到無法辨識的指令,會直接忽略,因此呼叫 ga() 函式非常安全,因為大多數情況下都不會導致錯誤。

如需可透過指令佇列執行的所有指令完整清單,請參閱 ga() 指令佇列參考資料

指令參數

大部分 analytics.js 指令 (及其對應方法) 接受多種不同格式的參數。這是為了方便你傳送常用欄位到特定方法。

舉例來說,假設 Google Analytics (分析) 代碼中的兩個指令:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

在第一個指令中,create 接受 trackingIdcookieDomainname 欄位,可視需要分別指定為第二、第三和第四個參數。send 指令接受選用的 hitType 第二個參數。

所有指令都接受最終的 fieldsObject 參數,可用來指定任何欄位。舉例來說,標記中的上述兩個指令可重新撰寫為:

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

如需各個指令可使用的選用參數完整清單,請參閱 ga() 指令佇列參考資料

後續步驟

閱讀本指南後,您應該熟悉如何使用 analytics.js 執行指令,以及指令佇列的運作方式。下一份指南將說明如何建立追蹤器物件