2023.07.04 - [GA4] - GA4 : 사용자 이탈 추적하기 (사용자 체류시간 측정)
저번 블로그에서 사용자 이탈을 추적하며 체류시간까지 측정할 수 있도록 했었죠.
이번 시간에는 저희가 만든 이탈의 체류시간과 user_engagement의 engagement_time_msec을 비교해보겠습니다.
1. 실험설계
가장 좋은 경우는 같은 페이지 내에서 같은 동일한 시간동안 체류한 후 발생한 exit 이벤트와 user_engagement 이벤트를 비교해서 체류시간 정확도를 분석하는 것이 가장 좋은 방식입니다.
따라서 핸드폰 스톱워치를 활용하고 페이지가 로드된 후부터 시간을 기록해서 두 이벤트에 기록되는 값을 통해서 정확도를 분석해보도록 하겠습니다.
참고로 저번 블로그를 못보신 분들을 위해 말씀드리면 exit이벤트를 통해 발생시킨 사용자 이탈이라는 이벤트는 제가 직접 만든 이벤트입니다. 해당 이벤트를 만든 이유를 간단하게 다시 말씀드리면 가장 큰 이유는 user_engagement 이벤트가 탐색보고서에서 잡히지 않기 때문에 탐색보고서에서 사용자 개별 체류 시간을 분석해보기 위해 만든 이벤트가 사용자 이탈이라는 이벤트입니다.
그런데 제가 이번 실험을 하면서 알게되었던 몰랐던 사실이 하나 있습니다.
user_engagement의 경우 웹이 포그라운드 상태 즉, 해당 탭에 포커스가 가 있을때만 시간이 측정됩니다.
그러나 제가 만든 사용자_이탈이라는 이벤트에 있는 user_participation_time매개변수는 웹이 백그라운드 상태여도 시간을 측정합니다.
따라서 이번 실험에서는 무조건 포그라운드 상태에 웹이 있다는 가정하에 진행하겠습니다. (따라서 시간기록은 핸드폰으로 진행)
그리고 추후 블로그에서 사용자 이탈 이벤트의 시간 측정을 백그라운드 상태일때는 멈추도록 수정하는 작업을 진행할 예정이니 기대 부탁드립니다!
2. 실험
이런식으로 웹사이트에 들어간 후 체류된 시간을 스톱워치와 이벤트 내 기록된 체류시간의 정확도를 비교했습니다.
3. 결과
ms를 기준으로 측정을 진행했고 제가 스톱워치를 통해 잰 사용자 체류시간과 두 이벤트에 측정된 체류시간의 오차를 %로 기록했습니다.
결과를 보시면 아시다시피 user_engagement나 사용자 이탈엫서 측정한 값은 큰 차이가 나지 않았고 또한 두 이벤트의 측정값 모두 스톱워치로 측정한 값과 최대 1%에서 최소 0.006%로 사람이 스톱워치를 누른것을 생각하고 보면 사실상 같은 값이라고 생각해도 될 것 같습니다.
따라서 제가 만든 사용자 이탈 이벤트, user_engagement 이벤트는 측정 정확도가 거의 비슷하다는 것을 알 수 있었습니다.
그런데 실험 결과중에 예상한 것과 달랐던 결과도 있습니다. GA4는 UA와 다르게 사용자가 페이지를 나갈때 시간을 기록하는 방식으로 훨씬 정확하다고는 하지만 웹서비스 자체를 이탈하는 페이지에 대해서는 정확히 추적하지 못한다고 했었습니다.
따라서 저는 user_engagement로 측정한 값은 부정확할 것이라고 예상했지만 제가 측정한 것이 이탈 페이지 임에도 불구하고 매우 높은 정확도를 보여줬습니다.
4. ETC..
위 실험결과를 보면 user_engagement와 사용자 이탈 정확도가 거의 비슷하니 이벤트를 새로 만들필요가 없는 것 아닌가? 하고 생각할 수 있습니다.
하지만 저번 블로그에서 말씀드렸다시피 user_engagement 이벤트는 탐색보고서에서 측정 항목으로 활용할 수 없으며, 사용자 개별 체류시간을 분석하고자 해도 한 사용자에 대한 평균 체류시간만 분석이 가능합니다.
즉 한 사용자가 시간내에 10초, 10분 이렇게 체류했으면 우리가 확인할 수 있는 값은 5분 5초 라는 것이지요.
그러나 사용자 이탈 이벤트를 새로 만들면 모두 개별적으로 확인이 가능하며, 또한 1분 30초 미만 체류한 이벤트(사람수), 1분 30초 이상 3분 미만 체류한 이벤트(사람수) 등 각 페이지 조회에 대해 체류시간을 묶어서 확인하기 용이합니다.
또한 사용자 이탈을 잡게 되면, 다른 이벤트와 묶어서 활용할 수 있습니다.
예를 들어 해당 사용자가 우리 웹서비스에서 얼마나 스크롤을 했는지 보려면 25%, 50%, 75% 스크롤 할때마다 모두 기록되고 이렇게 3번 기록되었으니 "아! 최대 75%까지 하고 나갔구나"라고 알아내야 합니다. 즉 알기는 어렵지 않지만 보고서가 지저분해 지는 단점이 있죠.
그러나 이탈을 잡는 이벤트를 생성하면 최대 어디까지 스크롤했는지 기억했다가 이탈할때 한번만 보내면 되니 보고서가 매우 깔끔해지겠죠?
그럼 user_engagement와 다른이벤트를 묶어보면 되는거 아님? 할수 있지만 user_engagement는 트리거로 활용할 수 없기 때문에 이탈을 새로 잡아야 합니다.
오늘은 제가 만든 사용자 이탈 이벤트와 구글에서 제공해주는 user_engagement 이벤트에서 사용자 체류시간 측정의 정확도를 실험해보고 비교해 보았습니다.
실험과정에서 제가 만든 사용자 이탈 이벤트가 백그라운드 상태일때도 시간을 측정한다는 문제점을 발견했고
다음 블로그에는 이를 해결해보도록 하겠습니다.
'GA4' 카테고리의 다른 글
GA4 : 사용자 이탈 추적하기(2) (사용자 unfocus 상태 추가 추적) (0) | 2023.07.13 |
---|---|
GA4: GTM으로 이벤트 변수 수정하기 (0) | 2023.07.12 |
GA4: BigQuery 연동하기 (0) | 2023.07.06 |
GA4 : 사용자 이탈 추적하기 (사용자 체류시간 측정) (3) | 2023.07.04 |
GA4: 유입경로 탐색 보고서 (0) | 2023.07.01 |