먼저 구글 애널리틱스 google merchandise store의 데이터를 활용해서 페이지 및 화면 클래스의 보고서를 쿼리로 데이터를 추출하고 태블로를 활용해서 구글 애널리틱스 보고서와 동일하게 제작했습니다. 페이지 및 화면 클래스 구글 애널리틱스 보고서
이번은 방문 페이지 보고서를 빅쿼리를 통해 데이터를 추출하고 대시보드 제작까지 해보려고 합니다. 방문 페이지와 페이지 및 화면 클래스 보고서의 차이점을 이해하는 데 시간이 조금 걸렸지만, 블로그를 구글 애널리틱스와 연동해서 직접 짠 쿼리가 보고서 값과 일치하는 지 확인하는 과정을 통해 이해를 할 수 있었습니다.
페이지 및 화면 클래스는 고객이 웹이나 앱을 사용할 때 모든 행동들을 보여주는 보고서입니다. 반면 방문 페이지는 고객이 운영하는 웹, 앱을 접속할 때 어떤 경로로 유입되었는지가 중요한 보고서로 방문한 경로의 값으로 부터 지표들의 값을 계산하게 됩니다.
아래 지표를 보면서 자세하게 설명하겠습니다.

세션수

세션은 사용자가 웹, 앱을 접속했을 때 발생하는 것을 의미합니다. 세션은 각 고유 사용자마다 같은 값을 가질 수도 있고, 다른 값을 가질 수도 있습니다.
이게 무슨 의미일까요? 기존 구글애널리틱스360은 세션이 초기화 되는 기준이 3가지였습니다. 30분이상 움직임이 없을 때, 자정이 넘어갔을 때, 기존과 다른 방식으로 접근했을 때 3가지 조건 중 한가지가 맞는다면 같은 사용자라도 다른 세션 아이디를 부여한 것입니다.
하지만 구글애널리틱스4는 30분이상 움직임이 없을 때만 세션이 초기화되도록 개선했다고합니다. 따라서 30분 이내 어떤 클릭을 하고 스크롤을 하던 이벤트마다 같은 세션아이디가 붙으며 30분이 넘어가면 같은 내가 접속을 해도 다른 세션 아이디가 부여됩니다. 이런 점으로 인해 사용자수와 달리 세션수는 같은 사용자이지만 여러번 집계가 될 수 있습니다.

image

위 쿼리 결과는 세션수를 빅쿼리를 통해 구한 결과입니다. 저 값들이 의미하는 것이 무엇일까요?
아까 위에서 방문 페이지는 어떤 경로로 유입되었는지가 중요하다고 했습니다. 따라서 방문 페이지는 모든 경로의 세션수를 구하는 것이 아닌, 한 세션이 처음 방문한 페이지만을 기준으로 세션수를 구해야합니다.

쿼리 결과를 보면 27326 세션수를 보이는 경로가 있습니다. 이것이 의미하는 것은 저 경로로 내가 운영하는 사이트를 접속한 세션이 27326개인 것입니다. 단순히 저 경로를 접속한 모든 세션수가 아닌 저 경로를 통해 유입된 세션수를 구하는것을 유의해주세요!
아마도 이를 통해 고객들이 어떤 경로를 통해 유입되는 지를 파악하기 위함인 것 같습니다.

사용자수

다음은 사용자수 입니다. 구글 애널리틱스4는 사용자를 구분하기 위한 값으로 user_pseudo_id를 개인마다 가지고 있습니다. 서로 다른 사용자가 같은 값을 가지는 경우는 없습니다!
사용자수도 세션수와 동일하게 운영하는 웹, 앱을 접속한 경로의 사용자수를 구해야합니다. 따라서 페이지 및 화면 클래스 보고서의 사용자수와는 다르게 됩니다.

image

위 쿼리 결과는 사용자수를 구한 결과입니다. 내림차순으로 정렬을 했는데, 같은 경로여도 세션수보다 적은 것을 볼 수가 있습니다.
가장 많은 사용자수는 23300명입니다. 이는 저 경로를 통해 사이트로 유입된 사용자수는 23300명 이라는 의미입니다. 아까 구했었던 세션수는 한 고객이 여러번 접속을 했더라도 세션이 다르다면 집계가 되었다면 사용자수는 여러번 접속을 하더라고 중복으로 집계를 하지 않습니다!

