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を呼ぶしかなさそう。



コメント欄を表示する

おススメ

WEB+DB PRESS Vol.99

特集「良いコードって何だろう?」がおススメ

WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

お値段手ごろなので持っておいて損なし

Kindle Paperwhite Wi-Fi、ブラック

読みたいときに読みたい本を読めるのが嬉しい

超小型65W ノートPC汎用 ACアダプター FINsix ”Dart” (シルバー)超軽量85g 11種類の変換プラグで1000機種以上のノートPCに対応 USB5V出力付きでPCとスマホ同時充電 ※必ずご使用のPCとの互換性をご確認ください。『PSE認証済』

持ち運びに便利な小型軽量のACアダプタ