Android 向け Google アナリティクス SDK v1(従来版)

Android 向けモバイルアプリ向け Google アナリティクス SDK を使用すると、Android ベースのアプリに Google アナリティクスを簡単に実装できます。このドキュメントでは、SDK をアプリに統合する方法について説明します。

SDK の概要

この SDK では、従来のウェブサイトへのアクセスと、従来のウェブページ内のウィジェットとのインタラクションをトラッキングするように設計されたトラッキング モデルを使用します。そのため、以下の用語は従来のウェブサイト トラッキング モデルを反映しており、モバイルアプリのトラッキング用に使用されています。この SDK の仕組みを理解するには、アナリティクスのトラッキングについて理解しておく必要があります。

モバイル トラッキング SDK を使用して、次の種類のアナリティクス インタラクションで通話アプリをトラッキングします。

ページビューのトラッキング
ページビューは、従来のウェブサイトへのトラフィック量を測定する標準的な方法です。モバイルアプリには HTML ページがないため、ページビュー リクエストをいつ、どのくらいの頻度でトリガーするかを決める必要があります。また、ページビュー リクエストはディレクトリ構造をレポートするように設計されているため、アナリティクスのコンテンツ レポートのページパス名を活用するには、リクエストにわかりやすい名前を付ける必要があります。選択した名前は、実際には HTML ページではないにもかかわらず、アナリティクス レポートにページパスとして入力されます。これを活用するには、パスを構成し、呼び出しごとにグループ分けします。
イベント トラッキング
アナリティクスでは、ウェブページ要素に対するユーザー インタラクションを、ページビュー リクエストとは区別してイベントでトラッキングします。Google アナリティクスのイベント トラッキング機能を使用すると、追加の呼び出しを行うことができます。この呼び出しは、アナリティクス レポート インターフェースのイベント トラッキング セクションにレポートされます。イベントはカテゴリでグループ化され、イベントごとのラベルも使用できます。これにより、レポートに柔軟に対応できます。たとえば、マルチメディア アプリでは、video カテゴリに再生/停止/一時停止アクションを設定し、各動画名にラベルを割り当てることができます。これにより、Google アナリティクスのレポートで「動画」カテゴリでタグ付けされたすべてのイベントのイベントが集計されます。イベント トラッキングの詳細については、イベント トラッキング ガイドをご覧ください。
e コマース トラッキング
e コマース トラッキング機能を使用して、ショッピング カートのトランザクションとアプリ内購入をトラッキングします。 トランザクションをトラッキングするには、Transaction クラスを使用して全体的な購入情報を表し、Item クラスを使用してショッピング カート内の各商品を表します。 収集されたデータは、Google アナリティクス管理画面の e コマース レポート セクションで確認できます。e コマース トラッキングの詳細については、e コマース トラッキング ガイドをご覧ください。
カスタム変数
カスタム変数は名前と値のペアのタグで、トラッキング コードに挿入して Google アナリティクスのトラッキングを調整できます。カスタム変数の使用方法について詳しくは、カスタム変数ガイドをご覧ください。

スタートガイド

要件

Google アナリティクスのトラッキング機能を Android アプリと統合するには、以下が必要です。

設定

  • libGoogleAnalytics.jar をプロジェクトの /libs ディレクトリに追加します。
  • プロジェクトの AndroidManifest.xml マニフェスト ファイルに次の権限を追加します。
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

SDK にはサンプル アプリケーションが含まれており、正常にセットアップされた場合にプロジェクトがどのようになるかを示しています。ご自身のアナリティクスに組み込まれたアプリのテンプレートとして自由にお使いいただけます。

SDK の使用

この SDK を使用するには、まず www.google.com/analytics で無料アカウントを作成し、偽のウェブサイトの URL(http://mymobileapp.mywebsite.com など)を使用して新しいウェブ プロパティを作成する必要があります。プロパティを作成したら、新しく作成したプロパティに対して生成されたウェブ プロパティ ID を書き留めるか、コピーを保管してください。

アプリ内でのユーザーのアクティビティを匿名でトラッキングし、報告する権限を有していることを、アプリ内でユーザーに明示する必要があります。Google アナリティクス SDK のご利用には、Google アナリティクスの利用規約も適用されます。利用規約は、アカウントの登録時に同意していただく必要があります。

サンプルとベスト プラクティス

サンプルコードとベスト プラクティスは、code.google.com のプロジェクト analytics-api-samples で確認できます。

EasyTracker ライブラリ

EasyTracker ライブラリが利用できます。アプリレベルや アクティビティ レベルのトラッキングを行う 開発作業はほとんど必要ありません。これは、analytics-api-samples プロジェクトの [Downloads] セクションにあります。

トラッカーの起動

GoogleAnalyticsTracker.getInstance() を呼び出して、トラッカーのシングルトンを取得します。次に、startNewSession メソッドを呼び出して、トラッキングするウェブ プロパティ ID とアクティビティを渡します。アプリにアクティビティが 1 つしかない場合は、アクティビティの onCreate メソッド内でこのメソッドを直接呼び出すことができます。次に例を示します。

package com.google.android.apps.analytics.sample;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this);

    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
        // scope of session-level.
        tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
        // Track a page view. This is probably the best way to track which parts of your application
        // are being used.
        // E.g.
        // tracker.trackPageView("/help"); to track someone looking at the help screen.
        // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
        // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stopSession();
  }
}

