GA(Google Analytics)는 앱의 사용성과 유저 참여의 통계를 제공하는 무료 앱 측정 솔루션이다. Analytics는 사용자의 행동을 명확하게 이해하는데 도움이 되며, 이를 통해 앱 마케팅 및 성능 최적화와 관련하여 정보에 입각한 결정을 내릴 수 있다.
다양한 이벤트와 사용자 속성을 SDK가 자동으로 포착하며 개발자는 Custom event를 직접 정의하여 비지니스에 고유한 가치를 갖는 항목을 측정할 수 있다.
사용자가 어떤 행동을 하는지, 예를들면 SignUp을 하는지, SNS/Email Login을 하는지, 어떤 버튼을 클릭했는지를 파악할 수 있다.
참고 ☝🏻 FlutterFire ✌🏻 Firebase
우선 Flutter에서 어떻게 사용할 수 있는지 알아보자.
(Firebase에 앱이 등록 되어있어야 한다.==Android에는google-service.json
파일이, iOS에는 GoogleService-Info.plist
파일이 다운받아져 있어야 한다.)
dependencies:
flutter:
sdk: flutter
firebase_core: "^0.5.3"
firebase_analytics: "^6.3.0"
flutter pub get
명령어를 통해 설치한다.
FirebaseAnalytics analytics = FirebaseAnalytics();
MaterialApp(
home: MyAppHome(),
navigatorObservers: [
FirebaseAnalyticsObserver(analytics: analytics),
],
);
main.dart
에서 MaterialApp()부분에서 navigatorObservers
parameter를 설정해준다.
🎉 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를 통해서, 이벤트를 커스텀 할 수도 있다.
📱 iOS
개발 기기에서 애널리틱스 디버그 모드를 사용 설정하려면 Xcode에서 다음 명령줄 인수를 지정합니다.
-FIRDebugEnabled
인수 지정하는 방법
사진1 : Product > Scheme > Edit Scheme...
사진2 : 왼쪽메뉴에서 Run > 상단 탭에서 Arguments클릭 > Arguments Passed On Launch에서 + 버튼 클릭 후 FIRDebugEnabled
입력.
-> Xcode로 실행해야 Firebase console에서 DebugView에서 바로 보인다.
📱 Android
🎉 앱을 실행했을때,
🙂 logEvent() 메소드로 add_folder라는 이벤트를 호출.
'안녕하세요'라는 폴더를 생성했을 경우
이런식으로 debugView에서 볼 수 있다.
🖥 setCurrentScreen() 호출
1. 처음에 HomeScreen을 불렀을때,
AnalyticsService().logSetScreen('HomeScreen');
AnalyticsService().logSetScreen('MemoListScreen');
명쾌한 설명에 감동 받고 갑니다~