GA(Google Analytics)는 앱의 사용성과 유저 참여의 통계를 제공하는 무료 앱 측정 솔루션이다. Analytics는 사용자의 행동을 명확하게 이해하는데 도움이 되며, 이를 통해 앱 마케팅 및 성능 최적화와 관련하여 정보에 입각한 결정을 내릴 수 있다.
다양한 이벤트와 사용자 속성을 SDK가 자동으로 포착하며 개발자는 Custom event를 직접 정의하여 비지니스에 고유한 가치를 갖는 항목을 측정할 수 있다.

사용자가 어떤 행동을 하는지, 예를들면 SignUp을 하는지, SNS/Email Login을 하는지, 어떤 버튼을 클릭했는지를 파악할 수 있다.

참고 ☝🏻 FlutterFire ✌🏻 Firebase

우선 Flutter에서 어떻게 사용할 수 있는지 알아보자.
(Firebase에 앱이 등록 되어있어야 한다.==Android에는google-service.json 파일이, iOS에는 GoogleService-Info.plist파일이 다운받아져 있어야 한다.)

firebase_analytics 를 설치한다.

dependencies:
  flutter:
    sdk: flutter
  firebase_core: "^0.5.3"
  firebase_analytics: "^6.3.0"

flutter pub get 명령어를 통해 설치한다.

✅ Track PageRoute Transitions

FirebaseAnalytics analytics = FirebaseAnalytics();

MaterialApp(
  home: MyAppHome(),
  navigatorObservers: [
    FirebaseAnalyticsObserver(analytics: analytics),
  ],
);

main.dart에서 MaterialApp()부분에서 navigatorObservers parameter를 설정해준다.

✅ 여러가지 기본 method

참고 method List

🎉 logAppOpen()

Future logAppOpen() async {
    await analytics.logAppOpen();
  }

🔥 logSignUp({String signUpMethod})

Future logSignUp() async {
    await analytics.logSignUp(signUpMethod: 'email');
  }

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

Future logAddFolder(String folderName) async {
    await analytics
        .logEvent(name: 'add_folder', parameters: {'folder': folderName});
  }

💻 setCurrentScreen({String screenName, String screenClassOverride: 'Flutter'})

Screen 이름을 따로 지정하여서, 해당 스크린이 나타날때를 체크할 수 도 있다.

Future logSetScreen(String screenName) async {
    await analytics.setCurrentScreen(screenName: screenName);
  }

등등 여러가지의 method가 제공되며, logEvent를 통해서, 이벤트를 커스텀 할 수도 있다.

✅ Debugging Event

📱 iOS

개발 기기에서 애널리틱스 디버그 모드를 사용 설정하려면 Xcode에서 다음 명령줄 인수를 지정합니다.
-FIRDebugEnabled

image

image

인수 지정하는 방법
사진1 : Product > Scheme > Edit Scheme...
사진2 : 왼쪽메뉴에서 Run > 상단 탭에서 Arguments클릭 > Arguments Passed On Launch에서 + 버튼 클릭 후 FIRDebugEnabled 입력.

-> Xcode로 실행해야 Firebase console에서 DebugView에서 바로 보인다.

📱 Android

👨🏻‍💻 DebugView에서 확인

🎉 앱을 실행했을때,
image

🙂 logEvent() 메소드로 add_folder라는 이벤트를 호출.

'안녕하세요'라는 폴더를 생성했을 경우

스크린샷 2021-01-05 23 42 28
Simulator Screen Shot - iPhone 11 - 2021-01-05 at 23 43 02

이런식으로 debugView에서 볼 수 있다.

🖥 setCurrentScreen() 호출
1. 처음에 HomeScreen을 불렀을때,

AnalyticsService().logSetScreen('HomeScreen');

스크린샷 2021-01-05 23 51 16

  1. 다음 화면인 MemoListScreen을 불렀을때,
AnalyticsService().logSetScreen('MemoListScreen');

스크린샷 2021-01-05 23 51 38

profile
Hello Universe!

1개의 댓글

comment-user-thumbnail
2021년 1월 5일

명쾌한 설명에 감동 받고 갑니다~

답글 달기