Back to top

[GA4] 활성사용자(Active User)와 참여세션(Engaged Session)의 이해

GA4 도입이 가속화 되면서 GAUA에서 쓰이지 않던 용어들로 인해 해석과 소통의 어려움이 생기고 있다.

GAUA 시절엔 사용자라 함은 쿠키와 구글 신호데이터를 고려한 단순한 사람 수를 의미했기 때문에 사용자에 대한 고민이 필요가 없었다.

 

그런데 앱 환경을 고려한 GA4 에서는

  • 앱이 백그라운드에서도 이벤트를 발생 시킬 수 있는 점과
  • 앱을 설치했지만 실행하지는 않은 사람
  • 앱에 대한 사용자의 활성도

를 고려하여 사용자를 측정하기 시작했다.

 

앱 서비스와 그로스해킹에 자주 쓰이던 표현들인 DAU (Daily Active User) 가 웹 분석에도 활용되기 시작하게 되는 것이며

사용자 라는 것에 대한 정의가 더 다양해지기 시작하는 것이다.

그래서 활성사용자(Active User)에 대해 다양한 국내외 아티클과 문서를 찾아봤지만 잘못 적힌것들이 상당히 많았고,

GA 문서도 오해할 수 있도록 내용이 적혀있고 실제 내용은 적혀있지 않은 경우가 있어서

무엇이 맞는지 확인하기 위해 다양한 실험과 문서 크로스체킹을 했다.

 

내가 오늘 낭비한 시간을 다른 사람은 아끼길 바라며 이 글을 적는다.

결론적으로 얘기하자면 GAUA 시절에 쓰던 사용자 라는 표현과 GA4 에 쓰이는 사용자는 내 경험적으로 5~10% 정도의 수치 차이를 내는 다른 항목이다.

 

GAUA에서 얘기하는 사용자는 ‘총사용자(Total User)’ 이다. 

*GAUA 홈 에서 확인 가능한 사용자

 

GA4에서 얘기하는 사용자는 일반적으로 ‘활성사용자(Active User)’ 이다.

*GA4 홈 에서 확인 가능한 사용자

두 가지의 차이점을 이해하려면 총사용자와 활성사용자에 대한 정의를 이해해야 한다.

 

[GA문서 상의 사용자 정의]

*GA 문서 상의 사용자 정의 차이, https://support.google.com/analytics/answer/11986666

총사용자는 세부적인 측정 기준에서 GAUA와 GA4 가 다르지만 GA4 기준만 이해해도 좋겠다.

총 사용자는 GA4 기준으로 이벤트를 발생 시킨 [웹 클라이언트/앱 인스턴스/구글신호데이터/유저ID] 를 가장 합리적으로 추려낸 사람의 수 다.

총 사용자는 간단하게만 이해해도 될 것이다.

중요한 것은 총사용자와는 조금 다른 활성사용자 에 대해 이해하는 것이다.

GA4에서 말하는 활성사용자란

총 사용자 중 아래 요건 중 하나라도 달성한 사용자를 의미한다

 

[ 활성사용자 정의 ]

데이터 측정기간 에 대해서만

  1. 세션참여를 한 사용자
  2. 첫 방문(웹/앱)한 사용자
  3. 웹, 안드로이드의 경우 engagement_time_msec 파라미터를 포함한 이벤트를 발생 시킨 경우
  4. iOS의 경우 user_engagement 이벤트를 발생 시킨 경우

4가지 항목 모두 이해하기 어려운 부분들이 있다.

그리고 이에 대한 정의가 애매했고 결론을 얻기까지 많은 시간이 들었다.

활성사용자의 정의에서 표현된 새로운 용어들과 내가 얻게 된 결론을 각 상황에 맞춰서 설명해보겠다.

 

[ 1. 참여세션(Engaged Session)의 정의 ] 

  1. 10초 이상 머문 경우 (설정에서 10~60초 조정 가능)
  2. 페이지뷰가 2회 이상 발생한 경우
  3. 10초 내더라도 전환이벤트를 발생시킨 경우

참여세션에 대한 정의는 비교적 간단하다.

  • A가 방문 후 사이트에 9초 있다가 창을 닫으면 참여(Engage)하지 않은 것이다.
  • A가 방문 후 10초 내에 GA4 설정에 지정해둔 전환 이벤트를 이행하면 참여한 것이다.
  • A가 방문 후 10초 내에 페이지를 이동하면 참여한 것이다.
  •  

[ 2. 첫 방문(웹/앱)한 사용자 ] 

  1. 앱에서 first_open 이벤트의 발생. 앱 설치 또는 재설치 후 처음으로 앱을 실행할 때. *설치 시점이 아님.
  2. 웹에서 사용자 기록이 처음으로 남은 순간.

[ 3. 웹, 안드로이드의 경우 engagement_time_msec 파라미터를 포함한 이벤트의 발생 ] 

활성사용자를 정의하기 어려웠던 것이 해당 사항 때문이 이유가 컸다.

engagement_time_msec 파라미터(매개변수)는 대체 언제 발생하는가가 포인트다.

GA4에서 말하는 이벤트 라는 것은 파라미터(매개변수)를 늘 포함한다.

예를 들어 내가 웹 사이트 메뉴 클릭시 이벤트가 발생하도록 구글 태그 매니저에 이벤트를 설치했다 한다면,

어떤 페이지에서 해당 메뉴를 눌렀는지 페이지 경로 라는 파라미터가 자동으로 포함되어 정보가 전달된다.

 

각 이벤트에는 GA4가 이처럼 자동으로 수집하는 파라미터가 있기도 하고 사용자가 지정해서 같이 전달되는 파라미터가 있기도 하다.

그리고 특정 이벤트들은 engagement_time_msec 파라미터를 자동으로 포함한 이벤트가 발생하기도 한다.

