Tips : Google Analytics V4を使ってScreen Viewを取得してみる

ほぼ公式サイトの内容そのままですが、Google Analyticsを使ってみたので、メモしておきます。 最新はV4で、公式サイトはこちらになります。

この記事では、Google Analyticsのサービスに登録し、Property IDを取得してあることを前提としてます。

Google Analytics V4 ライブラリを組み込む

Google Analytics V4はGoogle Play services SDKに含まれています。これまでは別途Analytics用ライブラリが配布されていたようですが、V4からはSDK Managerから最新版のPlay Serviceを導入することで利用できるようです。

Google Play servicesを利用するには、まずGoogle RepositoryGoogle Support Repositoryをインストールする必要があります。

f:id:tomoyukim:20140720193702p:plain

SDK ManagerのExtraからGoogle RepositoryGoogle Support Repositoryを選択してインストールします。 Google Play serviceがサポートライブラリに依存しているため、その解決のためにGoogle Support Repositoryが必要になります。

Gradleで依存関係を解決するには、build.gradleに下記のように指定します。

dependencies {
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.google.android.gms:play-services:5.0.77'
}

Android StudioではGradleを使って依存関係を解決してくれます。先ほどダウンロードしたローカルリポジトリが参照されるため、ここではGoogle Play servicesを直接SDK Managerからダウンロードする必要はありません。

Trackerの準備をする

V3を入れてみたときは、EasyTrackerが簡単なScreen Viewを取得する例だったのですが、V4だとApplicationクラスにTrackerを取得するためのコードを記載して、同一アプリ内からTrackerを取得して収集するという形が推奨されています。

公式サイトの例よりちょっと省略します。

public class AnalyticsApplication extends Application{

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

    Tracker mTracker;

    public AnalyticsApplication() {
        super();
    }

    synchronized Tracker getTracker() {
        if (mTracker == null) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            mTracker = analytics.newTracker(PROPERTY_ID);
        }
        return mTracker;
    }
}

GoogleAnalytics#newTracker()の引数に取得しておいたProperty IDを指定します。

AndroidManifest.xmlに、下記を追記します。上記で作成した独自Applicationクラスを継承し、Analyticsが要求するPermissionを指定します。

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

  <application android:name=".AnalyticsApplication"
           android:label="@string/app_name"
           android:icon="@drawable/ic_launcher" >
    ....
  </application>

これで、Trackerの準備ができました。

Screen Viewを取得する

取得したいスクリーンでTrackerを取得し、情報を送信します。

    @Override
    protected void onStart() {
        super.onStart();
        // Get tracker.
        Tracker t = ((AnalyticsApplication) getApplication()).getTracker();

        // Set screen name.
        // Where path is a String representing the screen name.
        t.setScreenName("MyActivity");

        // Send a screen view.
        t.send(new HitBuilders.AppViewBuilder().build());
    }

上の例ではActivityのonStart()のタイミングでMyActivityというスクリーンを送付しています。

これで完了です。実際に実記にインストールし、データが送付できているか試してみましょう。 何度か対象のActivityに入ったり出たりした後、Google AnalyticsサイトのBehavior > Screensのページを確認します。 自分が送付したScreenName(ここでは"MyActivity")と表示回数が表示されていれば成功です。

まとめ

Google AnalyticsはV4からlibを手動で組み込まなくてよいので、バージョン追従とか依存解決とか楽になるのでいい感じです。

この記事ではダウンロードしなかった、Google Play servicesSDK Managerからダウンロードするとサンプルコードが読めます。 サンプルは、<android sdk root>/extras/google/google_play_services/samples/analytics以下にダウンロードされます。 Screen View以外の実装もされていて、APKにして自分のProperty IDで動作させるといろいろ動作確認できるので参考になります。