このドキュメントでは、Google Analytics SDK for Android v2 の高度な構成機能の一部について説明します。
概要
Android 向け Google アナリティクス SDK では、実装のグローバルな状態を管理するために 2 つのクラスを使用し、Google アナリティクス サーバーにデータを送信します。EasyTracker は、以下のクラスをラップして、シンプルな設定とセッション管理を提供しています。
GoogleAnalytics
-Tracker
オブジェクトの取得など、実装のグローバル状態を処理するシングルトン。Tracker
- Google アナリティクスにデータを送信するクラス。
たとえば、シンプルな 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"); } }
複数のトラッカーの使用
SDK バージョン 2 では、複数のトラッキング ID を 1 つの実装で使用できるようになりました(固有のトラッキング ID ごとに 1 つ)。すべてのトラッカーは、GoogleAnalytics
シングルトンが保持するのと同じグローバル状態を共有します。
次の例では、スクリーン ビューがそれぞれ固有のプロパティ ID を持つ 2 つのトラッカーを使用して、2 つの別々のプロパティに送信されます。
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 機能を使用し、他のトラッカーからデータを送信する場合は、手動で行う必要があります。
デフォルト トラッカー
実装では複数のトラッカーを使用できますが、グローバルにはデフォルトのトラッカーが 1 つあります。最初に取得された 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 アナリティクスに送るヒット数を制限することができます。アプリのユーザー数が極めて多い場合や、Google アナリティクスに送るデータが膨大な場合は、サンプリングを行うことで間断なくレポート作成を継続できるようになります。
たとえば、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 アナリティクスが無効になります。このフラグを設定すると、アプリのサポート終了まで、またはリセットされるまで存続します。
アプリ単位のオプトアウト設定を取得するには、次のコードを使用します。
// 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 アナリティクス SDK には、Google アナリティクスに送信されるデータに関する有用な情報をログに出力するデバッグモードが用意されています。
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 に出力されます。