AndroidのGoogleAnalytics SDKでenableAutoActivityReportsが有効なのはAPI level 14から
備忘録。タイトルが全てですが。
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を呼ぶしかなさそう。
関連(するかもしれない)記事
おススメ