2013 年 12 月 1 日

アンドロイドアプリにGoolge Analytics SDKを組み込む

ウェブサイトのアクセス計測と同様にアプリ内のアクティビティやイベントの計測をGoogle Analyticsで行うことができます。また、どこからアプリが認知されてインストールされたかも設定次第で計測可能です(Google Play Campaign Measurement)。

この記事では、アクティビティの表示回数やボタンのタップされた回数などの計測方法ご紹介します。簡単な計測なら、すぐに組み込むことができます。

アプリ内でのユーザーの行動を把握すれば、今後の機能改善や機能追加に役立ちます。アプリを公開するなら、Google Analytics SDKは、是非とも組み込んでおきたいSDKのひとつです。

SDKの入手方法

以下のサイトから入手するか、EclipseのAndroid SDK Mangerからもダウンロードできます。また、Google Analyticsでモバイル用のプロパティを作成した後にも、ダウンロードを促すページが表示されますので、そこからもダウンロードできます。現時点(13/11/26)ではv3.01が最新となっています。

Android Native Application Tracking Overview

ライブラリをインポート

ダウンロードしたzipファイルを展開して、libGoogleAnalyticsServices.jarをプロジェクトの./libsへインポートします。

マニフェスト

プロジェクトのマニフェストに、以下のパーミッションが必要です。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

XMLファイル

以下のようなAnalytics用のXMLファイルを作成します。このファイルにトラッキングIDを設定します。このファイルはres/values/analytics.xmlというファイルで保存します。UA-xxxxxxx-xxのところは、プロパティのIDを設定してください。

<?xml version="1.0" encoding="utf-8" ?>

<resources>
  <!--Replace placeholder ID with your tracking ID-->
  <string name="ga_trackingId">UA-xxxxxxx-xx</string>

  <!--Enable automatic activity tracking-->
  <bool name="ga_autoActivityTracking">true</bool>

  <!--Enable automatic exception tracking-->
  <bool name="ga_reportUncaughtExceptions">true</bool>  
</resources>

アクティビティのライフサイクルにEasyTrackerメソッドを追加

簡単にアクティビティ計測するなら、各アクティビティのonStart,onStopライフサイクルメソッドに以下のようにEasyTrackerメソッドを追加します。

共通のアクティビティを一つ作って、このクラスのライフサイクルメソッドに組み込んでおいて、計測したいアクティビティはそこから派生するようにしておくと、後々メンテナンスが楽になります。

  @Override
  protected void onStart() {
    super.onStart();
    EasyTracker.getInstance(this).activityStart(this);  // Add this method.
  }
  
  @Override
  protected void onStop() {
    super.onStop();
    EasyTracker.getInstance(this).activityStop(this);  // Add this method.
  }

これだけで、Google Analyticsレポートの行動->スクリーンで確認できるようになります。スクリーン名はアクティビティのクラス名が表示されます。

イベントの計測

私は、ボタンを押した回数の計測、アクティビティ内のフラグメント移動回数などは、イベントを使っています。

protected void trackEvent(String label) {
  EasyTracker easyTracker = EasyTracker.getInstance(mContext);

   // MapBuilder.createEvent().build() returns a Map of event fields and values
   // that are set and sent with the hit.
   easyTracker.send(
       MapBuilder.createEvent(
           "ui_action",   // Event category (required)
           "action",  // Event action (required)
           label,         // Event label
           null           // Event value
       ).build()
   );        
}

カテゴリー、アクション、ラベルは任意のものが利用できます。計測したいものを分類しておくとレポートが見やすくなります。計測結果は、Google Analyticsレポートの行動->イベント->サマリーで確認できます。

関連記事

  1. iOSアプリにGoolge Analytics SDKを組み込む