클릭 스패밍 (Click Spamming (Flooding))
Click Spamming (Flooding)
클릭 스패밍은 유저가 실제로 광고를 클릭하지 않았음에도 허위 클릭을 대량 발생시켜 오가닉 설치를 부정한 매체의 기여(Attribution)로 가로채는 대표적인 모바일 광고 사기 수법입니다. 클릭-투-인스톨(CTI) 시간 간격이 비정상적으로 좁거나 특정 구간에 집중되는 패턴을 분석해 필터링해야 합니다.
클릭 스패밍은 유저가 실제로 광고를 클릭하지 않았음에도 허위 클릭을 대량 발생시켜 오가닉 설치를 부정한 매체의 기여(Attribution)로 가로채는 대표적인 모바일 광고 사기 수법입니다. 클릭-투-인스톨(CTI) 시간 간격이 비정상적으로 좁거나 특정 구간에 집중되는 패턴을 분석해 필터링해야 합니다.
📖 개념 정의 및 실무 적용
퍼포먼스 마케팅 환경에서 예산의 효율적 집행은 비즈니스의 성패를 가릅니다. 그러나 일부 저품질 매체나 어트리뷰션 부스터들은 성과를 부풀리기 위해 백그라운드에서 수천 건의 가짜 클릭을 무차별적으로 발생시키는 클릭 스패밍을 시도합니다. 이를 방지하지 못하면 실제로는 오가닉(Organic)으로 유입되어 비용이 들지 않아야 할 유저가 허위 매체에 기여되어 마케팅 예산이 낭비되고 CPA(매출당 비용) 데이터가 완전히 왜곡되는 치명적인 비효율이 발생합니다.
실무 데이터 분석가와 그로스 PM은 어트리뷰션 파트너(MMP)의 로그 데이터를 활용하여 클릭과 설치 사이의 시간 간격(CTI) 분포를 주기적으로 모니터링해야 합니다. 정상적인 유저의 클릭 패턴은 정규 분포 형태를 띠는 반면, 클릭 스패밍은 0초에서 몇 초 사이에 클릭이 비정상적으로 집중되는 기형적인 형태를 보입니다. 이를 SQL 등으로 조기 탐지하고 부정 매체와의 파트너십을 즉각 차단함으로써 마케팅 ROI를 방어할 수 있습니다.
💻 실무 활용 코드 스니펫 (SQL)
SELECT media_source, campaign_id, COUNT(DISTINCT click_id) AS total_clicks, COUNT(DISTINCT install_id) AS total_installs, COUNT(DISTINCT CASE WHEN click_to_install_time_seconds < 5 THEN install_id END) AS installs_under_5s, ROUND(COUNT(DISTINCT CASE WHEN click_to_install_time_seconds < 5 THEN install_id END) * 100.0 / NULLIF(COUNT(DISTINCT install_id), 0), 2) AS pct_instant_installs FROM mmp_click_install_logs WHERE event_date >= CURRENT_DATE - INTERVAL '7 days' GROUP BY 1, 2 HAVING COUNT(DISTINCT install_id) > 100 AND ROUND(COUNT(DISTINCT CASE WHEN click_to_install_time_seconds < 5 THEN install_id END) * 100.0 / NULLIF(COUNT(DISTINCT install_id), 0), 2) > 70.0 ORDER BY total_installs DESC;
⚡ 5분 만에 적용하는 실행 스텝
- MMP(AppsFlyer, Adjust 등)의 원시 데이터(Raw Data) 로그에서 클릭 시간과 설치 시간의 차이(CTI)를 초 단위로 계산하는 파이프라인을 구축합니다.
- 제공된 SQL 쿼리를 활용하여 캠페인 및 미디어 소스별로 CTI가 5초 미만인 설치의 비중(%)을 주 단위로 집계합니다.
- 인스턴트 설치 비중이 70%를 상회하거나 특정 미디어 소스에서 클릭 볼륨 대비 설치 전환율이 비정상적으로 치솟는 구간을 식별합니다.
- 해당 매체에 즉시 포스트백 검증을 요청하고, 어트리뷰션 룰에서 클릭 유효 인정 최소 시간(Click-to-Install Time Window)을 상향 조정하거나 해당 매체를 블랙리스트 처리합니다.
CTI 분석 시 단순히 5초 미만만 보지 말고, 클릭 IP 주소와 디바이스 ID의 유니크 비율을 함께 대조하세요. 클릭은 수만 건인데 유니크 디바이스 ID가 터무니없이 적다면 100% 매크로를 통한 클릭 스패밍입니다. 또한 MMP의 기본 제공 사기 방지(Fraud Protection) 기능 외에 자체 로그 분석 쿼리를 주 1회 이상 돌려 MMP가 놓치는 신종 스패밍 패턴을 선제적으로 방어해야 합니다.
초보자는 CTI가 짧다는 이유만으로 리타게팅 캠페인의 정상적인 고관여 유저 유입까지 스팸으로 오인하여 차단하는 실수를 저지릅니다. 리타게팅은 이미 앱이 설치되어 있어 딥링크 클릭 시 앱이 즉시 실행되므로 CTI가 원래 짧습니다. 따라서 유저 인수(User Acquisition) 캠페인과 리타게팅 캠페인의 데이터를 반드시 분리하여 분석해야 합니다.
❓ 자주 묻는 질문 (FAQ)
A. 클릭 스패밍은 유저의 행동과 상관없이 백그라운드에서 무작위로 대량의 클릭을 발생시켜 우연히 오가닉 설치가 발생하기를 기대하는 수법입니다. 반면 클릭 인젝션은 안드로이드 기기 내 다른 악성 앱이 ‘새로운 앱이 다운로드되는 시점’을 실시간으로 감지(Install Broadcast 수신)하여 설치 완료 직전에 가짜 클릭을 끼워 넣는 더 고도화된 수법입니다.
A. MMP의 사기 방지 기능은 알려진 블랙리스트와 보편적인 패턴(예: 너무 짧은 CTI)을 차단하는 기본 방어선입니다. 사기꾼들은 매번 새로운 IP 대역과 우회 패턴을 쓰기 때문에 MMP가 패턴을 학습하기까지 시차(Lag)가 발생합니다. 따라서 실무자는 주 단위로 raw data를 직접 쿼리하여 변종 사기 패턴을 모니터링하고 수동으로 차단 조치를 병행해야 합니다.