Google Analytics logEvent의 parameter 추적하기(Flutter)

악어·2024년 2월 21일
1

Firebase Google Analytics(GA) '제대로' 활용하기

카페자리 앱은 Google Analytics(이하 GA)를 달아놔서
웬만한 앱 활동에 대한 데이터 수집은 모두 가능하다.

GA에서 기본적으로 제공해주는 로깅 이외에도,
우리가 원하는 데이터를 수집하기 위해
몇몇 이벤트에 대해 logEvent()를 활용해
사용자들의 활동을 추적하는 중이다.


그 중 한가지로, onboarding duration time이라는
Event가 있는데, 앱을 처음 켰을때 보여주는
onboarding 화면에서 사용자들이 얼마나
체류하는지 초단위로 기록하는 event이다.

onboarding은 위와 같이 터치하면 화면이 전환되는
평범한 ui이고, 총 9페이지로 구성되어있다.



사용자가 마지막 onboarding 화면에서 벗어나면,
이 화면에서 몇 초간 머물렀는지 그 체류시간을
parameter 'seconds'값으로 서버에 전송한다.
위 사진처럼 값을 확인할 수 있다.


코드를 간단하게만 보자면 아래와 같다.
Flutter 코드고, firebase_analytics(공식패키지)를 사용했다.

await FirebaseAnalytics.instance.logEvent(
    name: "onboarding_duration_time",
    parameters: {
        "seconds": DateTime.now().difference(ref.watch(_firstTabTime)!).inSeconds.abs()
    }
);

대충 사용자가 첫번째 탭한 시간으로부터 현재 시간까지
몇 초나 지났는지 int값으로 구하고, 그 값을 parameter 'seconds'
에 할당해 'onboarding_duration_time'라는 이름의
이벤트를 발생시키겠다는 것이다.

커스텀이벤트는 정상적으로 로깅됐고,
이대로 행복하게 잘먹고 잘살았답니다!



라고 끝나면 정말 좋겠지만..
언제나처럼 고난이 찾아왔다.



logEvent를 통해 저장한 parameter 값이 30분 후 휘발된다?

이벤트는 아래와 같이 GA Dash보드에서
정상적으로 집계된 것으로 '보였다'.


하지만 보고서의 어디를 봐도,
어떤 설정을 뒤져봐도 parameter인 'seconds'값이
집계되어 정리된 모습을 확인하지 못했다.
많은 시간 구글링한 결과 충격적인 사실을 알게되었다.

"logEvent를 통해 임의로 발생시킨 event의 parameter 데이터는 별다른 조치가 없다면, 30분 후 휘발된다."


30분간 유지되는 이유는 Realtime analytics에
표시하기 위함으로 보였다..

3분간 벙찐 후 지금부터라도 seconds 데이터를
집계할 방법을 모색하기 시작했다.



해결방법은?

해결방법은 구글링해보면 여러가지가 나온다.
하지만 너무 복잡한 방법은 시간과 노력이 아까우므로,
최대한 간단한 방법으로 해결해보려했다. 바로,

"parameter값을 적당히 확인할 수 있는 새로운 event를 만들어 로깅한다"

라는 방법이다. '적당히 확인한다' 라는게 무슨 의미인지
헷갈릴 수 있는데, 이를테면 다음과 같다.


위 사례에서 seconds값은 사실 사용자들이 체류하는 시간을
'대략적으로' 판단하는데에 그 목적이 있다.

'정확하게' 14초를 머무르는지, 16초를 머무르는지는
그닥 중요하지 않다는 것이다.
그래서 이벤트를 다음과 같이 세분화했다.

  • onboarding_seconds_0_10
  • onboarding_seconds_10_20
  • onboarding_seconds_20_30
  • onboarding_seconds_30_40
  • onboarding_seconds_40_50
  • onboarding_seconds_50_over

이렇게 설정하고 집계하면, 사용자들의 체류시간을
'적당히 확인'할 수 있을 것이다.
이제 설정 과정을 보자.



1. 새로운 이벤트 생성

Google Analytics 홈에서 '설정'에 진입한다.
이후 '속성설정' > '데이터 표시' > '이벤트'로 들어가
'이벤트 만들기'를 눌러준다.

원하는 앱을 선택해준 다음, 새 이벤트를 만들어주자.



2. parameter를 활용해 원하는 설정 구성하기

이벤트의 이름과 원하는 설정을 기입해주면 된다.
나는 10~20초간 머무는 사람들의 수를 집계하기 위해
위와같이 기입했다. 구성이 완료되면 '만들기'를 눌러주자.

이처럼 0~10초, 10~20초, ... 50초 over까지 이벤트를 모두 설정했다.
이를 ios와 android앱에 각각 만들어 집계한다.



3. 최소 24시간 후 집계된 정보 확인하기

이후 집계되는 데이터는 위 이벤트를 포함한다.
나는 설정 후에는 별다른 문제 없이 잘 집계되었다.



GA를 더 잘쓰자

이번에 '나는 아직 GA의 10%도 쓰지 못하고 있다'라는
느낌을 매우 강하게 받았다.
세부적인 디테일을 좀 더 잘 숙지해서
좋은 도구를 100% 활용할 수 있게 해야겠다.

profile
냅다 회사부터 세워버린 개발자

0개의 댓글