[Flutter] Firebase Analytics 사용법

작성 날짜:

최근 업데이트 날짜:

Firebase Analytics이란?

Google Analytics는 유저의 앱 사용과 행동 패턴에 대한 정보를 무료료 제공하는 서비스다. Analytics 리포트는 사용자의 행동을 명확하게 알 수 있게 도와주며 이를 통해 앱 마케팅 및 성능 최적화를 효과적으로 할 수 있다.

설치

1. dependency 추가

pubspec.yamlfirebase_analytics: "^7.0.1"를 추가한다.

dependencies:
  flutter:
    sdk: flutter
  firebase_core: "^0.7.0"
  firebase_analytics: "^7.0.1"

2. Dependency 다운로드

$ flutter pub get

3. (웹의 경우만) SDK 추가

만약 웹에서 FlutterFire를 사용한다면 index.html 파일에 firebase-analytics JavaScript SDK를 추가한다.

<html>
  ...
  <body>
    <script src="https://www.gstatic.com/firebasejs/7.20.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.20.0/firebase-analytics.js"></script>
  </body>
</html>

4. 앱 다시 빌드

앱을 다시 빌드한다.

$ flutter run

iOS/Android 개별 설정

iOS 설정

Android 설정

사용하려는 파일에서 firebase_analytics를 import

import 'package:firebase_analytics/firebase_analytics.dart';

firebase_analytics에서 제공하는 표준 메소드 목록

firebase_analytics 패키지의 FirebaseAnalytics 클래스에는 자주 사용되는 이벤트 로그에 대한 표준 메소드들이 존재한다.

쇼핑 앱을 위한 메소드(logAddToCart 등), 게임 앱을 위한 메소드(logLevelUp 등), 숙박 앱을 위한 메소드(logBeginCheckout 등) 같은 특정 용도의 앱을 위한 메소드는 설명에서 제외했다.

AppOpen

logAppOpen()

표준 app_open 이벤트 로그를 발생시킨다.

Login

logLogin({String loginMethod})

표준 login 이벤트 로그를 발생시킨다.

SelectContent

logSelectContent({String contentType, String itemId})

표준 select_content 이벤트 로그를 발생시킨다. 유저가 특정 카테고리(contentType)의 아이템들 중 어떤 아이템(temId)을 선택했는지를 알려준다. 이를 통해 인기 있는 아이템이나 카테고리를 알 수 있다.

SignUp

logSignUp({String signUpMethod})

표준 sign_up 이벤트 로그를 발생시킨다. 유저가 계정을 등록했다는 것을 알려준다. signUpMethod은 유저의 가입 방법을 의미한다.

TutorialBegin

logTutorialBegin()

표준 tutorial_begin 이벤트 로그를 발생시킨다. 유저가 튜토리얼을 시작했음을 알려준다. logTutorialComplete와 함께 사용해서 얼마나 많은 유저가 튜토리얼을 완료하고 넘어갔는지 비율을 알 수 있다.

logTutorialComplete

logTutorialComplete()

표준 tutorial_complete 이벤트 로그를 발생시킨다. 유저가 튜토리얼을 완료했음을 알려준다. logTutorialBegin()와 함께 사용해서 얼마나 많은 유저가 튜토리얼을 완료하고 넘어갔는지 비율을 알 수 있다.

커스텀 이벤트 로그

logEvent

만약 제공되는 표준 메소드들에 자신이 원하는 것이 없다면 logEvent 메소드를 통해 상황에 맞는 이벤트 로그를 발생시킬 수도 있다.

logEvent({String name, Map<String, dynamic> parameters})

커스텀 이벤트 로그를 발생시킨다. name으로 이벤트 이름, parameters로 원하는 데이터를 설정할 수 있다.

만약 철자는 같지만 대소문자가 다른 name을 가진 두 개의 이벤트(ex. UserConvert, userconvert)가 있다면 이들은 서로 다른 두 이벤트로 인식된다.

Firebase console 대시보드에서 이벤트의 통계를 확인할 수 있다. 또한 대시보드에는 앱에서 발생한 이벤트 로그의 타입 별로 이벤트 보고서가 자동 생성된다.

유저 속성 설정

setUserProperty

setUserProperty({String name, String value})

특정 이름(name)의 유저 속성을 입력한 값(value)으로 설정한다. 최대 25개의 유저 속성 이름이 지원된다. 유저 속성 값이 한번 설정되면 앱 라이프 사이클 내내 앱 전체에서 유지된다.

속성 이름 규칙

name은 설정할 유저 속성의 이름이다. name은 1~24 자리의 문자, 숫자, _의 조합이여야 하며 맨 앞에는 문자가 나와야 한다. 또한 “firebase_” 로 시작할 수 없다.

마지막으로 아래 목록의 유저 속성 이름들은 구글에서 예약해두었기 때문에 사용할 수 없다.

  • Age
  • Gender
  • Interest

이렇게 설정한 데이터들은 Firebase console의 유저 속성 대시보드에서 확인할 수 있다. 이러한 속성은 Google Analytics에서 리포트에 대한 필터로 사용할 수 있다.

유저 아이디 설정

setUserId

setUserId(String id)

유저의 아이디를 설정한다.

유저 아이디를 설정한 후에 발생하는 이벤트에 대해서는 자동으로 유저 아이디가 붙게 된다. 따라서 BigQuery에서 user_id 값을 쿼리하여 이벤트에 접근할 수 있다. 하지만 아이디를 설정하기 이전에 기록된 이벤트에는 영향을 끼치지 않는다.

태그:

카테고리:

최근 업데이트 날짜:

댓글남기기