TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 29 READS

구글 광고 설치 60%가 봇이었다 — 소규모 앱 개발자가 겪은 봇 농장의 실체

구글 광고 설치 60%가 봇이었다 — 소규모 앱 개발자가 겪은 봇 농장의 실체
SOURCE IMAGE · HACKER NEWS

모바일 앱 마케팅에서 '설치 수(install)'는 가장 직관적이고 신뢰받는 지표다. 광고를 켜고 설치가 늘어나면 돈이 제 역할을 했다고 믿게 된다. 그러나 이 숫자가 언제나 사람을 뜻하지는 않는다. 퍼즐 앱 'Dayzle'을 운영하는 한 개인 개발자가 구글 앱 광고에 약 220캐나다달러를 쓴 뒤 남긴 기록은, 소규모 광고주도 봇 농장(bot farm)의 표적이 될 수 있음을 구체적인 데이터로 보여준다.

21건 대 1건, 어긋난 숫자

발단은 단순했다. 개발자는 안드로이드용 구글 광고 캠페인을 하루 40캐나다달러 예산에 '설치' 목표로 켰다. 초기에는 설치당 목표 비용을 1.5달러로 설정했는데, 구글은 그 가격에 설치를 거의 찾지 못해 예산을 소진하지 못했다. 시험 삼아 목표 비용 제한을 없애자 상황이 급변했다. 하루 예산의 두 배인 80캐나다달러를 즉시 써버렸고, 구글은 하루 21건의 설치를 보고했다. 하지만 자체 관리자 화면에는 설치가 1건으로 찍혔다. 숫자가 맞지 않았다.

원인을 파고들자 이상한 패턴이 드러났다. 관리자 화면이 20건을 놓친 것은 앱의 구버전이 설치 날짜를 보고하지 않았기 때문이었다. 원시 분석 데이터에는 그날 새로 잡힌 안드로이드 기기 21대가 있었고, 그중 20대가 며칠 전 플레이스토어에서 이미 배포가 중단된 구버전을 돌리고 있었다. 스토어에서 받을 수 없는 버전인데도, 모든 기기가 설치 출처를 '구글 플레이'라고 표기하고 있었다. 즉 스토어가 아니라 다른 경로에서 받은 설치 파일을 깔면서 출처만 위장한 것이다. 각 기기는 앱을 딱 한 번 열고, 어느 화면에도 머무르지 않고, 다시는 돌아오지 않았다. 19개 주에 걸친 28종의 단말이 하나같이 똑같이 행동했다는 점 자체가 부자연스러운 신호였다.

봇 농장은 어떻게 돈을 버는가

2주 전체로 보면 청구된 설치는 56건이었다. 이 가운데 33건이 위와 같은 패턴이었고, 7건은 캠페인이 겨냥하지도 않은 국가에서 발생했다. 실제 사람으로 판단되는 것은 13명뿐이었다. 다만 이 13명은 둘이 아니라 합쳐 92개의 게임을 완료했는데, 진짜 사용자가 앱을 즐겼다는 점에서는 긍정적인 신호였다.

개발자가 재구성한 봇 농장의 작동 방식은 광고 시스템의 허점을 정확히 겨냥한다. 농장은 광고 그룹에서 가장 짧은 영상을 시청하되 클릭은 하지 않고, 저장해 둔 설치 파일로 앱을 깐다. 스토어를 거치지 않는 편이 더 빠르고, 플레이스토어의 탐지도 피할 수 있기 때문이다. 구글은 '영상 시청 뒤 이어진 설치'를 전환(conversion)으로 집계한다. 문제는 여기서 악순환이 생긴다는 점이다. 농장이 앱을 많이 '설치'할수록 구글 알고리즘의 눈에는 성과가 좋아 보이고, 그러면 더 많은 광고가 농장으로 흘러가며, 농장은 다시 더 많이 설치한다. 목표를 '설치'로 준 이상, 광고비가 낭비되도록 보장된 순환 고리가 만들어지는 셈이다.

목표 지표를 바꾸는 방어

대응책으로 개발자는 캠페인 목표를 '앱 실행'에서 '퍼즐 완료'로 바꿨다. 스크립트로 앱을 열고 화면을 두드리게 만드는 일은 손쉽지만, 스도쿠를 실제로 풀게 만드는 일은 훨씬 비용이 든다. 핵심 발상은 봇을 완전히 막는 것이 아니라, 자기 앱을 '옆 앱보다 농사짓기 비싼' 대상으로 만드는 것이다. 규모가 작은 앱에는 이 정도가 꽤 쓸 만한 방어책이 된다. 반대로 규모가 큰 앱은 추가 노력을 들일 가치가 있는 표적이므로, 개발자는 대형 앱일수록 스스로 인지하는 것보다 훨씬 많은 봇 트래픽을 겪고 있을 것이라고 추정한다.

이 사례가 국내 실무자에게 주는 시사점은 분명하다. 첫째, 광고 플랫폼이 보고하는 설치 수는 '실재하는 숫자'이되 그 자체로 진실을 담보하지는 않는다. 설치 출처 표기, 앱 버전, 세션 체류 시간, 지역 분포 같은 원시 데이터를 교차 검증하면 사람과 봇을 상당 부분 가려낼 수 있다. 둘째, 최적화 목표를 얕은 이벤트(설치·실행)에서 깊은 인게이지먼트(핵심 행동 완료)로 옮기는 것만으로도 봇의 경제성을 떨어뜨릴 수 있다. 자동화하기 어려운 행동을 전환 기준으로 삼는 것이 방어의 출발점이다.

다만 이 기록은 어디까지나 하나의 소규모 사례이자 개발자 본인의 분석이라는 한계를 안고 있다. 봇 농장의 작동 방식은 정황과 데이터에 근거한 추론이며, 구글의 무효 트래픽(invalid traffic) 신고에 대한 처리 결과와 환불 여부는 글이 작성된 시점까지 아직 나오지 않았다. 광고 사기의 형태와 플랫폼의 필터링 정책은 계속 변하는 만큼, 여기서 통한 방어가 모든 앱과 캠페인에 그대로 적용된다고 보기는 어렵다. 그럼에도 '내 작은 광고 예산을 봇 농장이 찾아냈다면, 당신의 예산도 분명 찾아낼 수 있다'는 경고는 규모를 막론하고 곱씹어 볼 만하다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://dayzlegame.com/blog/google-ads-bot-farm/
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...