進階設定 - Android SDK v2 (舊版)

本文件會概略介紹 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 中列印。