tsurutanのつぶやき

備忘録としてつぶやきます

google analytic の実装方法 - Android

f:id:tsurutan:20150515121234p:plain

この記事ではAndroid Studioを使ってgoogle analytics を実装する方法を紹介します。

1. ライブラリーをインストール

以前までは

compile 'com.google.android.gms:play-services:7.3.0'

という感じでplay servece自体をそのまま入れていましたが、これでは必要ない機能(google fitやgoogle mapsなど)が多く入っているので今回は

com.google.android.gms:play-services-analytics:7.3.0

を使うようにしましょう。これにより65k問題を防ぐことができます。

2. Application作成

次に以下のようにしてApplicationを作りましょう。

public class AnalyticsSampleApp extends Application {

  private static final String PROPERTY_ID = "UA-XXXXX-Y";

  public enum TrackerName {
    APP_TRACKER,
  }

  HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

  public AnalyticsSampleApp() {
    super();
  }
  synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      Tracker t = analytics.newTracker(PROPERTY_ID);
      mTrackers.put(trackerId, t);

    }
    return mTrackers.get(trackerId);
  }
}

あらかじめGoogle Analytics に登録しておき、そこで入手したトラッキングIDを PROPERTY_ID にセットしましょう。

3. データの送信と設定

  • スクリーンビュー送信

スクリーンビューを送信するときには以下の様なコードを送りたいActivityまたはFragmentに設定します。

        Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
            TrackerName.APP_TRACKER);

        t.setScreenName(screenName);

        t.send(new HitBuilders.AppViewBuilder().build());

スクリーンビューを送る以下にもカテゴリーやアクション、ラベルなどを設定して送信することができます。

        Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
            TrackerName.APP_TRACKER);

        t.setScreenName(screenName);

        t.send(new HitBuilders.EventBuilder()
            .setCategory(getString(categoryId))
            .setAction(getString(actionId))
            .setLabel(getString(labelId))
            .build());

4. サンプリング

Google アナリティクスに送るヒット数を制限することにより、間断なくレポート作成を継続できるようになります。 例えば半数にユーザー情報を取得したいときには

<string name="ga_sampleFrequency">50.0</string>
mTracker.setSampleRate(50.0d);

と設定すればできます。

5. テスト

テストを行う際にGoogle Analyticsに情報を送りたくない時には以下のようなコードを加えます。

GoogeAnalytics.getInstance(this).setDryRun(true);

以上になります。みなさんお疲れ様でした!