在智慧手環上取得及設定欄位資料有時需要參照追蹤器物件本身。由於新增至 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
物件本身。這時可以使用 getByName
和 getAll
這兩種方法存取追蹤器物件。
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');
以下範例同時設定 page
和 title
欄位:
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 (分析) 進行處理。