앱을 출시하고 광고를 걸면 가장 먼저 확인하는 숫자는 설치 수입니다. 숫자가 올라가면 뭔가 되고 있다는 느낌이 들고, 내려가면 불안해집니다. 그런데 미국의 한 1인 개발자가 220달러를 구글 앱 광고에 쓴 뒤 서버 로그를 들여다봤더니, 설치된 기기 중 60%는 실제 사람이 아니었습니다. 광고 네트워크가 봇 팜(bot farm)으로 연결되어 있었기 때문입니다.

이것이 그 개발자만의 문제가 아닌 이유는 규모 때문입니다. 모바일 어트리뷰션 플랫폼 Appsflyer가 2023년 집계한 모바일 광고 사기 손실은 전 세계에서 84억 달러였습니다. 구글이 직접 관리하지 않는 소규모 네트워크일수록, 그리고 단가가 낮은 지역을 포함할수록 봇 비율이 높아지는 경향이 있습니다. 예산이 적을수록 이 문제를 일찍 알아채기가 어렵습니다.

설치 직후 행동 데이터가 먼저 신호를 보냅니다

봇 설치는 발생 자체를 막기 어렵습니다. 대신 설치 직후의 행동 기록이 빠르게 이상을 드러냅니다.

사람이 앱을 설치하면 대개 처음 30초 안에 첫 화면을 탐색합니다. 첫 세션에서 열었다 닫는 흔적이 남고, 며칠 뒤에는 재방문 여부로 실질적인 관심 수준이 드러납니다. 봇은 이 과정을 건너뜁니다. 설치는 기록되지만, 세션 길이가 0~1초이거나 첫 화면을 단 한 번도 렌더링하지 않은 채 기록이 끊깁니다.

광고 집행 후 72시간 안에 확인해야 할 수치는 셋입니다.

1일 리텐션(Day 1 Retention): 설치 다음 날 앱을 다시 연 비율입니다. 업종에 따라 다르지만 캐주얼 게임은 30~40%, 유틸리티는 20~30%가 산업 평균으로 통용됩니다. 5% 미만이면 실사용자가 거의 없는 것에 가깝습니다.

세션당 이벤트 수: 사람이 앱을 켜면 최소 2~3개의 UI 이벤트(탭, 스크롤, 버튼 클릭)가 발생합니다. 세션당 이벤트가 0~1개인 비율이 전체의 절반을 넘으면 의심할 근거가 됩니다.

설치 기기 분포: 봇 팜은 소수의 기기 모델을 반복해서 씁니다. 설치 목록에서 동일 모델이 비정상적으로 집중되면 단서가 됩니다.

이 세 가지는 Firebase Analytics나 Mixpanel 같은 무료 SDK로 집행 전에 반드시 붙여 두어야 합니다. 광고 대시보드의 설치 수만 보고 집행을 이어가면, 봇이 예산을 다 소진할 때까지 상황을 알 수 없습니다.

캠페인 설정으로 봇 비율을 낮추는 방법

광고 네트워크가 봇 트래픽을 완전히 차단하지는 않습니다. 그러나 캠페인 설정 조정으로 비율을 줄이는 것은 가능합니다.

첫 번째는 타겟 지역 한정입니다. 동남아시아·중앙아시아·아프리카 일부 국가는 CPI(설치당 비용)가 극단적으로 낮고, 봇 팜 밀집도도 높은 곳으로 알려져 있습니다. 한국 시장을 목표로 한다면 광고 노출을 국내 IP로 좁혀도 단가는 올라가지만 봇 비율은 확연히 낮아집니다.

두 번째는 전환 목표를 설치 이후로 이동하는 것입니다. 구글 앱 캠페인(UAC)의 기본 전환 목표는 설치입니다. 이것을 "앱 내 첫 구매" 또는 "회원 가입 완료"로 바꾸면, 봇이 그 단계를 통과하기 어려워집니다. 광고 사기 트래픽의 90% 이상은 설치에서 멈추고 실질 전환까지 도달하지 않습니다. 전환 목표를 올리면 단가는 높아지지만, 예산 낭비 비율은 줄어드는 기에 절충이 됩니다.

세 번째는 봇으로 의심되는 설치를 광고 네트워크에 직접 신고하는 것입니다. 구글 광고 고객센터에는 트래픽 품질 이의 신청 경로가 있습니다. 모든 경우에 환불이 이루어지지는 않지만, 앞서 언급한 개발자는 Firebase 데이터를 증거로 제출해 일부 크레딧을 돌려받았습니다. 신고 자체가 광고 네트워크의 품질 점검 데이터로 들어가기도 합니다.

앱 광고 집행 후 봇 여부 점검 순서광고 집행 시작72시간 내 Firebase 리텐션·세션 이벤트확인1일 리텐션 5% 미만·세션 이벤트 0건 다수→ 봇 의심캠페인 일시 중단 후 기기 분포·지역데이터 대조타겟 지역 좁히기 + 전환 목표 상향 후재집행

광고를 멈춰야 하는 시점을 계산하는 방법

봇이 섞여 있다는 사실을 확인했다고 해서 즉시 광고를 끊어야 한다는 뜻은 아닙니다. 봇 30%에 사람 70%라면 설정을 수정해 볼 여지가 있습니다. 문제는 봇 비율이 절반을 넘어갈 때입니다.

실질 CPI(사람 설치 1건당 실제 비용)를 따로 계산해 보는 것이 판단 기준이 됩니다. 220달러를 썼는데 설치가 100건이고 그중 60건이 봇이라면, 사람 설치는 40건이고 실질 CPI는 5.5달러입니다. 이 수치가 해당 앱 카테고리의 평균 LTV(사용자 생애 가치)보다 높다면 광고는 손해입니다.

한국 모바일 앱 시장에서 카테고리별 평균 LTV를 공개하는 자료는 많지 않습니다. Adjust나 Appsflyer가 발행하는 연간 리포트, 또는 앱 마케터 커뮤니티에서 공유되는 업종별 벤치마크가 현재 참고할 수 있는 가장 가까운 수치입니다. 자신의 실질 CPI와 그 수치를 비교하는 것이 광고를 계속할지 멈출지를 가르는 가장 현실적인 방법입니다.

봇 설치가 앱스토어 랭킹에 도움이 되지 않는다는 점도 빠뜨릴 수 없습니다. 구글 플레이는 설치 후 유지율과 평점을 알고리즘에 반영합니다. 봇 설치 비율이 높은 캠페인은 실제 사용자 신호를 희석시켜, 더 쓸수록 앱에 불리하게 작용하는 구간이 생깁니다.


광고를 집행하기 전에 어트리뷰션 도구를 붙이는 것이 선택이 아닌 이유가 여기 있습니다. 설치 수 뒤에 무엇이 있는지 보지 못하면 예산이 사람에게 갔는지 봇에게 갔는지를 소진 후에야 압니다. 성실하게 광고를 돌리면서 잘못된 숫자만 보는 것은, 결제 내역 없이 재고를 채우는 것과 같습니다. 지출을 기록하지 않으면 어디서 새는지 끝내 알 수 없습니다.