brunch

You can make anything
by writing

C.S.Lewis

by 이승현 Jul 13. 2016

Firebase #02

Analytics

Firebase Analytics


Firebase Analytics is a free app measurement solution that provides insight on app usage and user engagement.

(Firebase Analytics는 앱 이용과 사용자 참여를 측정하는 무료 솔루션입니다.)


At the heart of Firebase is Firebase Analytics, a free and unlimited analytics solution. 

(Firebase의 핵심이자, 무료 및 무제한 분석 솔루션입니다.)


Analytics integrates across Firebase features and provides you with unlimited reporting for up to 500 distinct events that you can define using the Firebase SDK.

(Analytics는 Firebase 기능을 통해 통합하고 Firebase SDK를 이용해 정의할 수 있는 최대 500개의 별개 이벤트에 대한 무제한 리포팅을 제공합니다.)


Firebase Analytics reports help you understand clearly how your users behave, which enables you to make informed decisions regarding app marketing and performance optimizations.

(Firebase Analytics는 앱 마케팅 및 성능 최적화에 대한 결정을 내릴 수 있도록 유저의 행동을 명확하게 이해하는데 도움을 준다.)


https://firebase.google.com/docs/analytics/

https://www.youtube.com/watch?list=PLl-K7zZEsYLmOF_07IayrTntevxtbUxDL&time_continue=1&v=iT6EaIwtonY




Key functions

Unlimited Reporting
Firebase Analytics는 최대 500의 이벤트에 대한 무제한 리포팅을 제공합니다.

Audience Segmentation
Custom Audience 디바이스 데이터, 사용자 정의 이벤트, 사용자 속성을 기반으로 Firebase console에서 정의될 수 있다.


Integrations with other services

Big Query
Analytics dataset 및 import 한 다른 데이터 소스에 사용자 정의 분석을 수행할 수 있는 Big Query에 Firebase Analytics app을 연결한다

Firebase Crash Reporting
사용자가 영향을 받게되는 crash에 대한 통찰력을 얻고, 상이한 버전이나 지역에 따른 crash 비율을 감지할 수 있도록 Firebase Analytics는 각각의 crash에 대한 이벤트들을 기록합니다.
또한 여러 crash를 경험한 사용자의 audience를  만들어 Firebase Notifications에 정의된 audience 에게 응답할 수 있습니다.

Firebase Notifications
Firebase Analytics는 Firebase Notifications에 해당하는 이벤트들을 자동으로 기록하여 각 캠페인의 영향에 대한 리포팅을 지원합니다.

Firebase Remote Config
앱에 대한 여러 버전을 배포하지 않고 상이한 audience에 대해 동작이나 모양을 변경하기 위해 Firebase Analytics audience 정의를 이용한다.

Google Tag Manager
앱 배포 후 웹에서 원격으로 Firebase Analytics 구현을 관리할 수 있도록  Google Tag Manager와Firebase Analytics를 함께 통합한다.




Firebase 시작


아래 firebase console 사이트에 가입 후, 프로젝트를 생성합니다.

https://console.firebase.google.com/


이전 글 참고하세요.

https://brunch.co.kr/@oemilk/25




Analytics 시작



https://firebase.google.com/docs/analytics/android/start/

https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/package-summary



1. google-service.json 추가

#01 구성 파일 복사

Android studio에서 프로젝트 보기로 전환하여 프로젝트 루트 디렉터리를 표시하세요.

다운로드한 google-service.json 파일을 Android 앱 모듈 루트 디렉터리로 이동하세요.


2. plugin 추가

#02 Project build.gradle에 추가
buildscript {
    ...
    dependencies {
        ...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
#03 app build.gradle에 추가
apply plugin: 'com.android.application'

...

dependencies {
    ...
    compile 'com.google.firebase:firebase-core:9.2.0'
}

apply plugin: 'com.google.gms.google-services'

"firebase-core:9.2.0" 이 컴파일되지 않을 때는 아래와 같이 Google Play service 31 버전으로 업데이트해주세요.


#04 Google Play service v31


3. Firebase Analytics Object 생성, Default parameter value 설정


Analytics Object 생성

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);


4. Log events


사전에 정의되었거나 사용자가 정의한 이벤트들을 logEvent() 함수를 이용하여 기록할 수 있다.

사전에 정의된 이벤트들이나 매개변수들은 FirebaseAnalytics.EventFirebaseAnalytics.Param 에서 볼 수 있다.

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.CHARACTER, "test character");
bundle.putLong(FirebaseAnalytics.Param.LEVEL, 10);
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.LEVEL_UP, bundle);

// custom event
Bundle bundle = new Bundle();
bundle.putString("custom_id", "custom test id");
bundle.putString("custom_name", "custom test name");
bundle.putString("custom_location_id", "custom test location id");
mFirebaseAnalytics.logEvent("custom_event", bundle);

Firebase 에서 제공하는 Event, Param과 개발자가 정의한 Custom Event, Param들이 있습니다. 

기본적으로 제공해주는 Event의 경우, 각 Event별로 사용하는 Param들이 있습니다.

아래와 같이 LEVEL_UP Event는 Param.LEVEL, Param.CHARACTER가 있습니다.

각 Event에 맞는 Param을 이용하시기 바랍니다.

https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event

https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Param


BigQuery와 연결은 유료 버전에서 사용할 수 있어서 아직 써보지는 않았습니다.


https://support.google.com/firebase/answer/6318765

Firebase Console에서 Param값을 보는 법은 잘 모르겠네요ㅠ 아시는 분 있으면 연락 주세요. 


5. Set User Properties


사용자 속성은 언어 환경이나 지리적 위치같은 사용자 기반의 세그먼트들을 설명하기 위한 속성입니다.

Analytics는 자동으로 몇가지 사용자 속성들을 기록하기 때문에 이들을 사용하기 위한 코드를 추가할 필요가 없습니다.

만약 추가적인 정보를 모아야 한다면, 25가지의 다른 Analytics 사용자 속성을 설정할 수 있습니다.

mFirebaseAnalytics.setUserProperty("test_user_property", "test user");


6. Install ADB (Option)


SDK Tools - Android SDK Platform-Tools를 설치합니다.

#01 Android SDK Platform-Tools


Android SDK platform-tools directory로 이동하여 "dir" 명령어로 "adb.exe" 파일 확인

#02 platform-tools directory 이동
#03 adb


7. Confirm Events (Option)


이벤트들이 제대로 기록되고 있는지 확인할 수 있도록 도와주는 SDK에 의해 이벤트의 로깅을 모니터링하기 위해 자세한 로깅을 사용할 수 있습니다.

adb 명령들로 자세한 로깅을 사용할 수 있습니다.

이 명령은 즉시 이벤트가 전송되고 있음을 확인할 수 있도록, 안드로이드 스튜디오 logcat에서 이벤트를 표시합니다.

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC
#01 adb 실행창
#02 Android Studio logcat




Firebase Console - Analytics


Firebase Analytics는 사용하기 쉬운 4가지 기본 요소를 중심으로 구성되어 있습니다. 이벤트는 사용자가 앱에서 특정한 행동을 취할 때 발생합니다. 전환은 핵심 성과지표(KPI) 이벤트입니다. 사용자 속성은 사용자의 특징을 나타냅니다. 잠재고객은 사용자층을 나눈 그룹입니다. 


#01 Firebase Analytics
#02 이벤트
#03 사용자 속성
#04 필터 추가
#05 필터 추가 후


Sample


https://github.com/oemilk/firebase




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari