本文件會概略介紹 Android 適用的 Google Analytics (分析) SDK v2 的部分進階設定功能。
總覽
Android 版 Google Analytics (分析) SDK 使用兩個類別來管理實作的全域狀態,以及將資料傳送至 Google Analytics (分析) 伺服器。EasyTracker 會包裝這些類別,以提供簡化的設定和工作階段管理:
GoogleAnalytics
:處理實作全域狀態的單例模式,包括取得Tracker
物件。Tracker
- 您要傳送資料給 Google Analytics (分析) 的類別。
例如,如要評估簡易 Activity
的檢視畫面:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private Tracker mGaTracker; private GoogleAnalytics mGaInstance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. Note that the SDK uses // the application context to avoid leaking the current context. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get a Tracker. mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID. ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view when the Activity is displayed to the user. mGaTracker.sendView("/HomeScreen"); } }
使用多個追蹤器
自第 2 版 SDK 起,您可以在單一實作中使用多個追蹤程式,每個專屬追蹤 ID 各有一個追蹤程式。所有追蹤器都會共用您的 GoogleAnalytics
單例模式所持有的全域狀態。
在以下範例中,使用兩個追蹤程式 (每個有專屬的資源 ID) 的追蹤程式,將畫面瀏覽傳送至兩個不同的資源:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private GoogleAnalytics mGaInstance; private Tracker mGaTracker1; private Tracker mGaTracker2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get two Trackers with // unique property IDs. mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y"); mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z"); ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user. mGaTracker1.sendView("/HomeScreen"); // Send another screen view to the second property, "UA-XXXX-Z". mGaTracker2.sendView("/Home"); } }
請注意,EasyTracker 提供的自動評估功能只會使用預設追蹤程式發出呼叫。如果您目前使用這些 EasyTracker 功能,並希望使用其他追蹤器傳送資料,則必須手動執行。
預設追蹤器
雖然實作可能會使用多個追蹤程式,但全域上只有一個預設追蹤器。第一個擷取的 Tracker
會成為預設追蹤程式。
如要取得預設追蹤器,請使用:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get default tracker. Tracker myDefault = myInstance.getDefaultTracker();
若要設定預設追蹤器,請使用:
// First get a tracker using a new property ID. Tracker newTracker = myInstance.getTracker("UA-XXXX-2"); // Then make newTracker the default tracker globally. myInstance.setDefaultTracker(newTracker);
分派
調度設定是由 GAServiceManager
單例模式管理。如要設定調度期間,請按照下列步驟操作:
// Set dispatch period to 30 seconds. GAServiceManager.getInstance().setDispatchPeriod(30);
如何在排定的間隔時間外手動分派:
// Manually dispatch any queued hits. GAServiceManager.getInstance().dispatch();
取樣
您可以啟用用戶端取樣功能,限制傳送至 Google Analytics (分析) 的命中次數。如果應用程式的使用者人數較多,或是以其他方式傳送大量資料至 Google Analytics (分析),啟用取樣功能可確保報表資料不會中斷。
舉例來說,如要透過 EasyTracker 和 XML 以 50% 的速率啟用用戶端取樣,請在 analytics.xml 檔案中使用以下參數:
<string name="ga_sampleFrequency">50.0</string>
您也可以透過程式輔助方式啟用用戶端取樣:
// Get tracker from singleton. GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this); Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID. // Set a sample rate of 50%. tracker.setSampleRate(50.0d);
在應用程式層級選擇不採用
您可以啟用應用程式層級的選擇不採用標記,藉此停用整個應用程式的 Google Analytics (分析)。設定之後,該標記會在應用程式生命週期內持續有效,直到您重設為止。
如要取得應用程式層級的停用設定,請使用:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get the app opt out preference using an AppOptOutCallback. myInstance.requestAppOptOut(new AppOptOutCallback() { @Override public void reportAppOptOut(boolean optOut) { if (optOut) { ... // Alert the user that they've opted out. } }); }
如要設定應用程式層級的選擇不採用標記,請使用:
myInstance.setAppOptOut(appPreferences.userOptOut);
測試和偵錯
Android 版 Google Analytics (分析) SDK 提供偵錯模式,方便您查看記錄檔中傳送至 Google Analytics (分析) 的實用資訊。
如要使用 EasyTracker 啟用偵錯模式,請在 analytics.xml
資源檔案中加入以下內容:
<bool name="ga_debug">true</bool>
如要透過程式輔助方式啟用偵錯模式,請使用:
// Get singleton using application context. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Enable debug mode. myInstance.setDebug(true);
輸出內容會使用 GAV2
標記在 logcat 中列印。