[오늘의 핵심 요약]
- 데이터 필터, 이번 트래픽엔 효과 없음 확인
- 탐색 세그먼트로도 걸러지지 않는 한계
- 애드센스·서치콘솔은 오염되지 않음 확인
- 결산 기준, 사용자 수 대신 수익 지표로 전환
안녕하세요. 경제적 자유를 향해 하루를 쌓아가는 엄마, 하루 쌓기입니다.
지난 글에서 애널리틱스에 찍힌 이상 트래픽의 정체를 고스트 스팸으로 확인했습니다. 그다음은 "그럼 어떻게 막지"였습니다. 며칠에 걸쳐, 여러 방법을 찾아 하나씩 시도했습니다. 이 글에서는 실제로 무엇을 시도했고, 어디서 막혔고, 결국 어떤 답을 찾았는지 정리합니다.

1. 고스트 스팸, 나에게 어떤 의미였나
1-1. 왜 내 블로그였나
- 측정 ID, 사이트 소스 코드에 그대로 노출되어 누구나 확인 가능
- GA4, 신호 수신 시 발신 주체가 실제 브라우저인지 검증하지 않는 구조
- 두 조건 모두 GA4를 쓰는 모든 사이트에 공통 적용됨
- GA4를 쓰는 이상 누구나 노출될 수 있는 구조.
측정 ID만 확보하면 검증 없이 신호가 기록되는 구조적 허점 탓에, 특정 사이트를 겨냥한 공격이라기보다 확률적으로 걸린 결과로 추정
1-2. 결산 데이터에 남는 영향
- 확인 시점 이후, 규모만 줄어든 동일 유형 트래픽 재발
- 애드센스 페이지뷰·수익, 서치콘솔 크롤링·노출은 평소 수준 유지
- GA4의 사용자 수·채널 비중만 반복적으로 왜곡
- 수익과 검색 성과에는 영향이 없지만, 애널리틱스의 방문자 통계는 매번 오염.
- ㄴ 이 부분을 그대로 두면 매달 결산 글의 신뢰도가 흔들릴 수 있어, 실제 대응을 시도.
2. 실제로 시도한 조치
2-1. 데이터 필터 설정
- 관리 > 데이터 수집 및 수정 > 데이터 필터에서 '웹 호스트 이름 트래픽' 유형 선택
- 필터 연산을 '트래픽 포함 기준'으로 설정, freestacker.com 지정 시도
- 설정 중 경고 문구 발견: "호스트 이름 포함 필터는 측정 프로토콜에서 전송된 이벤트에 적용되지 않으며, 해당 데이터는 모두 계속 차단 해제됩니다"
- 측정 프로토콜은 실제 브라우저를 거치지 않고 GA4 서버에 직접 신호를 쏘는 방식으로, 지금까지 확인한 이상 트래픽 유형과 정확히 일치. 즉 이 필터는 다른 유형의 스팸은 막아주지만, 이번에 겪은 유형은 애초에 필터링 대상에서 제외.
- ㄴ▶ 따라서 필터를 만들면 해결될 거라 기대했지만, 시작부터 다른 문제였습니다.
※ 데이터 필터가 측정 프로토콜에서 들어오는 신호를 막아주지 못하는 이유.
측정 프로토콜(Measurement Protocol)은 측정 ID와 API 비밀번호만 있으면 누구나 이 통로로 신호를 전송 가능. > 일반적인 통로에서 브라우저가 자동으로 채우는 hostname 값을 기준으로 거르는 방식. 측정 프로토콜 통로로 들어오는 신호는 hostname 값이 정상적으로 채워지지 않은 채 들어옴. > 따라서 필터가 적용될 여지 자체가 없음.
GA4가 데이터를 받는 통로는 아래의 두 가지
1. 일반적인 통로 (브라우저를 통한 자동 전송): 사람이 페이지에 접속하면 추적 코드가 자동으로 신호를 보냄
2. 측정 프로토콜 (프로그램이 직접 전송): 브라우저 없이, 프로그램이나 서버가 GA4로 직접 신호를 전송. 키오스크·앱처럼 브라우저가 없는 환경의 활동을 기록하기 위해 구글이 공식으로 제공
2-2. 탐색 세그먼트로 우회 시도
- 탐색(Explore) 메뉴에서 '국가-Singapore 제외' 세그먼트 생성
- 조건은 정확했으나, 표에 싱가포르 데이터 그대로 노출
- 기법 변경(세그먼트 중복 분석 → 자유 형식), 필터 재설정 등 시도 후에도 동일
- 세그먼트를 적용해도 걸러지지 않는 원인은 명확히 특정함. 25일 하루에만 115개국이 찍혔던 걸 감안하면, 설령 세그먼트가 작동하더라도 매달 국가를 일일이 걸러내는 방식 자체가 지속 가능한 해법이 아님.
- ㄴ▶ 두 방법 모두, 수집 단계에서 이 트래픽 자체를 원천적으로 막는 조치는 아님.
3. 결국 찾은 답, 관점의 전환
3-1. 남는 방법, 교차검증 후 제거
- 원천 차단이 안 된다면, 남는 방법은 데이터를 교차검증해 오염된 부분을 확인 후 결산에서 제외하는 것
- 25일 하루에만 115개국이 찍혀, 매달 이만큼을 하나씩 걸러내야 함
- 이 작업에 드는 시간과 에너지 대비, 걸러지는 결과는 크지 않다고 판단
- 조치로도 막을 수 없고, 수동 제거도 비효율적이라면 접근 자체 바꿈.
- ㄴ▶ 오염된 데이터를 걸러내는 대신, 애초에 오염되지 않는 지표가 있는지부터 확인했습니다.
3-2. 오염되지 않은 지표부터 확인
| 지표 | 오염 여부 |
| 애드센스 수익·페이지뷰·RPM | 거의 없음 |
| 서치콘솔 검색 노출·클릭·CTR | 없음 |
| GA4 사용자 수·채널 비중 | 심함 |
- 오염되는 건 GA4의 방문자 통계뿐, 돈이 걸린 지표와 검색 성과 지표는 오염 없음.
3-3. 결산 기준 재설정
- 애드센스·서치콘솔 수치를 결산의 핵심 지표로 사용
- GA4의 전체 사용자 수·채널 비중은 참고용으로만 활용
- GA4의 페이지별 성과(어떤 글이 읽혔는지)는 계속 유효하게 사용
- ㄴ▶ 오염된 데이터를 매번 걸러내려 애쓰기보다, 오염되지 않는 지표를 중심에 두는 편이 더 현실적.
마치며: 완벽한 차단보다, 흔들리지 않는 기준을 찾은 시간
며칠에 걸쳐 필터를 만들고, 세그먼트를 걸고, 조건을 몇 번이나 바꿔봤습니다. 그런데도 싱가포르는 계속 표에 남아 있었습니다. 처음엔 제가 뭘 잘못한 줄 알았습니다. 하지만 하나씩 확인해 보니, 애초에 이 방식으로는 완전히 막을 수 없는 유형의 트래픽이었습니다.
시간을 쓰고 나서야, 현실적인 질문을 할 수 있었습니다. "어떻게 완벽히 막을까"가 아니라, "무엇에 흔들리지 않고 결산할까"를 물어야 했습니다. 다행히 애드센스와 서치콘솔은 이 트래픽의 영향을 받지 않고 있었고, 그 사실 하나로 결산 방식을 다시 세울 수 있었습니다.
이번 일을 겪으며 데이터를 보는 눈이 조금 달라졌습니다. 그동안 대략적인 수치만 훑고 넘어갔던 것을 알게 되었고, 앞으로는 어떤 지표를 얼마나 신뢰할 수 있는지부터 확인해야 한다는 것을 배웠습니다.
보태기.
솔직히 아직 해당 내용이 잘 이해되지 않습니다. 이해도 되지 않는 내용을 잡고 있으니, 중간에 그만둘까 하는 마음도 불쑥 불쑥 들었습니다. 블로그 글쓰기 창을 열고 있으면, 얻은 것 없이 시간을 보낸 거 같아 복잡한 기분이었습니다. 하지만 시작한 일 완벽하지는 않더라도 끝이 있어야 한다는 생각으로 왔습니다. 여기까지 온 자신을 칭찬하며 다음 글을 생각해 봅니다.
함께 읽으면 좋은 글
[블로그 성장] 구글 애널리틱스의 이상 트래픽, 그 정체는? - 방문자 471배 급증의 원인을 추적한 1편 기록
[애드센스] 7월 결산: 증가폭 감소, 구조의 변화 - 수익 지표 중심 결산의 이전 기록
블로그를 구독하시면 새 글이 올라올 때마다 바로 받아보실 수 있습니다. 😊
[용어 설명]
- 측정 프로토콜(Measurement Protocol): 브라우저를 거치지 않고 서버가 GA4에 직접 데이터를 전송하는 방식
- 세그먼트: 전체 데이터 중 특정 조건에 맞는 사용자만 따로 묶어서 보는 GA4 기능
우리의 소중한 하루가 모여 함께 성장하는 내일이 되길 소망하며, 끝까지 읽어주셔서 진심으로 감사합니다.
2026-09-04. 금 오후 12:20
'blog-monetization' 카테고리의 다른 글
| [블로그 성장] 구글 애널리틱스의 이상 트래픽, 그 정체는? (0) | 2026.08.31 |
|---|---|
| [블로그 성장] 반복된 블로그 공백, 원인을 다시 찾다 (0) | 2026.08.26 |
| [애드센스] 7월 결산: 증가폭 감소, 구조의 변화 (2) | 2026.08.18 |
| [애드센스] 6월 결산: Active View 반등, CTR 4배 상승 (0) | 2026.07.06 |
| [애드센스] 5월 결산: 역대 최고 RPM, 무엇이 달라졌나 (0) | 2026.06.09 |