대시보드에 찍힌 숫자를 보고 처음엔 잘못 봤나 싶었습니다.
$15
일주일 동안 광고를 돌린 결과였어요. 그동안 사이트에는 하루 3만 PV, 방문자 3천 명 정도가 들어오고 있었습니다.
"내가 광고를 잘못 붙였나?"
슬롯 위치를 옮겨보고, 개수도 줄여보고, 상단 배너도 빼봤습니다. 별로 안 바뀌더군요.
결론부터 말하면 문제는 배치가 아니었습니다.
애드센스는 왜 떨어졌는지 안 알려줍니다
시작은 애드센스였습니다. 두 번 넣었고 두 번 다 떨어졌어요.
거절 메일을 받고 대시보드를 열어봤는데 뭐가 문제인지는 안 적혀 있었습니다. "거절 사유가 될 수 있는 것들"만 목록으로 쭉 나열돼 있고, 그중 어디에 걸렸는지는 알려주지 않아요. 문제가 된 페이지 URL도 없었고요.
예전에 다른 사이트로는 승인을 받아본 적이 있어서 더 감이 안 왔습니다. (그땐 그냥 됐었는데..)
처음 세운 가설은 이거였습니다.
"봇이 우리 페이지를 못 읽는 거 아닐까?"
아이템 시세는 클라이언트에서 불러오니까, JS를 실행하지 않는 크롤러 눈에는 빈 껍데기로 보일 수 있겠다 싶었거든요. 그런데 확인해보니 아니었습니다.
# JS 없이 HTML만 받아보기 curl -s https://mapleplanet.gg/items/... | grep "최저가\|평균가\|거래량" # → 시세 요약이 서버 렌더로 멀쩡히 들어있음
가설이 틀렸습니다. 그럼 진짜 이유는 뭐였을까요.
나중에 짐작한 건데 아마 콘텐츠였을 겁니다. JS를 실행해서 렌더된 DOM을 봐도
<p> 태그가 0개였거든요. 우리 사이트는 처음부터 끝까지 숫자와 표뿐이고, 사람이 쓴 문장이 한 줄도 없었습니다.물론 이것도 짐작입니다. 구글은 끝까지 안 알려줬으니까요.
남의 답안지는 공개돼 있었습니다
구글이 안 알려주면 잘 되고 있는 데를 보면 됩니다. 그리고 그건 사실 공개돼 있어요.
ads.txt입니다.이 파일은 "이 사이트의 광고를 팔 권한이 누구에게 있는가"를 선언하는 텍스트 파일이고, 누구나 열어볼 수 있습니다. 특히
MANAGERDOMAIN 한 줄이 실제 관리 주체를 그대로 알려줘요.# 디시인사이드 / 인벤 MANAGERDOMAIN=anymanager.io # OP.GG MANAGERDOMAIN=rev.iq
33개 사이트를 훑어봤습니다. 국내 대형 커뮤니티와 게임 사이트는 대부분 광고 관리 플랫폼을 끼고 있었어요. 애드센스를 직접 붙이는 게 아니라 중간 사업자가 인벤토리를 관리해주는 구조입니다.
우리처럼 구글 한 줄만 있는 곳이 오히려 소수였습니다.
그중 rev.iq는 셀프 가입이 됐습니다. OP.GG가 쓰고 있길래 "게임 사이트니까 우리랑 비슷하겠지" 하고 바로 붙였어요.
어디에 붙일지도 대충 정하지 않았습니다. 경쟁사 슬롯 위치를 긁어서 우리 레이아웃 거터 폭이랑 비교하고, 페이지별 배치도를 그리고, 실제 화면 위에 목업까지 얹었습니다. 그 얘기는 길어서 따로 썼어요.
슬롯은 다 떴는데 하루 2달러였습니다
그렇게 붙이고 일주일. 그게 맨 위의 $15입니다.
하루 2달러꼴이에요. 1000 PV당으로 환산하면 90원쯤 됩니다.
국내 디스플레이 광고 RPM은 보통 1000 PV당 600~2,000원입니다.
열 배 이상 차이납니다. 이쯤 되면 "수익이 좀 적네"가 아니라 뭔가 구조적으로 잘못됐다는 뜻이었어요.
그래도 처음엔 계속 제 탓인 줄 알았습니다. 슬롯을 옮기고, 한 화면에 최대 3개까지만 두도록 줄이고, 상단 광고를 빼고, viewability를 높여보려고 위치를 다시 잡고.
숫자는 거의 안 움직였습니다.
한국 광고가 하나도 없었습니다
그러다 실제로 뜨는 광고 자체를 봤습니다.
한국 광고가 없었어요. 전부 해외 소재였습니다.
우리 사이트 트래픽은 98%가 한국입니다. 게임 시세를 찾아보는 사람들이니 당연히 국내 유저고요. 그런데 그 지면에 해외 광고만 돌아오고 있었던 겁니다.
확인 삼아 경쟁사들의 fill을 다시 쟀습니다. 사이트마다 3번씩 돌려서 어떤 네트워크가 슬롯을 채우는지 봤어요.
fmkorea/detail 슬롯 16개 fill 16/16 [AdSense, NHN ACE(KR)] dcinside/list 슬롯 12개 fill 12/12 [AdFit] namuwiki/main 슬롯 5개 fill 5/5 [GAM]
NHN ACE, 카카오 AdFit. 전부 국내 SSP였습니다. 잘 되는 한국 사이트들은 국내 수요처가 지면을 채우고 있었던 거예요.
rev.iq는 해외 SSP를 묶어놓은 매니저였습니다. 그들 입장에서 한국 게임 사이트 지면은 딱히 살 이유가 없는 재고였고요.
문제는 배치가 아니라 수요처였습니다.
6월 30일에 붙였고 7월 12일에 갈아탔습니다. 2주 반짜리 실험이었어요.
국내를 아는 곳으로 갈아탔습니다
디시인사이드와 인벤이 쓰는 anymanager.io. 그 운영사인 AnyMind에는 그전부터 계속 연락을 넣고 있었습니다. 셀프 가입이 아니라 담당자가 붙는 방식이라 답을 기다려야 했는데, 마침 연락이 왔어요.
여기서 MCM이라는 걸 알게 됐습니다. 구글이 인정한 파트너사가 퍼블리셔 대신 광고 인벤토리를 관리하는 제도예요.
핵심은 이겁니다. 애드센스 직접 승인이 막혀 있어도, 파트너를 통하면 Google Ad Manager 계정을 열 수 있습니다. 심사 주체가 달라지니까요.
담당자와는 계속 텔레그램으로 얘기했습니다. 이메일보다 훨씬 빨랐어요.

