본문 바로가기
Network/Firebase

[Firebase] Analytics Event #1 : Android 연동

by 신숭이 2022. 6. 2.

[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

 

Android 프로젝트에 Firebase 추가  |  Firebase Documentation

Check out what’s new from Firebase at Google I/O 2022. Learn more 의견 보내기 Android 프로젝트에 Firebase 추가 기본 요건 Android 프로젝트가 준비되지 않았다면 빠른 시작 샘플 중 하나를 다운로드하여 Firebase 제

firebase.google.com

참고로 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) 부터 설치를 하자. 아래의 포스트를 참고하면 된다.

 

https://full-stack.tistory.com/entry/Android-Studio-ADBAndroid-Debug-Bridge-%EC%84%A4%EC%B9%98?category=989029 

 

[Android Studio] ADB(Android Debug Bridge) 설치

[Android Studio] ADB(Android Debug Bridge) 설치 ADB, 안드로이드 디버그 브릿지는 기기와 통신할 수 있는 명령 도구이다. 기본적인 개념은 Unix Shell에 대한 접근을 제공하는 클라이언트-서버 프로그램이

full-stack.tistory.com

 

 

이제 기기를 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을 연동한다.

localhost:60585

 

 

이제 Firebase Analytics DebugView에서 기기가 인식이 되면 다음과 같이 이벤트를 GUI로 확인할 수 있다.

인식된 기기
로깅되는 사용자 정의 이벤트

 

 

 

 

 

 

댓글