アプリ内のユーザー解析のために積極的に利用すべきサービス「Google Analytics」をAndroidアプリに仕込む際の手順をまとめました。

手順は以下の通り。

  1. Googleアカウントを作成する。
  2. Google Analyticsにログインする。
  3. Google Analytics SDK for Androidをダウンロードする。(v3 (legacy) における一例です)
  4. トラッキングIDをメモる(UA-XXXXXXXX-Xみたいなやつ)
  5. アプリのプロジェクトのlibsフォルダに3.でダウンロードしたlibGoogleAnalyticsServices.jarを入れる。(v3 (legacy) における一例です)
  6. resフォルダ内のvaluesフォルダにanalytics.xmlというファイルを作成し、以下の様に記述する。

    <?xml version="1.0" encoding="utf-8"?>
        <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
    
            <!-- Replace placeholder ID with your tracking ID -->
            <string name="ga_trackingId">UA-XXXXXXXX-X</string>(←4.でメモったトラッキングIDを入れる)
    
            <!-- Enable automatic activity tracking -->
            <bool name="ga_autoActivityTracking">true</bool>
    
            <!-- Enable automatic exception tracking -->
            <bool name="ga_reportUncaughtExceptions">true</bool>
    
        </resources>
    
  7. AndroidManifest.xmlに以下のpermissionを追加する。

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

以上で準備は完了です。

「スクリーンビュー」「イベント」を取得するときの実際のコードの書き方をそれぞれ下記に記します。

スクリーンビューを取るとき

以下のコードをスクリーンビューを取りたいActivityやFragmentのonStart()内に記述します。

Tracker easyTracker = EasyTracker.getInstance(this);

easyTracker.set(Fields.SCREEN_NAME, "スクリーンの名前");

easyTracker.send(MapBuilder
    .createAppView()
    .build()
);

イベントを取るとき

イベントの場合Category,Action,Label,Valueの4つの値を取得する事ができます。 Category,Action,LabelはString型、ValueはLong型となり、Category,Actionは必須、Label,Valueは任意の項目となっています。 例えばボタンを押したイベントを取りたいときは、そのボタンのonClick()内に以下の様なコードを記述します。

@Override
public void onClick(View v) {
    EasyTracker easyTracker = EasyTracker.getInstance(this);

    easyTracker.send(MapBuilder
        .createEvent("イベントカテゴリ名",
                    "イベントアクション名",
                    "イベントラベル名",
                    イベントバリュー)
        .build()
    );
}

この様なクラスを作ったら楽チンでした。

public class GoogleAnalyticsUtil {
    Context mContext;

    public GoogleAnalyticsUtil(Context context) {
        mContext = context;
    }

    /**
        * GoogleAnalyticsにスクリーンビューを送る
        *
        * @param screenName
        */
    public void sendScreenView(String screenName) {
        Tracker easyTracker = EasyTracker.getInstance(mContext);
        easyTracker.set(Fields.SCREEN_NAME, screenName);
        easyTracker.send(MapBuilder.createAppView().build());
    }

    /**
        * GoogleAnalyticsにイベントを送る
        *
        * @param eventCategory
        * @param eventAction
        * @param eventName
        * @param eventValue
        */
    public void sendEvent(String eventCategory, String eventAction, String eventName, long eventValue) {
        Tracker easyTracker = EasyTracker.getInstance(mContext);
        easyTracker.send(MapBuilder
                .createEvent(eventCategory, eventAction, eventName, eventValue)
                .build()
                );
    }
}

以上です。


本記事はアイリッジブログで公開していたものをエンジニアリングブログとして再構成したものとなります。記事の内容は、記事執筆当時のものと異なる可能性があります。