스레드 광고, 이제 인스타그램 계정 없이도 걸 수 있어요
스레드 팔로워는 4천 명, 인스타는 3년째 게시물 12개. 광고 버튼만큼은 늘 인스타 사정에 묶여 있었어요.
월요일 아침에 GA4 실시간 보고서를 열었더니 지난 30분 사용자가 61명이었습니다. 저희 회사 홈페이지는 평일 낮에도 이 숫자가 10명을 넘기면 많은 편입니다.
인테리어 시공 업체에서 홈페이지와 광고를 혼자 맡고 있습니다. 주말에 광고를 돌린 것도 아니고 블로그 글이 터진 것도 아니었습니다. 기술 보고서에서 사용자 수를 호스트 이름으로 쪼개 보니 금요일 밤 10시부터 들어온 412명 가운데 저희 도메인으로 들어온 사람은 한 명도 없었습니다.
호스트 이름 칸에는 처음 보는 도메인 세 개가 찍혀 있었습니다. 하나는 저희 홈페이지를 통째로 복사해 둔 사이트였고 나머지 둘은 뭔지 끝내 못 알아냈습니다.
원리는 단순합니다. GA4 추적 코드는 페이지 소스 안에 그대로 들어 있습니다. 누군가 저희 페이지를 복사해서 다른 도메인에 올리면 그 사이트에 들어온 사람도 저희 측정 ID로 집계됩니다. 코드만 긁어다 자기 사이트에 붙여도 마찬가지고요.
이렇게 들어온 412명은 견적 문의를 한 건도 남기지 않았습니다. 그런데 주간 보고서에서는 신규 사용자가 19% 늘어난 것으로 보였습니다. 대표님께 “지난주 유입이 늘었다”고 보고했다가 사흘 뒤에 정정한 게 이 일의 시작이었습니다.
GA4에는 원래 호스트 이름으로 데이터를 거르는 필터가 있었습니다. 6월에 생긴 기능입니다. 다만 그때는 “이 도메인은 빼라”는 제외 방식만 가능했습니다.

처음 보는 도메인 세 개를 제외 목록에 넣고 끝났다고 생각했습니다. 2주 뒤에 다른 도메인이 나타나더군요. 또 넣었습니다. 그다음 주에 둘이 더 나왔습니다.
7월부터 9월까지 제외 필터를 아홉 번 수정했습니다. 필터는 만든 시점 이후 데이터에만 적용되기 때문에 새 도메인을 발견하고 넣을 때까지 들어온 데이터는 보고서에 그대로 남았습니다. 그 사이 쌓인 가짜 사용자는 제가 센 것만 1,300명이 넘습니다.
상대가 도메인을 바꾸는 속도를 제가 따라갈 수가 없었습니다. 두더지 잡기 같았습니다.
구글이 9월 21일 애널리틱스 새 기능 목록에 호스트 이름 “포함” 필터를 추가했습니다. 승인한 도메인 목록을 만들어 두면 그 목록에 있는 곳에서 온 이벤트만 받아들이는 방식입니다. 구글은 그동안 제외 필터만 가능해서 새 스팸 출처가 나올 때마다 손으로 갱신해야 했고, 허용 목록은 설정이 단순하고 유지 관리가 거의 필요 없다고 설명했습니다. (Google 애널리틱스 새로운 기능)
공지에 적힌 조건 두 가지는 따로 적어 두는 게 좋습니다.
Search Engine Journal은 이튿날 기사에서 서브도메인 처리 방식과 여러 호스트 이름을 받는 속성에서의 동작은 구글이 아직 설명하지 않았다고 짚었습니다. (Search Engine Journal) 실제로 제 계정에서는 9월 25일에야 포함 옵션이 보였습니다.
관리 메뉴에서 데이터 수집 및 수정, 데이터 필터로 들어가 새 필터를 만들면 필터 작업 칸에 “포함만”과 “제외”가 나옵니다. 조건은 호스트 이름이 정확히 일치, 시작 문자, 종료 문자, 포함 중에서 고릅니다. (Google 애널리틱스 고객센터)

