LainyZine: 프로그래머 가이드 🐣

구글 애널리틱스 페이지뷰 중복 집계 방지하는 방법

Google Analytics는 웹 사이트의 방문자와 이벤트 및 광고 관련 성과를 측정할 수 있는 웹 서비스입니다. 사이트를 등록하고 추적 코드를 웹 사이트에 삽입해서 사용할 수 있습니다. 이 때 여러가지 원인으로 페이지뷰가 중복 집계 되는 경우가 있습니다.

Page / Session이 갑자기 2 이상으로 증가했습니다
Bounce Rate가 급격히 줄어드는 증상이 나타납니다

위 이미지들은 설정 실수로 인해 중복 페이지 뷰가 집계되었던 스크린샷입니다. 정보성 웹사이트들은 세션당 페이지뷰가 2를 넘는 경우가 많지 않습니다만, 중복으로 페이지 뷰가 집계되면 무조건 2이상, 평소의 2배 혹은 3배 이상으로 측정됩니다. 또한 이탈률(Bounce Rate)이 거의 0%의 가까운 값으로 떨어집니다. 그림만 봐도 아주 이상하죠? 🧐

이 글에서는 이러한 중복 집계가 발생하는 경우를 알아보고 해결방법을 소개합니다.

Googla Analytics의 추적 코드가 중복으로 들어가는 경우

Google Analytics로 웹 사이트 방문 통계를 보고 싶다면 아래와 같은 추적 코드를 추적하려는 모든 웹 사이트 HTML 소스 코드에 추가해야합니다. 여기서 xxxxxx 부분은 사이트에 부여된 값으로 변경해주어야합니다.

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxx"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'xxxxxx');
</script>

페이지뷰 중복이 발생되는 가장 일반적은 경우는 실수로 이 코드를 2번 이상 집어넣는 경우입니다. 코드 전체를 두 번 이상 넣거나 혹은 스크립트를 수정하다가 gtag 부분을 2번 넣어도 페이지뷰가 중복으로 측정되는 것으로 보입니다.

  gtag('config', 'xxxxxx');
  gtag('config', 'xxxxxx');

페이지뷰 중복 측정이 의심되는 경우, 가장 확실하게 문제를 파악하는 방법은 직접 운영하는 웹 사이트의 소스코드를 열어서 gtag(로 검색해서 확인해보는 방법입니다. 먼저 소스 코드를 확인하고자 하는 웹 페이지로 이동합니다. 일반적으로 Windows 웹 브라우저에서는 Ctrl + U, 맥에서는 Command + Option + U를 입력해서 소스 코드 뷰를 열 수 있습니다. gtag에 사용된 사이트 고유 ID 값이 반드시 한 번만 사용되어야합니다.

LainyZine의 구글 애널리틱스 추적 코드

위 코드는 LainyZine에 삽입된 Google Analytics 추적 코드입니다. LainyZine에서는 2개 유형으로 통계를 수집하고 있어, 서로 다른 고유 ID로 gtag를 사용하고 있습니다. 이 경우는 문제가 없습니다. 같은 아이디로 gtag가 2번 사용되고 있다면 소스 코드를 수정하거나, 사용중인 플랫폼의 플러그인 설정을 변경해서 중복을 제거해주어야합니다.

문제를 해결했으면, 몇 시간 정도 후에 Google Analtics의 ’잠재고객 > 개요’로 이동해서 시간당 페이지뷰/세션 값이 정상화되었는지 확인해봅니다.

Google Tag Manager로 인한 중복 측정 문제

Google Analytics를 Google Tag Manager(GTM)와 함께 사용하는 경우가 있습니다. GTM의 추적 코드는 다음과 같습니다. 먼저 아래 코드를 head 태그 안에 추가합니다. 이 때 GTM-XXXX은 본인의 GTM 컨테이너 ID로 변경해야합니다.

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->

그리고 다음 코드를 body 태그 상단에 추가합니다. 앞선 코드와 마찬가지로 GTM-XXXX은 본인의 GTM 컨테이너 ID로 변경해야합니다.

<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

GTM의 컨테이너가 Google Analytics와 연결되어있는 경우, GTM 코드에서 한 번 더 페이지뷰를 카운트합니다. 따라서 Google Analytics 코드에서 한 번, GTM 코드에서 한 번, 총 2번의 페이지뷰로 기록이 되는 문제가 발생합니다.

이 문제를 해결하려면 GTM 코드가 아닌, Google Analytics 추적 코드를 수정해주어야합니다.

  gtag('config', 'xxxxxx');

이 부분을 아래와 같이 변경합니다. send_page_view 값을 false로 설정했습니다.

  gtag('config', 'xxxxxx', { 'send_page_view': false });

이렇게 설정하면 Google Analytics 추적 코드에서는 페이지 뷰를 카운트하지 않습니다. 즉, GTM에서만 한 번 카운트 됩니다. 나중에 GTM 코드를 제거한다면 이 설정도 잊지 않고 다시 변경해야합니다.

변경된 추적 코드를 반영해줍니다. 반영 후에도 정상적으로 변경되었는지 꼭 소스 코드 보기로 확인해주세요. 몇 시간 정도 후에 Google Analtics의 ’잠재고객 > 개요’로 이동해서 시간당 페이지뷰/세션 값이 정상화되었는지 확인해보세요.

추천 문서

LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.