GA4 스팸 트래픽 차단: 유형별 판별 기준과 4단계 정리 순서
GA4의 스팸 트래픽은 필터 하나로 지울 수 있는 문제가 아닙니다. 어떤 경로로 들어왔느냐에 따라 막을 수 있는 위치가 다른 데이터 오염입니다.
GA4 스팸 트래픽을 막으려면 차단 설정보다 유형 구분을 먼저 해야 합니다. GA4의 데이터 필터는 내부 트래픽과 개발자 트래픽, 두 종류만 처리합니다. 그래서 외부 스팸은 태그 단계, 서버 단계, 보고서 단계에서 나눠서 처리해야 합니다.
아래에서 스팸 유형을 판별하는 기준, 단계별 차단 순서, 이미 쌓인 데이터를 광고 성과 판독에서 걸러내는 방법을 차례로 설명합니다.
1. GA4 스팸 트래픽 유형: 먼저 어디서 들어왔는지 나눠야 합니다
GA4에 쌓이는 이상 트래픽은 대개 세 갈래로 나뉩니다.
갈래마다 데이터가 들어오는 경로가 다르고, 그래서 막을 수 있는 위치도 다릅니다. 이 구분 없이 설정부터 건드리면 효과 없는 작업에 시간만 쓰게 됩니다.
스팸 트래픽 3가지 유형 비교
구분 | 들어오는 경로 | 사이트 방문 여부 | 막을 수 있는 위치 |
|---|---|---|---|
① 크롤러·봇 방문 | 실제로 페이지를 열고 태그 실행 | 방문함 | GA4 자동 제외 + 서버·방화벽 |
② 고스트 스팸 | 측정 ID로 수집 서버에 직접 히트 전송 | 방문 안 함 | 보고서 단계에서만 제외 가능 |
③ 태그 도용·복제 사이트 | 내 측정 ID가 다른 도메인에서 실행 | 내 사이트 아님 | GTM 트리거(호스트네임 조건) |
①번은 GA4가 이미 상당 부분 걸러주고 있습니다. GA4는 알려진 봇과 스파이더 트래픽을 자동으로 제외하고, 이 기능은 끌 수 없습니다. 다만 얼마나 제외됐는지 보여주지 않고, 알려진 목록에 없는 봇은 그대로 들어옵니다.
②번이 가장 까다롭습니다. 유니버설 애널리틱스 시절의 고스트 스팸은 대부분 Measurement Protocol을 거쳤습니다. GA4의 Measurement Protocol은 API 비밀번호를 요구하기 때문에 그 경로는 많이 줄었습니다. 그런데 웹 수집 엔드포인트는 측정 ID만 있으면 히트를 받아줍니다. 측정 ID는 페이지 소스에 그대로 노출되니, 사이트에 오지 않고도 데이터를 밀어 넣을 수 있습니다.
③번은 사이트 HTML을 통째로 복제한 피싱·스크래핑 페이지나, 스테이징 서버에 운영용 측정 ID를 그대로 둔 경우에 생깁니다. 엄밀히 말하면 스팸이 아니라 관리 실수인 경우도 많습니다.
-> 핵심: '사이트를 실제로 방문했는가'로 먼저 나누면 차단 위치가 정해집니다.
스팸을 의심할 만한 판별 신호
실무에서 스팸 여부를 볼 때는 아래 신호를 겹쳐서 봅니다. 신호 하나만으로 판정하면 정상 트래픽까지 잘라낼 수 있습니다.
호스트네임 불일치: 탐색 분석에서 '호스트 이름' 측정기준을 열었을 때 내 도메인이 아닌 값, 또는 (not set)이 섞여 있다면 ②·③번일 가능성이 높습니다.
참여율 0%에 가까운 세션 덩어리: GA4의 참여 세션은 10초 이상 머물렀거나, 키 이벤트가 발생했거나, 페이지를 2개 이상 본 세션입니다. 특정 소스의 참여율이 0%에 수렴하고 평균 참여 시간이 0초라면 봇일 가능성이 큽니다.
신규 사용자 비율 100% + 한 지역 집중: 판매하지 않는 국가나 특정 도시 하나에서 갑자기 유입이 몰리면 의심해 볼 만합니다.
의미 없는 참조 도메인·언어 값: 처음 보는 도메인이 추천 소스에 뜨거나, 언어 측정기준에 URL이나 홍보 문구가 들어 있다면 거의 확실한 스팸입니다.
방문 페이지 (not set) 급증: page_view 없이 이벤트만 들어온 세션에서 자주 보입니다.
여기서 흔히 하는 실수가 있습니다. 직접 유입 급증을 곧바로 스팸으로 판정하는 경우입니다. 앱 인앱 브라우저, 메신저 공유 링크, UTM이 빠진 문자 발송 링크도 직접 유입으로 잡힙니다. 그래서 같은 시점에 발송한 문자나 공유한 링크가 있었는지부터 확인해야 합니다.
2. GA4 스팸 트래픽 차단 전에 알아야 할 데이터 필터의 한계
유니버설 애널리틱스를 써 본 분들은 '보기 필터'에서 참조 도메인과 호스트네임으로 스팸을 걸러내던 방식을 기억하실 겁니다.
GA4에는 그런 자유도가 없습니다. 이 점을 모르고 설정 화면을 찾아 헤매는 경우가 실무에서 많습니다.
GA4 데이터 필터로 할 수 있는 것과 없는 것
항목 | GA4 데이터 필터 기준 |
|---|---|
필터 유형 | 내부 트래픽, 개발자 트래픽 2종만 |
판단 기준 | traffic_type 매개변수 값(내부), 디버그 매개변수(개발자) |
작업 방식 | 제외 또는 다음만 포함 |
속성당 개수 | 최대 10개 |
상태 | 테스트 / 활성 / 비활성 |
소급 적용 | 불가(활성화 이후 수집분부터 적용) |
제외된 데이터 | 영구 삭제, 복구 불가 |
정리하면 GA4 데이터 필터는 "참조 도메인이 A면 제외" 같은 조건을 걸 수 없습니다. 외부 스팸은 데이터 필터로 직접 막을 수 없다는 뜻입니다.
활성 상태로 바로 켜면 안 되는 이유
데이터 필터를 '활성'으로 켜는 순간부터 조건에 맞는 데이터는 수집 단계에서 버려집니다. 나중에 조건이 잘못됐다는 걸 알아도 되돌릴 방법이 없습니다.
그래서 순서는 반드시 테스트 → 검증 → 활성입니다. 테스트 상태로 두면 데이터는 그대로 수집되고, 조건에 맞는 이벤트에는 '테스트 데이터 필터 이름' 측정기준 값이 붙습니다. 탐색 분석에서 이 측정기준으로 나눠보면, 실제로 무엇이 잘려나갈지 미리 확인할 수 있습니다.
실무에서는 최소 일주일 정도 테스트 상태로 두고 주중과 주말 데이터를 모두 확인한 뒤 활성화하는 편이 안전합니다. 재택 근무자, 외근 중인 마케터, 공용 IP를 쓰는 협력사가 의도치 않게 걸리는 경우가 이 기간에 드러납니다.
-> 핵심: GA4 필터는 내부 트래픽 정리 도구입니다. 외부 스팸 차단 도구로 보면 안 됩니다.
3. GA4 스팸 트래픽 차단 4단계: 태그부터 보고서까지
앞에서 나눈 유형에 맞춰 차단 위치를 정하면 아래 4단계가 됩니다. 앞 단계일수록 데이터가 GA4에 들어오기 전에 막는 방식입니다.
① 태그 단계: GTM 트리거에 호스트네임 조건 걸기
GTM으로 GA4 태그를 운영 중이라면, 구성 태그와 이벤트 태그의 트리거에 Page Hostname이 내 도메인과 일치할 때만 실행되도록 조건을 추가합니다.
단일 도메인: Page Hostname 같음 example.com
서브도메인 포함: Page Hostname 정규식 일치 (^|.)example.com$
결제 대행사·외부 예약 페이지처럼 정상적으로 태그가 실행되는 외부 도메인이 있다면 목록에 함께 넣어야 합니다.
이 조건은 ③번(복제 사이트, 스테이징 서버) 유형을 막습니다. ②번 고스트 스팸은 태그를 거치지 않으니 이 단계로는 막히지 않습니다. 이 점을 모르고 설정했으니 끝났다고 판단하는 경우가 많습니다.
스테이징·개발 서버는 아예 별도 측정 ID를 쓰도록 분리하는 것이 가장 깔끔합니다.
② 수집 단계: 내부 트래픽 IP 규칙 정의
관리 → 데이터 스트림 → 태그 설정 구성 → 내부 트래픽 정의에서 사무실 IP를 등록합니다. IP 일치 방식은 '같음', '다음으로 시작', '다음으로 끝남', '포함', 'IP 주소 범위(CIDR)' 중에서 고를 수 있습니다.
규칙을 만들면 해당 IP의 이벤트에 traffic_type=internal 값이 붙습니다. 이 값을 기준으로 2번 항목에서 설명한 데이터 필터를 테스트 → 활성 순서로 켭니다.
예외 케이스도 있습니다.
유동 IP 환경: 재택·외근이 많아 IP가 고정되지 않으면 IP 규칙으로는 부족합니다. 이때는 GTM에서 특정 쿠키나 쿼리 매개변수가 있는 브라우저에만 traffic_type 값을 넣는 방식이 현실적입니다.
광고 검수 트래픽: 운영자가 광고 미리보기를 클릭하며 들어온 세션도 내부 트래픽입니다. 광고 소재를 자주 검수하는 계정일수록 이 비중이 생각보다 큽니다.
③ 귀속 단계: 원치 않는 추천 목록 정리
태그 설정의 원치 않는 추천 목록은 흔히 스팸 차단 기능으로 오해받습니다. 실제로는 해당 도메인을 세션의 유입 소스로 인정하지 않는 기능이고, 데이터 자체는 그대로 수집됩니다.
그래서 스팸 도메인을 여기에 넣어도 세션 수는 줄지 않습니다. 이 기능이 제 역할을 하는 곳은 PG 결제창, 본인인증 페이지, 외부 로그인 도메인처럼 결제 직전에 사용자가 잠깐 나갔다 돌아오는 구간입니다. 이런 도메인이 추천 소스로 잡히면 구매 전환이 광고가 아니라 결제 대행사 도메인에 귀속됩니다.
-> 핵심: 원치 않는 추천은 스팸 차단이 아니라 전환 귀속을 바로잡는 기능입니다.
④ 서버 단계: 방화벽·봇 관리로 방문 자체를 줄이기
①번 유형인 크롤러·봇이 GA4 자동 제외 목록을 빠져나가 계속 들어온다면, 사이트 앞단에서 막는 것이 근본적인 해결입니다. CDN이나 웹 방화벽(WAF)의 봇 관리 규칙, 특정 국가·ASN 차단, 비정상 요청 빈도 제한이 여기에 해당합니다.
다만 국가 단위 차단은 해외 고객이나 해외 VPN을 쓰는 실사용자까지 막을 수 있습니다. 차단보다 '챌린지(검증 페이지)' 방식을 먼저 적용해 보는 편이 안전합니다.
실무 사례: 직접 유입이 늘었는데 매출은 그대로였던 경우
한 쇼핑몰 계정에서 특정 주부터 직접 유입 세션이 평소의 몇 배로 늘었습니다. 그런데 매출과 장바구니 이벤트는 변화가 없었습니다. 광고 쪽 문제로 의심하고 캠페인을 먼저 열어봤지만 광고 클릭 수는 그대로였습니다.
탐색 분석에서 호스트 이름, 국가, 참여율을 함께 펼치자 원인이 드러났습니다. 늘어난 세션은 한 해외 지역에 몰려 있었고, 참여율은 0%에 가까웠으며, 호스트 이름 중 일부는 (not set)이었습니다. 실제 방문 없이 측정 ID로 직접 쏜 고스트 히트와, 같은 지역의 봇 방문이 섞여 있던 상황입니다.
이때 정리 순서는 이렇습니다.
순서 | 조치 | 막은 유형 |
|---|---|---|
1 | GTM 트리거에 호스트네임 조건 추가 | 복제·스테이징 실행분 |
2 | 방화벽에서 해당 지역 비정상 요청에 챌린지 적용 | 실제 방문 봇 |
3 | 보고서·잠재고객에 '호스트 이름 = 내 도메인' 조건 고정 | 고스트 스팸 |
4 | 이상 구간을 기록하고 전주 대비 비교에서 제외 | 성과 판독 왜곡 |
이 사례에서 얻을 수 있는 교훈은 단순합니다. 세션은 늘었는데 키 이벤트가 그대로라면, 광고보다 측정 데이터를 먼저 의심해야 합니다.
4. 이미 쌓인 GA4 스팸 데이터, 광고 성과 판독에서 걸러내는 법
데이터 필터는 소급되지 않습니다. 그래서 이미 들어온 스팸은 지울 수 없고, 보고서와 광고 연동 지점에서 걸러서 읽는 것이 현실적인 대응입니다.
보고서 단계: 비교·세그먼트로 기준선 고정
표준 보고서: 상단 '비교 추가'에 '호스트 이름 = 내 도메인' 조건을 걸고, 이 조건을 기준선으로 씁니다.
탐색 분석: 세션 세그먼트로 '호스트 이름 일치 + 참여 세션 = 1' 같은 조건을 저장해 두면 반복해서 쓸 수 있습니다.
검증용 맞춤 측정기준: 내 GTM 태그에서만 보내는 이벤트 매개변수(예: 태그 버전 값)를 맞춤 측정기준으로 등록해 두면 고스트 히트와 구분하기 쉬워집니다. 외부에서 직접 쏜 히트에는 이 값이 없기 때문입니다.
BigQuery 연동 계정: 원본 이벤트 테이블에서 같은 조건으로 걸러 집계하면 가장 정확합니다.
데이터 삭제 요청 기능도 있습니다. 하지만 이 기능은 주로 개인정보 같은 특정 매개변수 값을 지우기 위한 것이고, 스팸 정리용으로 쓰기에는 범위 지정이 거칠어 권장하지 않습니다.
광고 연동 단계: 잠재고객과 키 이벤트 오염 막기
광고 실무에서 스팸이 진짜 문제가 되는 지점은 보고서 숫자가 아니라 광고 플랫폼으로 넘어가는 데이터입니다.
GA4 잠재고객: '최근 30일 사이트 방문자' 같은 넓은 리마케팅 잠재고객에 봇 세션이 섞이면, 구글 광고 리마케팅 예산이 실제 사람이 아닌 대상에 쓰입니다. 잠재고객 조건에 호스트네임과 참여 세션 조건을 추가하는 것이 안전합니다.
키 이벤트 가져오기: GA4 키 이벤트를 구글 광고 전환으로 가져온다면, 봇이 발생시킬 수 있는 가벼운 이벤트(scroll, 단순 page_view 기반 이벤트)는 입찰 최적화 전환으로 쓰지 않는 편이 낫습니다. 자동 입찰이 봇 행동을 학습하게 되기 때문입니다.
전환율 판독: 세션 기반 전환율은 분모에 스팸이 섞이면 실제보다 낮게 나옵니다. 스팸 구간에서는 세션 전환율 대신 광고 클릭 대비 전환, 또는 참여 세션 대비 전환으로 읽어야 판단이 흔들리지 않습니다.
-> 핵심: 스팸이 보고서 숫자에만 머물면 불편한 정도로 끝납니다. 잠재고객과 전환으로 넘어가면 예산 손실이 됩니다.
GA4와 광고 매체 숫자가 어긋나는 다른 원인이 궁금하다면 아래 글을 함께 보시면 판단이 빨라집니다.
메타 ga4 데이터 차이, 왜 생기고 어디를 믿어야 할까
자주 묻는 질문
Q. GA4에서 스팸 리퍼러를 필터로 제외할 수 있나요?
GA4 데이터 필터는 내부 트래픽과 개발자 트래픽만 지원하기 때문에 참조 도메인 기준으로는 제외할 수 없습니다. 실제 방문 스팸은 GTM 트리거나 방화벽에서 막아야 합니다. 고스트 스팸은 보고서 비교·세그먼트로 걸러서 읽는 방식이 현실적입니다.
Q. GA4 봇 트래픽은 자동으로 제외되나요?
네, 알려진 봇과 스파이더 트래픽은 GA4가 자동으로 제외하며 이 기능은 끌 수 없습니다. 다만 제외된 양은 확인할 수 없고, 알려진 목록에 없는 봇은 그대로 수집됩니다. 참여율이 0%에 가까운 소스가 반복된다면 별도 조치가 필요합니다.
Q. GA4 데이터 필터를 켜면 과거 데이터도 정리되나요?
아닙니다. 데이터 필터는 활성화한 시점 이후 수집분에만 적용되고, 제외된 데이터는 복구할 수 없습니다. 그래서 테스트 상태로 먼저 검증한 뒤 활성화해야 합니다.
Q. 원치 않는 추천에 스팸 도메인을 넣으면 차단되나요?
차단되지 않습니다. 해당 도메인을 유입 소스로 인정하지 않을 뿐이고 세션과 이벤트는 그대로 수집됩니다. 이 기능은 PG 결제창이나 본인인증 도메인처럼 전환 귀속을 바로잡아야 하는 곳에 쓰는 것이 맞습니다.
Q. 갑자기 직접 유입이 늘었는데 스팸인지 어떻게 확인하나요?
같은 구간의 키 이벤트와 매출이 함께 늘었는지 먼저 확인합니다. 세션만 늘고 전환은 그대로라면 호스트 이름, 국가, 참여율을 함께 펼쳐보세요. 세 가지가 동시에 이상하면 스팸일 가능성이 높습니다. 문자·메신저 링크 발송 이력도 함께 확인해야 오판을 피할 수 있습니다.
마무리
GA4 스팸 트래픽은 '차단 버튼'을 찾는 문제가 아닙니다. 들어온 경로를 나눠서, 막을 수 있는 위치에서 막는 문제입니다.
정리하면 순서는 이렇습니다.
① 호스트 이름, 참여율, 지역으로 스팸 유형부터 나눈다
② 복제·스테이징 실행분은 GTM 호스트네임 조건으로 막는다
③ 내부 트래픽은 IP 규칙과 데이터 필터로 테스트 후 제외한다
④ 실제 방문 봇은 방화벽에서, 고스트 스팸은 보고서와 잠재고객 조건으로 걸러낸다
무엇보다 중요한 것은 스팸이 광고 플랫폼으로 넘어가는 지점을 막는 일입니다. 리마케팅 잠재고객과 가져온 전환이 깨끗해야 자동 입찰도 실제 고객을 기준으로 학습합니다.
측정 환경을 처음부터 다시 점검해야 한다면 태그 설치와 연동 순서부터 확인하는 것을 권합니다.
구글 태그 설치 순서: 광고 성과 측정 전 확인할 4단계 기준
구글 광고 GA4 연동: 실무 순서와 확인 기준 정리