アプリケーションに複数のアクティビティがある場合は、analytics-api-samples プロジェクトのダウンロード セクションで提供されている EasyTracker ライブラリを使用できます。

ページビューとイベントのトラッキング

ページビューとイベントのトラッキングは簡単です。ページビューをトリガーするたびにトラッカー オブジェクトの trackPageView を呼び出すだけです。trackEvent を呼び出してイベントを録画します。ページビューとイベントについて詳しくは、上記の SDK の概要をご覧ください。

カスタム変数の使用

カスタム変数の追加も簡単です。モバイル SDK に用意されている setCustomVar メソッドを使用するだけです。既存の変数が上書きされないように、各カスタム変数のマッピング先をインデックス登録する予定を事前に立てておくことをおすすめします。カスタム変数について詳しくは、カスタム変数ガイドをご覧ください。setCustomVar メソッド自体はデータを直接送信しません。代わりに、次にトラッキングされるページビューまたはイベントとともにデータが送信されます。ページビューやイベントをトラッキングする前に setCustomVar を呼び出す必要があります。カスタム変数のデフォルトのスコープはページ スコープです。

e コマース トラッキングの使用

アプリケーションで e コマース トラッキングを有効にするには、次の 4 つの方法があります。

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

addTransactionaddItem を呼び出すと、トランザクションまたはアイテムが内部 e コマース バッファに追加され、さらにアイテムやトランザクションを追加できます。trackTransactions を呼び出すと、トランザクションとアイテムがディスパッチャに送信され、Google アナリティクスに送信されるキューに登録されます。

バッファをクリアするには、clearTransactions メソッドを呼び出します。注: 以前にディスパッチャに送信されたトランザクションや、Google アナリティクスですでに収集されたトランザクションはリコールされません。

次のサンプルコードで始めることができます。メソッド onPurchaseCompleted は、購入が確認または拒否されたときに呼び出されるものとします。

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   *
   * @param purchase A PurchaseObject containing all of the transaction information needed to
   *     send the ecommerce hit to Google Analytics.
   */
  public void onPurchaseCompleted(PurchaseObject purchase) {
    tracker.addTransaction(new Transaction.Builder(
        purchase.getTransactionId(),
        purchase.getTotal())
        .setStoreName(purchase.getStoreName())
        .setTotalTax(purchase.getTotalTax())
        .setShippingCost(purchase.getShippingCost())
        .build());
    for (PurchaseLineItem lineItem : purchase.getLineItems()) {
        tracker.addItem(new Item.Builder(
            purchase.getTransactionId(),
            lineItem.getItemSKU(),
            lineItem.getItemCost(),
            lineItem.getQuantity())
            .setItemName(lineItem.getItemName())
            .setItemCategory(lineItem.getItemCategory())
            .build());
    }
    if (purchase.isConfirmed()) {
      tracker.trackTransactions();
    } else {
      // The purchase was denied or failed in some way.  We need to clear out
      // any data we've already put in the Ecommerce buffer.
      tracker.clearTransactions();
    }
  }

e コマースの詳細については、e コマース トラッキング ガイドをご覧ください。

匿名 IP

ユーザー IP 情報を匿名化するには、setAnonymizeIp メソッドを使用します。 これにより、Google アナリティクスでは、IP アドレスを保存する前にアドレスの最後のオクテットを削除することで、SDK から送信された情報を匿名化します。

いつでも setAnonymizeIp に電話できます。

サンプルレートの設定

setSampleRate メソッドを使用して、サンプルレートを設定できます。アプリケーションで大量のアナリティクス トラフィックが生成されている場合、サンプルレートを設定すると、サンプリング データを使用してレポートを生成できなくなることがあります。サンプリングはユニーク ユーザー全体で一貫して行われるため、サンプルレートを有効にすると傾向とレポートに整合性が保たれます。 setSampleRate メソッドは int パラメータを 1 つ受け取ります。このパラメータの有効な値は、0 ~ 100 の任意の整数です。

レートが 0 の場合はヒットの生成がオフになり、レートが 100 の場合はすべてのデータが Google アナリティクスに送信されます。 トラッキング メソッドを呼び出す前に、setSampleRate を呼び出すことをおすすめします。

サンプリングの詳細については、サンプリングのコンセプト ガイドをご覧ください。

ヒットのバッチ処理