내가 혼란을 겪었던 부분이 바로 이 문서다.

GA4 가 제공하는 문서인데 > https://support.google.com/firebase/answer/9234069?hl=ko

페이지마다 발생하는

page_view 이벤트는 engagement_time_msec 를 포함한다고 문서에 적혀있는데

*https://support.google.com/firebase/answer/9234069?hl=ko#page_view

engagement_time_msec 와 관련된 문서의 예시에서는 user_engagement_time_msec 를 해당 없음으로 표시하고 있었기 때문이다.

 

*https://support.google.com/analytics/answer/11109416?hl=ko

내가 테스트한 결론으로는 page_view 이벤트는 대부분의 상황에서 engagement_time_msec 를 포함하지 않는데

이해할 수 없는 특정 상황에서는 engagement_time_msec 를 포함한다는 것이다.

 

*대부분의 상황에서 page_view이벤트는 engagement_time_msec 파라미터를 미포함한다.

 

*그런데 page_view이벤트가 engagement_time_msec 파라미터를 포함하기도 한다.

https://support.google.com/analytics/answer/11109416?hl=ko 와

https://support.google.com/analytics/answer/9234069?hl=ko#scroll 의

두 문서 모두 스크롤을 90% 이상 내렸을 때 발생하는 ‘scroll’ 이벤트는 engagement_time_msec 를 포함한다고 적혀있지만

안뜨는 경우도 있다.

  1. 일단 그냥 랜덤하게 안 뜨는 경우가 많고
  2. 페이지 로드했을때부터 스크롤이 다 끝나있는 짧은 페이지의 경우 안뜨는 확률이 조금 더 높았다.

문서도 믿기 어려운 상황이 발견되고 있어서 어떻게 engagement_time_msec를 포함하는 이벤트가 발생하는지 해석하기 어려워졌다.

결국엔 그나마 활성사용자 Active User 를 정의하기에 가장 엄격한 기준이 될 user_engagement 이벤트가 활성사용자에 대한 정의라고 이해하게 되었다.

그 내용은 아래 4번에 작성해뒀다.

 

[ 4. iOS의 경우 user_engagement 이벤트를 발생 시킨 경우.  ] 

user_engagement 이벤트는 

앱이 1초 이상 화면에 있거나 웹페이지가 최소 1초간 포커스 내에 있을 때 의 상황이 발견되면

  • 사용자가 앱 화면을 배경으로 이동함
  • 사용자가 웹페이지로부터 포커스를 옮김
  • 사용자가 앱 화면이나 웹페이지를 벗어남(예: 사용자가 탭, 창 또는 앱을 닫음, 사용자가 다른 화면이나 페이지로 이동함)
  • 사이트 또는 앱이 비정상 종료됨

위의 4가지 경우에 이벤트를 발생시킨다.

그리고 이 때 engagement_time_msec 파라미터를 포함한다.

 

위의 4가지 상황은 앱이 백그라운드로 가거나 내부에서 페이지이동이 발생하거나 앱, 웹이 종료되는 상황에 대한 것으로

결국 앱이나 웹이 1초 이상 있는 상황이 생긴다면 이벤트는 그 페이지가 종료되는 시점에 발생한다는 것이다.

 

그리고 그 종료되는 시간에 engagement_time_msec 파라미터를 같이 발생시킨다.

 

즉 이 모든 환경을 고려하여서 활성사용자 Active User 를 쉽게 정의한다면 아래처럼 요약할 수 있다.

 

[ 활성사용자의 쉬운 정의 ]

1초 이상 방문한 사용자

다른 모든 활성사용자로 정의될 수 있는 상황이 user_engagement 이벤트의 발생으로 인해
1초 이상 방문한 사용자로 정의하면 될 것이다.


여기서 의문이 들 수 있는 것이

그럼 거의 모든 경우가 총 사용자와 활성사용자가 같아야 하는데 차이가 왜이리 크냐는 질문이 될 수 있다.

이것과 관련해서 많은 피드백이 필요하겠지만 내가 내린 결론은 2가지의 상황을 가정해보았다.

 

  1. 측정(매저먼트)프로토콜을 사용한 경우
    https://developers.google.com/analytics/devguides/collection/protocol/ga4?hl=ko측정 프로토콜로 이벤트를 발생시키면 총 사용자에는 포함되지만
    활성 사용자에는 포함되지 않는 환경을 만들 수 있다.
  2. 그냥 랜덤 오류
    위의 3번 항목에서도 설명하였지만 예외 사항이 랜덤하게 발생하고 추정이 불가했다.
  3. 방문 후 빠르게 종료한 경우
    최초 이벤트 수집 후 다음 이벤트가 수집되기 전 이탈한 경우겠다.

오늘 작성한 사용자 데이터를 기반으로

DAU(Daily Active User) – 단순히 그냥 활성사용자를 일별 기준으로 나눈 것

WAU(Weekly Active User) – 7일 동안의 활성 사용자

MAU(Monthly Active User) – 30일 동안의 활성 사용자, GA4에선 30일 활성사용자 대신 28일 활성사용자를 제공함. 단 기간을 30일 동안으로 걸어서 활용 가능

위의 3가지 항목과 고착성 등을 측정한다.

 

STUDIO MX

김태완
서울시 강남구 테헤란로78길 14-11, 6층 8층

Comments
  • 2023년 8월 24일
    songsunwoo

    잘읽었습니다. 저의 답답함을 공감해주는 글이었습니다. GA4 참 애매하고 어렵습니다
    저도 하나하나 다시 뜯어보고있어요 빅쿼리와 함께..

    reply
  • 2024년 1월 7일
    이준호

    큰 도움이 되었습니다. 좋은 글 감사드립니다.

    reply
Post a Comment