【Android】Google AnalyticsからFirebaseへの乗り換え
Firebaseを使ってみたかったので置き換えてみた。
プロジェクトのbuild.gradle
dependencies { ... classpath 'com.google.gms:google-services:4.0.0' }
アプリのbuild.gradle
dependencies { ... implementation "com.google.firebase:firebase-core:16.0.1" } apply plugin: 'com.google.gms.google-services'
イベントを送るクラスの置き換え
companion object DefaultTracker { - fun setUp(context: Context): Tracker { - val analytics = GoogleAnalytics.getInstance(context) - return analytics.newTracker(R.xml.global_tracker) + fun setUp(context: Context): FirebaseAnalytics { + return FirebaseAnalytics.getInstance(context)
必要ないコードの削除
スクリーンは screen_view
というイベントで勝手に送ってくれるので削除
- tracker.setScreenName(screenName) - tracker.send(HitBuilders.ScreenViewBuilder().build())
クリックイベントの置き換え
Firebase側である程度のイベントを用意してくれている。FirebaseAnalytics.Param.CONTENT_TYPE
や FirebaseAnalytics.Param.VALUE
で色々指定できそうなのでヘルパーメソッドを作った。
fun sendButtonEvent(itemId: String) { sendEvent(itemId, "button", FirebaseAnalytics.Event.SELECT_CONTENT) } fun sendSettingEvent(setting: String, value: String) { sendEvent(setting, "setting", FirebaseAnalytics.Event.SELECT_CONTENT, value) } private fun sendEvent(itemId: String, contentType: String, event: String, value: String = "") { if (BuildConfig.DEBUG) return val params = Bundle().apply { putString(FirebaseAnalytics.Param.ITEM_ID, itemId) putString(FirebaseAnalytics.Param.CONTENT_TYPE, contentType) putString(FirebaseAnalytics.Param.VALUE, value) } tracker.logEvent(event, params) }
デバッグ
コンソールでDebugViewを開く。あとは端末を繋いで adb shell setprop debug.firebase.analytics.app <package_name>
を実行すればデバッグができる。