取得和設定追蹤器上的欄位資料有時需要有追蹤器物件本身的參照。由於新增至 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
物件本身。這兩種方法 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'));
});
一般來說,我們不建議使用 & 語法,只有在沒有 Measurement Protocol 參數的 analytics.js 欄位名稱時才能使用 (如果 Measurement Protocol 中有新功能後才導入 analytics.js,就會發生這種情況)。
後續步驟
現在您已瞭解如何建立追蹤程式並更新其中儲存的資料,下一步就是如何將資料傳送至 Google Analytics (分析) 以供處理。