본문 바로가기

티스토리

티스토리 GA4 연결했는데 방문자가 계속 0명으로 나온 이유

티스토리 블로그를 만들고 Google Analytics도 연결해뒀다.

티스토리 플러그인에서 Google Analytics를 선택하고 GA4 측정 ID까지 입력했으니 당연히 잘 되고 있는 줄 알았다.

그런데 며칠이 지나도 GA4에 들어가 보면 계속 이 상태였다.

활성 사용자 0
신규 사용자 0
이벤트 0
평균 참여 시간 0초
 

처음에는 그냥 방문자가 없어서 그런가 싶었다.

아직 만든 지 얼마 안 된 블로그이기도 하고, Google 검색 색인도 제대로 잡히지 않은 상태라 충분히 그럴 수 있다고 생각했다.

그런데 티스토리 통계를 확인해보니 다음 검색을 통한 유입도 조금씩 발생하고 있었다.

그렇다면 적어도 GA4에 뭔가는 찍혀야 하는데 계속 0이었다.

그래서 설정을 하나씩 확인해봤다.


측정 ID부터 다시 확인했다

가장 먼저 확인한 건 당연히 측정 ID였다.

티스토리 관리자에서

플러그인 → Google Analytics

로 들어가면 측정 ID를 확인할 수 있다.

GA4에서도

관리 → 데이터 스트림 → 웹 스트림

으로 들어가 측정 ID를 확인했다.

둘 다 같은 G-XXXXXXXXXX 값이었다.

측정 ID를 잘못 입력한 문제는 아니었다.


페이지에 GA 태그가 들어가 있는지도 확인했다

다음에는 브라우저 개발자도구를 열어 확인했다.

페이지에서 Google Analytics 스크립트를 찾아보니 아래와 같은 gtag.js는 정상적으로 로드되고 있었다.

 
<script async
        src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX">
</script>
 

페이지 소스에서도 초기화 코드를 확인할 수 있었다.

 
window.dataLayer = window.dataLayer || [];

function gtag() {
    dataLayer.push(arguments);
}

gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
 

여기까지 보고 조금 애매해졌다.

측정 ID도 맞고 스크립트도 들어가 있는데 왜 데이터가 하나도 안 들어올까?


Network에서 collect 요청을 확인해봤다

이때부터는 실제로 GA4 서버로 데이터가 전송되고 있는지 확인해봤다.

Chrome 개발자도구에서

Network → 필터에 collect 입력 → 새로고침

을 했다.

정상적으로 GA4에 데이터가 전송되고 있다면 대략 이런 요청을 확인할 수 있다.

www.google-analytics.com/g/collect
 

그런데 아무리 새로고침해도 이 요청이 나오지 않았다.

collector라는 이름이 포함된 다른 요청은 있었지만 Google Analytics 요청은 아니었다.

즉,

GA 스크립트 로딩 O
gtag 설정 O
GA4 데이터 전송 X
 

인 상태였다.

단순히 GA4 보고서 반영이 느린 문제가 아니었다.


Tag Assistant에서도 확인해봤다

혹시 개발자도구에서 뭔가 잘못 보고 있는 건가 싶어서 Google Tag Assistant로도 확인했다.

여기서는 Google 태그 자체는 정상적으로 감지됐다.

Config도 실행되고 있었고 이벤트도 확인됐다.

그런데 결과를 보면 계속

이 태그는 조회를 보내지 않았습니다.

라고 표시됐다.

태그가 아예 설치되지 않은 게 아니라 태그는 존재하고 실행도 되는데 실제 조회가 전송되지 않는 상태였다.

send_page_view: false 같은 옵션이 들어갔나 확인해봤지만 그것도 아니었다.

동의 설정 때문에 analytics_storage가 차단된 것인지도 확인했는데 특별한 동의 설정은 구성되어 있지 않았다.

여기까지 확인하고 나니 GA4 계정 자체보다는 티스토리에 GA4가 설치된 방식을 한번 바꿔보는 게 낫겠다는 생각이 들었다.


티스토리 플러그인을 해제하고 직접 설치해봤다

GA4의 웹 스트림 상세정보를 확인해보니 아래쪽에 '태그 안내 보기' 메뉴가 있었다.

여기에서 직접 설치를 선택하면 Google에서 제공하는 기본 코드를 확인할 수 있다.

 
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>

<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
        dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'G-XXXXXXXXXX');
</script>
 

기존 코드와 중복되는 것을 피하기 위해 먼저 티스토리 Google Analytics 플러그인을 해제했다.

그리고

티스토리 관리자 → 꾸미기 → 스킨 편집 → HTML 편집

으로 들어가 <head> 바로 다음에 Google에서 제공한 코드를 직접 넣었다.

 
<head>

    <!-- Google tag -->
    ...

</head>
 

저장하고 다시 블로그를 열었다.


이번에는 g/collect가 바로 나왔다

다시 개발자도구를 열었다.

Network → collect → 새로고침

이번에는 아까 없었던 요청이 바로 나타났다.

https://www.google-analytics.com/g/collect
 

요청 내용을 확인해보니 page_view도 포함되어 있었고,

en=page_view
 

응답 상태도

204 No Content
 

로 정상 처리되고 있었다.

204 No Content라고 해서 오류인 것은 아니다. 서버가 요청을 정상적으로 처리했지만 돌려줄 응답 본문이 없다는 의미다.


GA4 실시간에서도 바로 확인됐다

Network에서 요청이 전송되는 걸 확인한 뒤 GA4 실시간 보고서도 확인했다.

그동안 계속 0이던 실시간 사용자와 페이지 조회가 이번에는 정상적으로 잡혔다.

결국 내 경우에는 GA4 속성이나 측정 ID를 잘못 만든 것이 아니었다.

티스토리 Google Analytics 플러그인을 이용했을 때는 태그 자체는 페이지에 들어가 있었지만 실제 GA4 수집 요청이 발생하지 않았다.

플러그인을 해제하고 Google에서 제공하는 기본 태그를 스킨 HTML에 직접 넣으니 정상적으로 데이터가 전송되기 시작했다.

다만 이것만으로 티스토리 Google Analytics 플러그인은 항상 문제가 있다고 일반화할 수는 없다.

내 블로그 환경에서는 이런 현상이 발생했고, 직접 설치 방식으로 변경했을 때 해결됐다는 정도로 정리하는 게 맞을 것 같다.


GA4가 계속 0이라면 g/collect부터 확인해보자

이번에 가장 도움이 됐던 건 GA4 설정 화면을 계속 들여다본 게 아니라 브라우저에서 실제 요청이 발생하는지 확인한 것이었다.

측정 ID가 맞고 gtag.js까지 페이지에 있다고 해서 데이터가 실제로 GA4까지 전달되고 있다고 볼 수는 없었다.

GA4를 연결했는데도 계속 0으로 나온다면 Chrome 개발자도구에서

Network → collect → 새로고침
 

부터 확인해보는 게 빠르다.

www.google-analytics.com/g/collect 요청이 있고 정상 응답을 받는다면 그다음 GA4 설정을 살펴보면 되고,

나처럼 요청 자체가 없다면 태그가 실제로 데이터를 전송하고 있는지부터 확인해볼 필요가 있다.

사실 아직 방문자가 많지 않은 블로그라 처음에는 그냥 방문자가 없어서 0인 줄 알았다.

그런데 내가 직접 블로그에 들어가서 페이지를 이동해봐도 실시간 사용자가 계속 0이었다.

알고 보니 방문자가 없어서가 아니라, 진짜로 GA4에 아무것도 보내고 있지 않았던 거였다