꿈은 데이터분석가, 취미는 계획

GA4가 활성 사용자 수를 세는 방식 본문

DATA/데이터_글읽기

GA4가 활성 사용자 수를 세는 방식

data_2080 2024. 6. 12. 09:57
728x90

읽은 글: GA4가 활성 사용자 수를 세는 방식[심화편]
출처 / 글 작성일: 데이터 리안 / 2023년 8월18일

링크: https://datarian.io/blog/postype-ga4-active-user-guide


1. GA4에서 사용자와 총 사용자는 다른 개념이다. 

GA4의 활성사용자 수는 이용자의 인게이지먼트(참여)가 발생한 이벤트만을 기준으로 한다.

ex) 앱삭제나 알림수신은 직접 서비스에 참여한 것이 아니므로 활성사용자로 count되지 않음

 

구글의 공식문서에서 제시하는 활성 사용자의 이벤트는 

1. 서비스를 처음으로 방문한 것

2.실행했거나 세션시간이 기록된 이벤트 

2. GA4는 고유한 개수를 빨리 세기 위해 근사치를 활용한다. 

클라이언트 ID(user_pesudo_id)의 고유한 개수를 세는 방식이 아니다.

정확도를 낮추고 퍼포먼스를 향상시키기 위해 근사치를 활용한다. 

GA4는 활성 사용자, 세션 등 자주 측정하는, 고유한 개수에 관한 측정항목을 측정하기 위해 HyperLogLog++ (HLL++) 알고리즘을 활용한다. 적은 메모리를 사용하되 어느 정도의 오차를 허용해 신뢰할 만한 값을 빠르게 얻는 것
즉, GA4의 샘플링이 100%를 기반으로 했다고 할지라도 활성 사용자를 포함한 어떤 수치들은 정확도 100%를 보장하지 않는다는 것을 의미함

1. 정확도 100%의 카디널리티를 세는 방식
COUNT(DISTINCT user_pseudo_id)

 

2. GA4가 HLL++ 함수를 활용해 카디널리티를 세는 방식

HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14))

 

*GPT를 활용한 쿼리 해석

1. HLL_COUNT.INIT 함수는 HyperLogLog 구조를 초기화하는 함수

2. user_pseudo_id는 이 구조에 추가할 데이터

3. 14는 HLL의 정밀도를 나타내는 매개변수

4. 정밀도가 높을수록 메모리 사용량이 증가하지만 추정치의 정확도가 높아짐

5. HLL_COUNT.EXTRACT(...): 함수는 초기화된 HLL 구조로부터 추정된 고유 값의 개수를 추출하는 함수


3. 그래도 여전히 GA4 UI와 숫자가 다르다면?

BigQuery 계산한 DAU > GA4 UI에서 확인한 DAU

GA가 사용자를 식별하는 순서는 아래와 같은 것이 다른 이유!

User-ID → Google 신호 데이터 → 기기 ID (→ 모델링)

 

1. BigQuery는 구글 신호데이터와 모델링을 추출할 수 없음

2. 로그인 하지 않은 이용자의 수(user_pseudo_id)가 많아질 수록, 즉 관찰기간이 길어질수록
    Google 신호 데이터와 모델링으로 중첩이 제거되지 않은 BigQuery가 GA4 UI상 수치에 비해 높아짐

3. GA4 UI의 수치가 스크린 너머의 실제 사용자 수에 더욱 가깝다고 말할 수 있음

4. 테스트 결과 로그인한 이용자의 개수(user_id)는 기간이 길어지더라도 대략0.3%미만의 오차를 거의 벗어나지 않았음 

4. 생각정리

최근 그로스해킹 책을 읽고 이커머스 데이터분석 프로젝트를 진행하면서  '활성 사용자 수'를 무엇으로 정의해야 하는지에 대한 고민을 하고 있는 중에 글을 읽게 되었다. 사용자를 선정하는 기준 뿐만 아니라 알고리즘을 통해 실제 사용자와 유사하게 측정하는 방법 또한 중요하다는 것을 알게 되었다. 

728x90