구글 앱 광고에 220달러를 썼더니 설치 건수의 60%가 로봇이었습니다
1. 이게 뭔가요?
이 글은 '데이지(Dayzle)'라는 작은 퍼즐 안드로이드 앱을 운영하는 개발자가 겪은 온라인 광고 사기 경험담입니다. 개발자는 앱을 홍보하기 위해 하루 40캐나다 달러 예산으로 2주 동안 구글 광고를 집행했습니다. 처음에는 설치당 1.50달러라는 목표 단가를 걸어 두어 예산이 거의 쓰이지 않았으나, 이 제한을 풀자마자 하루 만에 예산의 두 배인 80캐나다 달러가 빠져나가며 21건의 설치가 보고되었습니다.
하지만 실제 접속 기록을 분석해 보니 청구된 전체 56건의 설치 중 실제 사람은 13명에 불과했습니다. 나머지 중 33건은 사람이 아니라 가짜 기계를 동원한 '봇 농장'의 허위 설치 패턴을 보였고, 7건은 광고 목표 지역도 아닌 다른 나라에서 발생했습니다. 봇 농장이란 컴퓨터 프로그램으로 여러 기기를 자동 조종해 광고를 보거나 앱을 설치한 것처럼 속이는 사기 조직을 말합니다. 이 33건은 공식 장터인 구글 플레이스토어가 이미 며칠 전 배포를 중단한 구형 앱 파일을 미리 보관해 두었다가 임의로 깔았으며, 화면을 켜자마자 아무 시간도 머무르지 않고 바로 앱을 끈 뒤 다시는 접속하지 않았습니다. 결국 광고비의 상당 부분이 가짜 설치에 낭비되었습니다.
2. 왜 화제인가요?
광고 시스템의 목표 최적화 방식과 봇 농장의 편법이 맞물리면서 이번 문제가 일어났습니다. 구글의 광고 시스템은 광고주가 '설치'를 목표로 정하면, 수단과 방법을 가리지 않고 어떻게든 설치를 가장 많이 이끌어내는 쪽에 광고를 몰아주도록 작동합니다.
사기 조직인 봇 농장은 광고 영상 중에서 가장 짧은 영상을 클릭도 하지 않고 시청한 뒤, 플레이스토어를 거치는 대신 미리 저장해 둔 앱 복사본으로 빠르게 설치했습니다. 장터를 거치는 것보다 속도가 빠르고 플레이스토어 측의 감시를 피하기 위해서였습니다. 구글 시스템은 광고 영상을 보고 나서 앱을 설치하기만 하면 성과로 인정하기 때문에, 이 껍데기뿐인 설치를 훌륭한 실적으로 오판했습니다. 그 결과 알고리즘은 실적을 더 내겠다며 해당 봇 농장에 광고를 더 많이 보냈고, 봇 농장은 허위 설치를 반복하며 광고비를 삼키는 악순환이 이어졌습니다. 소규모 예산조차 이러한 부정 트래픽의 표적이 된다는 점을 접속 분석 자료로 확인한 사례입니다.
3. 핵심 내용
저는 '데이즐(Dayzle)'이라는 작은 퍼즐 앱을 운영하고 있습니다. 평소에 숫자나 통계를 다루는 일을 좋아하다 보니, 광고 비용 대비 효과를 최대한으로 끌어올리는 마케팅 최적화 작업은 제 적성에 딱 맞는 일이었습니다. 그래서 2주 전에 안드로이드 스마트폰 사용자를 대상으로 하루에 40캐나다 달러씩 쓰기로 하고 구글 광고(Google Ads)를 시작했습니다. 광고의 목표는 사람들이 앱을 기기에 내려받아 설치하게 만드는 '설치'로 정했습니다.
처음 며칠 동안은 광고비가 거의 나가지 않았습니다. 앱이 한 번 설치될 때마다 최대 1.50달러까지만 쓰겠다고 상한선(목표 설치당 비용)을 걸어두었는데, 구글이 그 금액 안에서 설치해 줄 사람을 찾지 못했기 때문입니다. 그래서 시험 삼아 이 상한선 설정을 없애보았습니다. 그러자 구글은 곧바로 하루 예산의 두 배에 달하는 80캐나다 달러를 써버렸고, 앱이 21번 설치되었다고 보고했습니다. 저는 드디어 광고가 효과를 낸다고 생각해 무척 신이 났습니다. 하지만 개발자가 앱의 실제 상태를 확인하는 관리 화면을 열어보니, 실제로 새로 설치된 숫자는 고작 1건이라고 나와 있었습니다. 무언가 크게 잘못되었다는 사실을 알아채는 데에는 굳이 숫자를 잘 다루는 전문가일 필요도 없었습니다.
관리 화면에서 20건이 빠져 있었던 이유는, 앱의 옛날 버전을 쓰는 기기는 설치된 날짜 정보를 개발자 화면으로 보내주지 않도록 만들어져 있었기 때문이었습니다. 그래서 가공되지 않은 상세 이용 기록을 직접 열어 확인해 보았더니, 그날 새롭게 등록된 안드로이드 기기는 실제로 21대가 맞았습니다. 하지만 그중 20대는 이미 며칠 전에 구글 공식 앱 장터인 플레이스토어에서 배포를 중단했던 아주 예전 버전의 앱을 실행하고 있었습니다. 공식 앱 장터에서는 이미 내려간 옛날 버전을 공식적으로 내려받을 수 없습니다. 따라서 이 스마트폰들은 공식 장터가 아니라 다른 어딘가에서 앱 설치 파일을 따로 구해 깔았다는 뜻이 됩니다. 그런데도 기기 기록에는 하나같이 구글 플레이스토어를 통해 설치했다고 적혀 있었습니다. 게다가 이 기기들은 앱을 딱 한 번 실행하더니, 어떤 화면에서도 단 0초도 머무르지 않고 곧바로 종료한 뒤 다시는 앱을 열어보지 않았습니다. 20대의 스마트폰이 19개 주에 걸쳐 28가지나 되는 서로 다른 기종으로 기록되어 있었습니다. 완전히 똑같은 행동을 기계처럼 반복한 20대의 스마트폰치고는 기기 종류와 지역이 지나치게 다양했습니다.
광고를 집행한 2주 전체를 통틀어 집계해 보니, 구글은 총 56건의 앱 설치에 대해 제게 광고비를 청구했습니다. 하지만 이 가운데 33건은 방금 말씀드린 것처럼 사람이 썼다고 볼 수 없는 수상한 패턴을 보였습니다. 7건은 제가 광고를 보여주겠다고 지정하지도 않은 엉뚱한 나라에서 설치된 것이었습니다. 실제 살아있는 사람은 겨우 13명에 불과했습니다. 그래도 다행인 점은, 이 진짜 사람 13명이 앱 안에서 총 92판의 퍼즐 게임을 끝까지 풀어주었다는 사실입니다. 이는 우리가 정성껏 만든 게임을 진짜 이용자들이 재미있게 즐기고 있다는 긍정적인 신호였습니다.
이상한 행동을 보인 33건은 결코 평범한 사람의 행동이 아니었기에, 저는 사기 행각을 벌이기 위해 수많은 기기를 한곳에 모아두고 자동으로 조작하는 이른바 '로봇 농장(봇 팜)'이 개입했다고 의심했습니다. 상세 이용 기록을 내려받아 분석해 본 결과도 제 의심이 맞았음을 보여주었습니다. 구글 광고는 광고주가 정해준 목표를 가장 잘 달성하는 방향으로 광고를 보여주는 인공지능 알고리즘을 사용하는데, 이번에 제가 설정한 목표는 바로 '앱 설치'였습니다. 이 사기 집단은 제 광고 모음에 들어 있는 영상 가운데 가장 재생 시간이 짧은 광고를 시청한 뒤, 광고를 직접 클릭하지는 않았습니다. 그런 다음 공식 앱 장터가 아니라 미리 컴퓨터에 저장해 둔 예전 앱 파일을 기기에 바로 복사해 설치했습니다. 공식 장터에서 매번 내려받는 것보다 이 방식이 훨씬 빠를뿐더러, 공식 장터 측의 감시망에 걸릴 위험도 덜 수 있기 때문입니다. 그런데 구글은 이용자가 동영상 광고를 본 뒤 일정 시간 안에 앱을 깔기만 하면, 광고 링크를 누르지 않았더라도 광고 덕분에 설치가 이루어진 성과(전환)로 인정합니다. 결국 역설적이게도 이 사기 집단이 가짜로 앱을 설치하면 할수록, 구글 알고리즘의 눈에는 제 광고가 대단히 성공적으로 작동하고 있는 것처럼 보였습니다. 그 결과 구글은 제 광고를 이 사기 기계들에게 더 많이 몰아주었고, 기계들은 더 신나게 가짜 설치를 반복했습니다. 제 소중한 광고비가 고스란히 낭비될 수밖에 없는 악순환에 빠졌던 것입니다.
현재 저는 가짜로 발생한 부정한 광고 트래픽을 신고하고 환불을 요청하는 서류를 구글에 제출한 뒤 답변을 기다리고 있습니다. 또한 광고가 달성해야 할 목표를 단순히 '앱을 처음 실행했을 때'가 아니라, 실제로 '퍼즐 문제를 하나 성공적으로 풀었을 때'로 바꾸었습니다. 컴퓨터 자동화 프로그램이 앱을 켜고 아무 버튼이나 몇 번 누르게 만드는 것은 아주 쉬운 일이지만, 스도쿠 같은 복잡한 논리 퍼즐을 스스로 풀게 만드는 것은 기술적으로 훨씬 까다롭고 힘든 일이기 때문입니다. 제 전략은 이 사기 집단이 다른 앱을 속이는 것에 비해 우리 앱을 속이는 데 훨씬 더 많은 비용과 노력을 들이도록 만드는 것입니다. 제 앱처럼 규모가 작은 서비스라면 이 정도 방어책만으로도 사기 로봇의 표적에서 벗어나는 데 충분히 도움이 될 것입니다. 하지만 규모가 큰 대형 앱들은 사기꾼들이 더 큰 노력을 들여서라도 가짜 설치를 조작할 가치가 있기 때문에, 관계자들이 생각하는 것보다 훨씬 더 많은 광고비 사기 피해를 보고 있을 것으로 짐작됩니다. 구글에서 광고비 환불 결과가 나오면 다시 소식을 전해드리겠습니다.
마지막으로 모두를 위한 공익적인 조언을 덧붙이고자 합니다. 만약 여러분이 구글 광고 관리 화면에 표시되는 앱 설치 숫자를 그대로 믿고 계신다면, 그 숫자가 구글 시스템에 실제로 찍힌 기록인 것은 맞지만, 과연 진짜 사람들이 설치한 것인지 그 내용을 반드시 꼼꼼하게 파고들어 검증해 볼 필요가 있습니다. 이렇게 작은 규모로 집행한 제 푼돈 광고 예산마저 가짜 트래픽을 노리는 로봇 농장의 표적이 되었다면, 여러분의 소중한 광고 예산 역시 그들의 감시망을 결코 벗어날 수 없을 테니 말입니다.
4. 나에게 어떤 영향이 있나요?
일반 스마트폰 사용자에게 당장 직접적인 피해가 생기는 것은 아닙니다. 다만 모바일 광고 생태계 이면에 가짜 기기를 동원한 부정 광고 트래픽이 만연해 있으며, 이것이 앱 개발자들의 소중한 마케팅 예산을 갉아먹고 있음을 보여줍니다.
앱을 개발하거나 광고를 집행하는 사람이라면 구글 광고 관리 화면에 표시되는 설치 횟수만 믿어서는 안 되며, 이용자가 들어와 실제로 어떻게 행동하는지 세부 접속 기록을 살펴봐야 합니다. 글쓴이는 구글에 무효 트래픽 환불을 요청한 상태이며, 허위 설치를 막기 위해 광고 최적화 목표를 '앱 열기'에서 '퍼즐 게임 1회 완료'로 바꿨습니다. 단순히 앱을 켜는 작업은 자동화 프로그램으로 흉내 내기 쉽지만 퍼즐을 직접 풀게 만드는 데는 훨씬 많은 비용이 들기 때문입니다. 이렇게 가짜 기기가 조작하기 까다로운 행동을 광고 목표로 삼으면 규모가 작은 앱을 봇 농장의 표적으로부터 방어하는 데 도움이 될 수 있습니다.