取得及設定欄位資料

取得和設定追蹤器上的欄位資料有時需要有追蹤器物件本身的參照。由於新增至 ga() 指令佇列的指令會以非同步方式執行,也不會傳回值。此外,由於追蹤程式通常是使用 create 指令建立,因此要等到 create 指令執行後,才能取得追蹤器物件的參照。您可以透過現成回呼執行這項操作。

準備就緒的回呼

「Ready 回呼」是可新增至 ga() 指令佇列的函式。完整載入 analytics.js 程式庫,並執行之前新增至佇列的所有指令後,系統會立即叫用此函式。

由於佇列中的所有指令都會依序執行,因此,請在新增 create 指令後,將就緒的回呼加入佇列,以確保在追蹤器建立後執行準備就緒的回呼。如果已在叫用就緒回呼時建立預設追蹤程式,會將其做為回呼的第一個 (且僅限) 引數傳遞。

以下程式碼顯示如何存取預設追蹤器物件,並將其記錄至控制台:

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

ga(function(tracker) {
  // Logs the tracker created above to the console.
  console.log(tracker);
});

透過 ga Object 方法取得追蹤器

如果未使用預設追蹤程式,或網頁上有多個追蹤器,可以透過其中一種 ga 物件方法存取這些追蹤程式。

完全載入 analytics.js 程式庫後,會將其他方法新增至 ga 物件本身。這兩種方法 getByNamegetAll 都是用於存取追蹤器物件。

getByName

如果您知道要存取的追蹤器名稱,可以使用 getByName 方法:

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

ga(function() {
  // Logs the "myTracker" tracker object to the console.
  console.log(ga.getByName('myTracker'));
});

getAll

如要取得所有已建立追蹤程式的陣列,請使用 getAll 方法:

ga('create', 'UA-XXXXX-Y', 'auto', 'tracker1');
ga('create', 'UA-XXXXX-Z', 'auto', 'tracker2');

ga(function() {
  // Logs an array of all tracker objects.
  console.log(ga.getAll());
});

取得儲存在追蹤器中的資料

取得追蹤器物件的參照後,您可以使用其 get 方法,存取目前儲存在追蹤器上任何欄位的值。

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

ga(function(tracker) {
  // Logs the trackers name.
  // (Note: default trackers are given the name "t0")
  console.log(tracker.get('name'));

  // Logs the client ID for the current user.
  console.log(tracker.get('clientId'));

  // Logs the URL of the referring site (if available).
  console.log(tracker.get('referrer'));
});

更新資料

您可以使用 set 方法更新追蹤器物件。只要在追蹤程式物件上呼叫追蹤器的 set 方法,或是將 set 指令新增至 ga() 指令佇列即可。

要取得追蹤器物件的參照,必須使用就緒的回呼,因此建議您使用 ga() 指令佇列來更新追蹤器。

ga() 指令佇列

叫用 set 指令的方法有兩種:傳遞兩個參數、欄位及其對應的值,或是傳遞欄位/值組合的物件。

以下範例會在預設追蹤器上將 page 欄位設為 '/about'

ga('set', 'page', '/about');

以下範例會同時設定 pagetitle 欄位:

ga('set', {
  page: '/about',
  title: 'About Us'
});

使用具名追蹤器

如果您使用的是具名追蹤器,而非預設追蹤程式,可以在指令字串中傳送其名稱。

以下呼叫會設定名為「myTracker」的追蹤器上的 page 欄位:

ga('myTracker.set', 'page', '/about');

在追蹤器物件本身上

如有追蹤追蹤器物件的參照,可以直接呼叫該追蹤器的 set 方法:

ga(function(tracker) {
  tracker.set('page', '/about');
});

AND 語法

追蹤程式欄位通常會用其欄位名稱進行取得和設定。(如需 analytics.js 欄位及其名稱的完整清單,請參閱欄位參考資料。)

取得及設定欄位的另一種方式,是透過對應的 Measurement Protocol 參數名稱名稱來參照這些欄位。

舉例來說,下列兩個 console.log 運算式都會將文件標題記錄到控制台:

ga(function(tracker) {
  // Gets the title using the analytics.js field name.
  console.log(tracker.get('title'));

  // Gets the title using the measurement protocol
  // parameter name, prefixed with an ampersand.
  console.log(tracker.get('&dt'));
});

一般來說,我們不建議使用 & 語法,只有在沒有 Measurement Protocol 參數的 analytics.js 欄位名稱時才能使用 (如果 Measurement Protocol 中有新功能後才導入 analytics.js,就會發生這種情況)。

後續步驟

現在您已瞭解如何建立追蹤程式並更新其中儲存的資料,下一步就是如何將資料傳送至 Google Analytics (分析) 以供處理。