새사용자수

다음은 새사용자수입니다. 새사용자수는 고객이 웹, 앱을 접속할 때 기존 고객인지 신규 고객인지를 파악할 수 있습니다. 이를 파악하기 위한 매개변수로 구글애널리틱스4는 first_visit이라는 이벤트를 사용합니다.

따라서 사용자수와 구하는 방법은 같지만 조건을 줄 때 first_visit 이벤트가 발생한 고객을 쿼리로 작성만 하면 새사용자수를 구할 수 있습니다.

image

쿼리 결과를 통해 사용자수와 새사용자수를 비교해볼까요?
2020년 11월11일 ~ 2020년 12월06일 까지 한달동안 가장 많은 사용자수를 가졌던 경로는 사용자수가 23300명이었습니다. 하지만 이중 19140명이 새로운 고객입니다! 정말 많은 신규 고객을 보유하고 있습니다.

세션당 평균 참여 시간

다음은 세션당 평균 참여 시간 입니다. 구글 애널리틱스4가 제공하는 데모 계정 데이터는 일부만 제공되어 정합성을 확인하기 어려워서 블로그를 연동해서 정합성 확인 과정을 거쳤습니다. 그 중 세션당 평균 참여 시간이 구하는 과정이 가장 복잡했는데요. 세션당 평균 참여 시간을 구할 때 여러가지 상황을 고려해야 했습니다.

고객이 유입된 경로의 참여 시간만 집계하는지?, 세션은 전체 세션을 구한건지? 아니면 어떤 경로의 참여 시간을 구해야하는지? 이러한 여러가지 방법들이 떠올랐습니다.

정합성 검증을 통해 세션당 평균 참여 시간이 의미하는 것은 어떤 경로로 접속한 고객이 있다면 그 경로를 통해 접속한 고객의 평균 참여 시간이라는 것을 깨달을 수 있었습니다.

image

위 쿼리 결과를 보면서 첫 번째 경로를 이해해보겠습니다. engagement_time 이라는 컬럼은 저 경로를 통해 접속한 고객들이 웹, 앱을 머무르는 시간을 더한 것을 의미하며 단위는 초입니다.
session 컬럼은 아까 구한 것으로 저 경로를 통해 접속한 세션수를 의미합니다.
마지막 컬럼은 저 경로를 통해 접속한 고객들이 머무른 총합 시간과 저 경로를 통해 접속한 세션수를 나눈 컬럼입니다. 이것이 의미하는 것은 저 경로를 통해 접속한 한 세션은 평균적으로 68초 즉 1분 8초를 웹, 앱을 머무르는 것으로 해석할 수 있습니다.

이처럼 직접 빅쿼리를 통해 구글 애널리틱스4가 제공하는 보고서를 직접 만들어보았는데요. 사실 방문페이지는 저 지표들 이외로 전환 이벤트, 수익 컬럼이 있습니다. 수익 컬럼은 구하는 방법이 같아 작성하지 않았습니다. 전환 이벤트는 작성하기 위해 데이터 정합성을 살펴보았는데요, 제가 생각한 집계 방법들이 모두 구글 애널리틱스4가 제공하는 보고서 값과 다르게 나와서 제외하고 작성했습니다.

전환 이벤트는 전환으로 등록한 모든 이벤트가 나오는 것 같은데, 제 블로그 데이터를 통해 비교한 결과 우선 모바일로 접속한 전환 이벤트는 집계가 되지 않는 것 같습니다. 이것 말고도 1개 데이터 값이 구글 애널리틱스4 보고서 값으로 포함이 되지 않는 것 같은데, 왜 포함되지 않았는지 분석을 해야할 것 같습니다.

구글 애널리틱스4 보고서를 직접 쿼리로 다루면서 지표가 의미하는 것을 더욱 자세하게 이해할 수 있어서 도움이 된 것 같습니다!
쿼리 코드는 아래 링크로 남겨두겠습니다! 코드 보시고 궁금하거나 이상한 것이 있으면 깃허브 pull request 남겨주세요! 빅쿼리 코드

Categories:

Updated: