backport

技術ネタと野球とときどき雑談

AndroidのGoogleAnalytics SDKでenableAutoActivityReportsが有効なのはAPI level 14から

2016-04-20
development Android , Google Analytics

備忘録。タイトルが全てですが。

AndroidのGoogleAnalytics SDKでActivityの開始と終了をトラッキングするにはGoogleAnalytics#reportActivityStart/GoogleAnalytics#reportActivityStop を呼ぶ必要があります。

GoogleAnalytics#reportActivityStart は Activity#onStart、reportActivityStop は GoogleAnalytics#Activity#onStop で呼び出します。

@Override
protected void onStart() {
    super.onStart();
    GoogleAnalytics.getInstance(this).reportActivityStart(this);
}

@Override
protected void onStop() {
    super.onStop();
    GoogleAnalytics.getInstance(this).reportActivityStop(this);
}

で、これを全部のActivityにいちいち書くのは面倒じゃない?ということで GoogleAnalytics#enableAutoActivityReports という便利なメソッドがあるわけです。

// enableAutoActivityReportsのthisはApplication
GoogleAnalytics.getInstance(this).enableAutoActivityReports(this);

これで万事OK、と思いきやAPIドキュメントにこんな記載が。

This method is a noop if called on a device running API level less than 14.

「このメソッドはAPI Levelが14未満の端末だとなにもしないよ」とな。API Level 14はICE_CREAM_SANDWICH。つまり2.x系の端末にも対応しようと思ったらenableAutoActivityReportsじゃダメなんですね...

noop = 何もしない、なので、2.x系の端末でenableAutoActivityReportsを呼び出しても問題はないですが、トラッキングしてくれません。

古めの自作アプリはまだ2.x系サポートしてるんだよなー。明示的にGoogleAnalytics#reportActivityStart/GoogleAnalytics#reportActivityStopを呼ぶしかなさそう。



コメント欄を表示する