유닛을 8개 제안받았는데 전면광고만 조정을 요청했습니다. 우리 유저는 아이템 하나 찾으려고 평균 6분 넘게 여러 페이지를 돌아다니거든요. 이동할 때마다 전면광고가 뜨면 그 흐름이 끊깁니다.
그런데 나중에 정말로 매번 뜨는 것처럼 느껴져서 "이거 좀 빼주세요" 하고 다시 요청했어요. 담당자 답은 "하루 1회로 제한돼 있는데요"였습니다.
새 프로필로 6번 이동하면서 다시 테스트해보니 정말 1회만 나왔습니다. 캐시 남은 제 브라우저가 만든 착시였어요. (괜히 사람 붙잡고..)
지금은 이렇습니다
슬롯 4개가 라이브입니다. 하단 앵커, 좌우 레일, 홈 전면광고. 콘솔에서 확인하면 전부 채워져서 돌아옵니다.
googletag.pubads().getSlots().length // 4 anymindTS.originalConfigs.configs.length // 11
아직 안 풀린 것도 하나 있어요.
anymindTS.originalConfigs.siteSetting.isSPA // false
우리는 Next.js라 페이지 이동이 전부 클라이언트에서 일어납니다. 이 설정이
false면 세션의 첫 페이지에서만 광고가 로드되고 나머지는 요청이 안 나가요. 세션당 페이지뷰가 데스크톱 5.6, 모바일 7.4니까 노출이 5배쯤 차이 납니다.설정 한 줄인데, 콘솔을 안 봤으면 영영 몰랐을 겁니다.
글을 쓰면서 rev.iq 대시보드를 다시 열어봤는데 기록이 남아 있지 않더군요. 2주 반 동안 뭘 했는지는 커밋 로그에만 남았습니다.
혹시 애드센스에서 떨어지고 이유를 몰라 헤매고 계신다면,
ads.txt부터 몇 개 열어보시는 걸 추천드려요. 저는 그게 제일 빨랐습니다. 🙂