처음에는 저희 도메인 하나만 넣었습니다. 테스트 상태로 하루 두고 보니 걸러질 이벤트 쪽에 저희 데이터가 섞여 있었습니다.
www가 붙은 주소와 안 붙은 주소가 다른 호스트 이름으로 잡히고 있었습니다. 견적 신청 폼은 외부 폼 서비스 도메인에서 돌아가고 있었고 시공 사례 페이지는 랜딩페이지 제작 툴의 서브도메인에 있었습니다. 작업용 임시 서버 주소도 있었는데 이건 빼는 게 맞아서 그대로 뒀습니다.
결국 허용 목록은 세 줄이 됐습니다. 정확히 일치 대신 “종료 문자”로 회사 도메인을 넣어 www 유무를 한 번에 잡고, 폼 서비스와 랜딩 툴 도메인은 각각 정확히 일치로 넣었습니다.
필터에는 테스트, 활성, 비활성 세 가지 상태가 있습니다. 테스트 상태에서는 데이터를 지우지 않고 “테스트 데이터 필터 이름”이라는 차원에 표시만 해 둡니다. 구글은 반영까지 24~36시간을 잡으라고 안내합니다.
탐색 보고서에서 자유 형식을 열고 행에 테스트 데이터 필터 이름과 이벤트 이름, 값에 이벤트 수를 넣으면 어떤 이벤트가 걸리는지 보입니다. 저는 이 화면을 캡처해서 대표님께 보여드린 뒤 활성으로 바꿨습니다.
그 36시간 동안 걸린 이벤트 가운데 호스트 이름이 (not set)인 게 하루 30건쯤 있었습니다. 어디서 오는지는 끝내 못 찾았고요. 구글 설명대로 스팸으로 보고 넘겼는데, 혹시 저희 쪽 설정 문제였다면 그 데이터는 이제 돌아오지 않습니다.
활성으로 바꾼 필터가 걸러낸 데이터는 영구히 사라집니다. 처리 단계에서 아예 빠지기 때문에 BigQuery로 내보내도 없습니다. 구글 고객센터는 보고서에서만 가리고 싶으면 데이터 필터 대신 보고서 필터를 쓰라고 안내합니다.
10월 첫 주 사용자 수는 1,730명이었습니다. 9월 같은 주는 2,140명이었고요. 410명 차이가 전부 가짜였다고 단정할 수는 없지만 견적 문의 수는 두 주가 똑같이 14건이었습니다.
이 숫자가 바로잡히니 다른 보고서도 달라 보였습니다. 전환 조회기간을 늘리면서 봤던 유입 경로별 전환율은 분모가 줄어 올라갔고 챗GPT에서 온 방문자 비중도 소수점 자리가 바뀌었습니다. 가짜 사용자가 ‘직접 유입’으로 잡혀 있었기 때문입니다.
광고 쪽도 마찬가지입니다. 쿠키 거부로 새는 전환을 따지기 전에, 애초에 우리 사이트에 온 적 없는 사용자가 분모에 들어 있었습니다.
저는 남겨 뒀습니다. 포함 필터가 먼저 한 묶음으로 적용되고 제외 필터가 그 뒤에 돌아갑니다. 임시 서버처럼 허용 목록 안에서 빼야 할 게 있으면 제외 필터가 여전히 필요합니다.
“종료 문자” 조건으로 회사 도메인을 넣으면 앞에 뭐가 붙든 통과했습니다. 다만 구글이 서브도메인 처리를 공식으로 설명한 건 아직 못 봤으니 테스트 상태에서 확인하고 켜는 게 안전합니다.
아니요. 만든 시점 이후 데이터에만 적용됩니다. 지난 보고서를 다시 보려면 보고서 필터나 탐색에서 호스트 이름 조건을 거는 수밖에 없습니다.
저도 공지 나흘 뒤에야 보였거든요. 속성 수준에서 편집자 이상 권한이 있어야 필터를 만들 수 있으니 권한부터 확인해 보세요.
구글 공지에는 Measurement Protocol로 보내는 이벤트에는 포함 필터가 적용되지 않는다고 적혀 있습니다. 결제 완료처럼 서버에서 보내는 전환이 있다면 그건 그대로 들어옵니다.
필터를 켠 지 2주가 지났습니다. 제외 목록을 고치러 들어가는 일은 아직 한 번도 없었습니다. 대신 매주 월요일 호스트 이름 보고서를 한 번씩 열어 보는 습관은 그대로 두고 있습니다.