接続とバッテリーのオーバーヘッドを節約するため、トラッキング リクエストは一括処理することをおすすめします。バッチ リクエストを行う際はいつでもトラッキング オブジェクトの dispatch を呼び出すことができます。また、手動で、または特定の時間間隔で呼び出します。

既知の問題

  • 別のスレッドで GoogleAnalyticsTracker メソッドを呼び出すと、わかりにくいエラーが発生する可能性があります。すべての呼び出しを同じスレッドから行ってください。
  • キャンペーンのトラッキング

    この SDK では、2 種類のキャンペーン トラッキングがサポートされています。

    - Google Play キャンペーン トラッキング - Google Play を介したインストール参照を追跡できます。
    - 一般的なキャンペーン トラッキング - ユーザーをアプリケーションに誘導したキャンペーンをトラッキングできます。

    Google Play キャンペーン トラッキング

    Android 1.6 OS リリースでは、Google Play へのダウンロード リンクでの referrer URL パラメータの使用がサポートされています。Android 向け Google アナリティクス SDK では、このパラメータを使用して、アプリケーションのキャンペーン情報が Google アナリティクスに自動的に入力されます。これにより、アプリのインストール元を記録し、今後のページビューやイベントと関連付けることができます。これは、アプリの特定の広告の効果の測定などに役立ちます。

    参照トラッキングが機能するためには、プロジェクトの AndroidManifest.xml マニフェスト ファイルに次のコード スニペットを追加する必要があります。

    <!-- Used for install referrer tracking -->
    <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
    </receiver>
    

    Google Play で Google アナリティクスのキャンペーン トラッキングを設定するには、下の URL 生成ツールを使用して参照リンクを生成します。リンクを使用して、ユーザーをアプリケーションに誘導します。Analytics SDK では、参照情報を自動的に解析して記録し、アナリティクス レポートに追加します。

    参照リンクの生成には、Google Play キャンペーン URL 生成ツールを使用できます。[パッケージ名]、[キャンペーンの参照元]、[キャンペーンのメディア]、[キャンペーン名] は入力必須です。各パラメータの詳細については、下のをご覧ください。

    一般的なキャンペーン トラッキング

    Android 向け Google アナリティクス SDK のバージョン 1.3 では、Google Play 以外のソースのキャンペーンをトラッキングできるようになりました。 たとえば、広告内のリンクからアプリが起動されたことを確認したい場合は、アプリの起動につながったインテントのキャンペーン参照情報を確認して、そのキャンペーン情報を Google アナリティクスに保存できます。

    キャンペーンの参照情報を設定するには、次のように setReferrer メソッドを使用します。

      tracker.setReferrer(referrer);
    

    この機能の使用には 2 つの制限があります。まず、setReferrer を呼び出す前に startNewSession を呼び出す必要があります。これが必要になるのは、Google アナリティクスで使用される SQLite データベースが、startNewSession を呼び出す前にセットアップされておらず、setReferrer がそのデータベースを必要とするためです。startNewSession を呼び出していない場合は、IllegalStateException が返されます。

    2 つ目の制限は、setReferrer に渡される参照文字列が特定の形式に従う必要があることです。URL パラメータのセットの形式をとり、gclid パラメータを少なくとも 1 つ、または utm_campaign、utm_medium、utm_source をそれぞれ 1 つずつ含める必要があります。後者の場合は、utm_term パラメータと utm_content パラメータを指定することもできます。

    gclid パラメータは、Google アナリティクスを Google 広告に自動的にリンクする自動タグ設定機能の一部です。自動タグ設定を使用したキャンペーンの参照の例を次に示します。

    referrer = “gclid=gclidValue”;
    

    手動キャンペーンの参照文字列は、次のようになります。

    referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    不正な形式の参照 URL 文字列を setReferrer に渡しても、参照 URL 情報は変更されず、戻り値は false になります。戻り値 true は、参照 URL が更新され、それ以降のすべてのヒットに追加されたことを示します。

    また、setReferrer を呼び出し、true を返すと、新しいセッションが開始されます。

    パラメータ 必須 説明
    utm_campaign はい キャンペーン名: キーワード分析で特定の商品プロモーションやキャンペーンを特定するために使用します。 utm_campaign=spring_sale
    utm_source はい キャンペーンの参照元: 検索エンジンやニュースレターなどの参照元を特定するために使用します。 utm_source=google
    utm_medium はい キャンペーンのメディア: メールやクリック単価制(cpc)などのメディアを特定するために使用します。 utm_medium=cpc
    utm_term × キャンペーンのキーワード: 広告にキーワードを設定している有料検索で使用します。 utm_term=running+shoes
    utm_content × キャンペーンのコンテンツ: A/B テストやコンテンツ ターゲット広告で、同じ URL を参照する広告やリンクを区別するために使用します。 utm_content=logolink
    utm_content=textlink