取得及設定欄位資料

在智慧手環上取得及設定欄位資料有時需要參照追蹤器物件本身。由於新增至 ga() 指令佇列的指令會同步執行且不會傳回值,而且追蹤工具通常是使用 create 指令建立,因此如要取得追蹤工具物件的參照,必須等到執行 create 指令之後才能取得。您可以透過就緒的回呼執行這項操作。

適用的回呼

就緒的回呼是可以新增至 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 物件方法取得追蹤工具

如果未使用預設追蹤程式,或是網頁上有多個追蹤程式,可以透過其中一種 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'));
});

一般來說,我們不建議使用 AND 語法,而且只有在 Measurement Protocol 參數的 analytics.js 欄位名稱不存在時才可使用 (這種情況有時會發生,如果在 Measurement Protocol 導入新功能之前就先加入 analytics.js 代碼,就會發生這種情況)。

後續步驟

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