AndroidにGoogle Analytics v4を導入する

GoogleAnalytics v4をAndroidに導入してみました。

アプリの利用状況なんかがわかるのはすごくいいので、是非アプリ公開前にはGoogleAnalyticsを導入してみてはいかがでしょうか？
ではさっそく忘れない内に手順を書いてみようと思います。

まずGoogleAnalyticsに登録しましょう。
http://www.google.com/analytics/ に行き、アカウント作成します。


![スクリーンショット 2015-02-27 11.32.27.png](https://qiita-image-store.s3.amazonaws.com/0/44564/b00c1557-93eb-d594-e4d7-ce69b87c163e.png)
ここでモバイルアプリを選択し、任意のアカウント名(複数作成できます)、アプリ名などを入力してトラッキングIDを取得します。

![スクリーンショット 2015-02-27 11.36.35.png](https://qiita-image-store.s3.amazonaws.com/0/44564/d758b5f3-0a6c-0445-59e3-3d5e893d6b4f.png)

トラッキングIDを取得したらGoogleAnalyticsの登録は以上です。
では、次にGoogleAnalyticsをアプリへ組み込んでいきます。

▶︎GooglePlayServicesを導入します。
File -> Project Structure -> Dependencies内に左下の+ボタンからLibrary Dependencyを選択し
GooglePlayServiceを導入します。
build.gradleに入っていればOKです。


▶︎Manifestへ以下を追記します。

```xml:Manifest.xml
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
```
applicationタグ内に

```xml:Manifest.xml
    <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>
```
を追加します。

▶︎res/xml内に以下のxmlファイルを作成します。

```xml:global_tracker.xml
          <resources>
              <!-- How long a session exists before giving up -->
              <integer name="ga_sessionTimeout">300</integer>
              <!-- Enable automatic Activity measurement -->
              <bool name="ga_autoActivityTracking">true</bool>
              <!-- The screen names that will appear in reports -->
              <screenName name=“com.example.activity.HogeActivity“>
              </screenName>
              <!--  The following value should be replaced with correct property id. -->
              <string name=“ga_trackingId”>UA-XXXXXXX-X</string>
           </resources>
```
```xml:ecommerce_tracker.xml
          <resources>
              <integer name="ga_sessionTimeout">60</integer>
              <!--  The following value should be replaced with correct property id. -->
              <string name="ga_trackingId">UA-XXXXXXX-X</string>
          </resources>
```

▶︎Applicationを継承したクラスを作成します。

```java:App.java
    public class App extends Application {

    private static final String PROPERTY_ID = "UA-xxxxxxxx-x";
    public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
        ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
    @Override
    public void onCreate() {
        super.onCreate();
    }
    public synchronized Tracker getTracker(TrackerName trackerId) {
        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
                    : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
                    : analytics.newTracker(R.xml.ecommerce_tracker);
            t.enableAdvertisingIdCollection(true);
            mTrackers.put(trackerId, t);

        }
        return mTrackers.get(trackerId);
    }
    }
```
▶︎ActivityのonStart内で

```java:MainActivity.java
      Tracker t = ((App)getApplication()).getTracker(App.TrackerName.APP_TRACKER);
      t.setScreenName(this.getClass().getSimpleName());
      t.send(new HitBuilders.AppViewBuilder().build());
```

以上でGoogleAnalyticsのレポートが取得できると思います。
無料なのでどんどん活用していきたいと思います。