[Firebase] Analytics Event #1: Android 연동
Firebase Analytics는 출시된 애플리케이션의 사용성을 분석할 때 아주 강력한 도구로 활용된다. 사용자가 어떤 기종을 사용해 서비스를 이용하는지, 각 화면 별 체류 시간은 어느 정도 되는지, 특정 이벤트(Event)를 정의하여 해당 이벤트가 얼마나 발생하는지 등 다양한 분석 기능을 제공한다. 이벤트는 사용자의 행동이나 시스템 이벤트, 오류 등을 추적하기위해 발생시키는 데이터로, 사용성을 확인하고자 하는 비즈니스 로직에서 이벤트를 발생시키면 된다.
안드로이드 연동
안드로이드에서 Analytics를 연동하고 잘 활용하기 위해선 다음의 과정이 필요하다.
1. Firebase 기본 연동
2. 이벤트 로깅
3. ADB 설치 및 Analytics DebugView 연동
1. Firebase 기본 연동
우선 Firebase 기본 연동은 공식 문서에서 잘 설명해줘서 다음 문서를 참고하면 될 것 같다.
https://firebase.google.com/docs/android/setup
참고로 Gradle 7.0 버전 이상부터는 프로젝트 수준의 Gradle 파일의 내용이 위 문서와 조금 다를 것이다. (구글이 문서 최신화를 안 하고 있다) 이 부분은 아래와 같이 작성하면 된다.
build.gradle (project)
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.10'
}
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.2.0' apply false
id 'com.android.library' version '7.2.0' apply false
id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
id 'com.google.gms.google-services' version '4.3.10' apply false // firebase
}
task clean(type: Delete) {
delete rootProject.buildDir
}
그리고 analytics를 사용하기위해 dependencies를 추가한다. Kotlin은 뒤에 -ktx가 붙고, Java라면 -ktx를 빼면 된다.
build.gradle (app)
implementation platform('com.google.firebase:firebase-bom:30.0.0')
implementation 'com.google.firebase:firebase-analytics-ktx'
2. 이벤트 로깅
이벤트는 미리 정의된 종류의 이벤트가 있고, 개발자가 새로 정의할 수도 있다. 개발자는 이벤트를 발생시키고자 하는 위치에 간단한 함수 호출로 이벤트를 발생시킬 수 있다. 이렇게 발생된 이벤트는 Firebase Analytics에서 확인할 수 있다. (참고로 Analytics를 연동한 시점부터 내부적으로 자동 로깅하고 있는 이벤트들도 있다.)
먼저 필요한 지점에서 FirebaseAnalytics 인스턴스 참조를 획득한다.
lateinit var firebaseAnalytics: FirebaseAnalytics
override fun onCreate() {
...
firebaseAnalytics = Firebase.analytics
}
그리고 아래와 같이 필요한 위치에서 logEvent() 함수를 이용해 이벤트를 발생(로깅)시킨다. 아래는 미리 정의된 이벤트를 발생시키는 코드이다.
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
param(FirebaseAnalytics.Param.ITEM_ID, id)
param(FirebaseAnalytics.Param.ITEM_NAME, name)
param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}
현재 개발중인 앱에선 다음과 같은 이벤트를 사용했다. 이벤트의 이름과 파라미터 설정은 아래의 코드만 보면 바로 이해할 것이다. 파라미터로 확인하고자 하는 데이터를 전달하면 된다. 참고로 정수형은 Long 타입만 전달이 가능하다.
firebaseAnalytics.logEvent("gosleep_select") {
param("user_name",GosleepApp.userName)
param("sleep_air", wind.toLong())
param("sound_value", sound.toLong())
param("isAlarmOn","${vm.isAlarmOn.value!!}")
}
3. ADB 설치 및 Analytics DebugView 연동
로깅한 내용을 실시간으로 logcat에 표기하거나 Firebase Analytics의 DebugView에서 실시간으로 이벤트 발생을 GUI로 확인하는 방법이 있다. 이는 개발을 할 때 매우 유용하게 사용될 수 있다. 우선 ADB(Android Debug Bridge) 부터 설치를 하자. 아래의 포스트를 참고하면 된다.
이제 기기를 USB로 데스크톱과 연결하고 Terminal에서 다음 명령을 입력하면, logcat에서 logging을 확인할 수 있다.
adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC
다음으로 안드로이드 스튜디오에서 [Tools] -> [Firebase] -> [Analytics]에서 프로젝트와 Firebase Console을 연동한다.
이제 Firebase Analytics DebugView에서 기기가 인식이 되면 다음과 같이 이벤트를 GUI로 확인할 수 있다.
끝
댓글