ディスパッチ - Android SDK v2(レガシー)

このドキュメントでは、Android 向け Google アナリティクス SDK v2 を使って、Google アナリティクスへのデータ送信を管理する方法について説明します。

概要

Android 向け Google アナリティクス SDK では、収集されたスクリーン ビューやイベントなどのデータは、Google アナリティクスのサーバーに送信される前にローカルのキューに保存されます。こうしたデータ(ここでは「ヒット」)が SDK から Google アナリティクスに送信されるプロセスを「ディスパッチ」と呼びます。

ディスパッチはモバイル コレクション ライブラリに固有のものであり、信頼性の低いネットワーク アクセスやバッテリー駆動時間の制限という課題を軽減するように設計されています。

ディスパッチには次の 2 種類があります。

  • 定期的なディスパッチ - プログラムまたは analytics.xml ファイルで指定した定期的な間隔で自動的にヒットを送信します。
  • 手動ディスパッチ – 既存の HTTP 接続がある場合など、都合のよいときに手動でヒットをディスパッチしてデータを送信できます。

どちらのタイプのディスパッチも、バージョン 2 の SDK ではメイン UI スレッド外から発生します。

このドキュメントの残りの部分では、各タイプのディスパッチと、アプリにディスパッチする方法について詳しく説明します。

定期的なディスパッチ

アプリで Google アナリティクスのデータが収集されると、そのデータがキューに追加され、Google アナリティクスに定期的にディスパッチされます。定期的なディスパッチは、アプリがフォアグラウンドまたはバックグラウンドで実行されているときに行われます。

デフォルトのディスパッチ期間は 30 分です。独自の間隔を秒単位で指定するには、analytics.xml ファイルで ga_dispatchPeriod パラメータを使用するか、次の例のように setDispatchPeriod(int dispatchPeriodInSeconds) を呼び出します。

analytics.xml ファイルに以下の行を追加します。

<integer name="ga_dispatchPeriod">60</integer>

プログラムで行う場合:

GAServiceManager.getInstance().setDispatchPeriod(60);

負の値を設定すると定期的なディスパッチが無効になるため、Google アナリティクスにデータを送るには手動でのディスパッチが必要になります。一方、値を 0 に設定すると、ネットワーク接続が利用可能なときに各ヒットがすぐにディスパッチされます。

すべてのヒットがディスパッチされると、定期的なディスパッチは省電力モードに入り、別の send 呼び出しが行われるまで無効になります。

ディスパッチを待つヒットが残っている間に、ネットワーク接続が切れたり、ユーザーが アプリを終了したりした場合、残りのヒットはローカル ストレージで保持され、次にアプリが起動するか、ディスパッチが呼び出されたときにディスパッチされます。

手動によるディスパッチ

ヒットを定期的にディスパッチする以外に、手動でディスパッチすることもできます。たとえば、ディスパッチをアプリケーションによる他の HTTP リクエストとバンドルして、オーバーヘッドを削減できます。

ヒットは、GAServiceManager インスタンスを使用して手動でディスパッチできます。

GAServiceManager.getInstance().dispatch();