애드몹 · 보상형 둘 · 2026년 11월 13일 고침
사람이 오기 전에 붙인다. 나중에 붙이면 있던 것을 뺏는 꼴이 된다. 넣는 것은 보상형 하나뿐이고, 그 자리는 이미 코드에 나 있다.
때
지금 설치 수가 0이다. 광고를 붙여도 오늘 버는 돈은 0원이다. 그런데도 지금이 맞다.
사람이 천 명 들어온 뒤에 광고를 붙이면, 그 천 명에게는 없던 것이 생긴 것이다. 평점 한 줄이 「광고 생김」으로 내려간다. 지금 붙이면 들어오는 모두에게 원래 그런 게임이다.
다만 스토어의 「광고 포함」 딱지는 다시 붙는다. 어제 그걸 뗐으니 설치율이 조금 깎인다. 그 값을 치르고 사는 것이 「나중에 안 미안해도 되는 것」이다.
고르기
화면 아래에 늘 붙어 있는 띠. 40~60대 손가락에 오조작을 부른다. 낱말을 누르려다 광고를 누르면 그 판이 통째로 날아간다.
판 사이에 화면을 덮는 것. 가장 돈이 되지만 가장 많이 떠난다. 하루 한 판 게임에서 한 판마다 덮으면 다음 날이 없다.
사람이 스스로 고른다. 막혀서 답답한 그 자리에서 「한 번 더」를 누르는 것이지, 당하는 것이 아니다.
보상형도 무제한이면 게임이 광고 보는 일이 된다. 하루 여섯 편까지. 그 위로는 돈이 아니라 사람이 깎인다.
자리
진 판의 결과표에 「이 판 다시」가 셋 있다. 그것들이 먹는 것은 하루 열 걸음이고, 그 걸음은 완전 격파로 찬다.
TIERS = [
{ ads: 1, 이 판 다시 }
{ ads: 2, 이 판 다시 · 시간 +20초 }
{ ads: 4, 이 판 다시 · 시간 +20초 · 기세 -20% }
]
ADS_LIVE 를 1로 올리면 말이 통째로 돌아온다 —
「오늘 몫에서 1번」이 「광고 1편」이 된다. 보상도 밸런스도
건드리지 않는다. 고칠 곳은 그 한 줄과 native.js 의
AD_UNIT 뿐이다.
2026-11-13 고침. 걸음표도 광고로 찬다. 완전 격파에 매달아 두었던 것은 광고를 못 붙이던 동안의 대안이었고, 광고가 붙었으니 원래 자리로 돌려놓았다 — 광고 한 편에 한 걸음, 하루 열 걸음까지. 광고가 없는 자리(웹)에서는 전처럼 완전 격파가 찬다.
주머니는 여전히 갈라 둔다. 걸음표 하루 열 편, 「이 판 다시」 하루 여섯 편, 서로 깎지 않는다. 한 주머니로 묶으면 막혀서 다시 하려던 사람이 선물을 포기해야 하고, 그러면 둘 중 하나는 아무도 안 쓴다.
숫자
걸음표가 내는 옥은 하루 최대 4알이다 — 이것은 전과 같다. 1·3·5·9걸음에 한 알씩이고, 7걸음은 보물함(냥과 장비만, 옥은 없다), 짝수 걸음은 보급품이다. 상한이 칸 수로 걸려 있으므로 광고를 아무리 봐도 4알 위로는 안 나간다.
바뀐 것은 닿는 사람 수다. 전에는 완전 격파를 하루 일곱 번 해야 보물함에 닿았고, 그건 어렵다 — 실제로는 두세 칸에서 멈춘다. 이제 광고 열 편이면 닿는다. 그래서 하루 1~2알이던 것이 4알이 된다 — 들어오는 19.7알 기준으로 10~15%가 더 풀린다.
치르기로 한 값이다. 완전 격파는 냥으로 갚는다
(PERFECT_PAY) — 걸음을 잃을 뿐 빈손이 되지는 않는다.
그리고 설치 0명인 지금이 이 셈을 바꾸는 가장 싼 때다.
걸음표 하루 열 편 광고 한 편에 한 걸음 · 상 (옥 · 보급품 · 보물함)
웹에서는 완전 격파가 찬다
다시하기 하루 여섯 편 「이 판 다시」의 값 · 상은 없다
두 주머니는 서로 깎지 않는다
옥 유출 최대 4알 / 일 1·3·5·9걸음 (7걸음은 보물함 — 옥 없음)
실질 +2~3알 전에는 완전 격파 문턱에 막혀 1~2알에서 멈췄다
들어오는 19.7알의 10~15%
버는 쪽 (한국 보상형 eCPM 3~10달러)
하루 쓰는 사람 1,000명 · 1인 2~5편 → 2,000~5,000노출
→ 하루 6 ~ 50달러 · 달 18만 ~ 150만 원
지금(사람 0명) → 0원
광고로 받는 것은 다시 한 판이지 옥이 아니다. 그래서 옥에 붙은 값이 흔들리지 않는다 — 막혀서 그만두던 사람은 한 판 더 하고, 옥을 사는 사람은 손해 보지 않는다.
광고를 보는 사람과 옥을 사는 사람은 대개 겹치지 않는다. 둘을 한 주머니에 두면 한쪽이 다른 쪽을 깎는다.
절차
kr.natmalsan.app 으로 검색 → 고른다.
이러면 Play 와 이어져 수치가 한자리에서 보인다.native.js 의
AD_GIFT 가 비어 있으면 「다시 하기」 단위로 간다.
둘로 두는 까닭은 어느 자리가 버는지 갈라 보기 위함이다.ca-app-pub-…~…)와
광고 단위 ID(ca-app-pub-…/…)를 받아 적는다.
둘은 생김새가 비슷하니 헷갈리지 말 것 — 사이가 ~ 면 앱,
/ 면 단위다.wordgamebest.vercel.app/app-ads.txt 에 둔다.
안 올리면 광고 단가가 깎인다 — 공짜로 손해 보는 자리다.
Play 등록정보의 「개발자 웹사이트」가 그 주소여야 짝이 맞는다.코드
애드몹에 앱과 보상형 단위를 만들어 두었다. 둘 다 비밀이 아니다 — APK 안에 그대로 박혀 나가고 구글 공식 예제에도 적혀 있다.
앱 ID ca-app-pub-6024243250449718~9053750478 ← 물결(~) · AndroidManifest
단위 ID ca-app-pub-6024243250449718/1217678394 ← 빗금(/) · native.js 의 AD_RETRY
ca-app-pub-6024243250449718/1964510209 ← native.js 의 AD_GIFT · 선물 걸음
게시자 ID pub-6024243250449718 ← app-ads.txt 에 들어간 그 번호
광고 단위 이름 다시 하기 (보상형) · 선물 걸음 (보상형)
리워드 step 1 ※ 코드는 이 값을 읽지 않는다. 끝까지 봤는가만 본다
파트너 입찰 쓰지 않음 (되돌릴 수 없는 칸이라 비워 두었다)
app-ads.txt https://wordgamebest.vercel.app/app-ads.txt (HTTP 200 확인)
Play 개발자 웹사이트 https://wordgamebest.vercel.app (같은 주소 확인)
인증 상태 「검토 필요」 — 구글이 긁어 갈 때까지 광고 게재가 제한된다
시험은 구글 시험용 단위로만 한다 —
ca-app-pub-3940256099942544/5224354917.
위의 진짜 단위로 제 광고를 제가 누르면 계정이 정지되고 되돌릴 길이 거의 없다.
게임 쪽(index.html)은 이미 다 되어 있다. 손댈 곳은
앱 껍데기 넷뿐이고, 그중 하나는 한 줄이다.
app/src/native.js 의 AD_UNIT 에 광고 단위 ID.
이 한 줄이 전부다 — ADS_LIVE 가 여기에 매달려 있어
채우는 순간 게임의 말과 자리가 통째로 광고로 돌아온다.app/android/app/build.gradle 의 dependencies 에
implementation 'com.google.android.gms:play-services-ads:23.6.0'AndroidManifest.xml 의 <application> 안에
앱 ID 를 meta-data 로, 그리고 AD_ID 권한.
앱 ID 를 빠뜨리면 앱이 켜자마자 죽는다 — 애드몹이 일부러 그렇게 해 두었다.MainActivity.java 의 Natmal 클래스에
showAd(String unitId) 를 더한다. 끝나면
webView.evaluateJavascript("window.__nmAdDone(true)").
공유 때와 같은 길이다 — Capacitor 플러그인을 쓰지 않는다.게임 쪽에 이미 서 있는 것들 — 고칠 일이 없고, 어디 있는지만 알아 두면 된다.
index.html:2762 ADS_LIVE AD_UNIT 에 매달려 있다. 손대지 말 것
index.html:2789 AD_T 「선물」 ↔ 「광고」 말을 가르는 표
index.html:5750 AD_WATCH_DAY 하루 여섯 편
index.html:6944 watchAds() 광고 N편을 이어서 틀고, 다 본 뒤에만 돌려준다
index.html:2778 NOADS_SKU = 0 ← 이것만은 따로. 값을 다시 매기기 전에 열지 말 것
app/src/native.js:552 AD_UNIT ★ 여기 한 줄
app/src/native.js:555 __nmAdDone() 자바가 부를 자리
app/src/native.js:560 NativeAds available() · rewarded()
제 광고를 제가 누르면 계정이 정지된다. 되돌릴 길이 거의 없다.
구글이 주는 시험용 단위 ID(ca-app-pub-3940256099942544/5224354917)로
먼저 돌리고, 올리기 직전에만 진짜 ID 로 바꾼다.
되돌릴 것
「앱 콘텐츠」는 「Google Play로 보호됨」 아래가 아니다. 왼쪽 메뉴를 한참 내려가 「모니터링 및 개선」 묶음 안에 있다.
왼쪽 메뉴 → 모니터링 및 개선 → 정책 및 프로그램 → 앱 콘텐츠
└ 「조치됨」 탭
이미 선언을 마친 항목은 「해야 할 일」이 아니라 「조치됨」 쪽에 들어가 있다.
거기서 줄마다 「관리」를 눌러 고친다.
개인정보처리방침 · 앱 액세스 권한 · 광고 · 콘텐츠 등급
타겟층 및 콘텐츠 · 데이터 보안 · 광고 ID
바로 가는 주소 (확인됨)
https://play.google.com/console/u/0/developers/6811852006816293218
/app/4972558265923936224/app-content/overview
조각은 app-content 가 아니라 app-content/overview 다. 뒤의 overview 를
빼면 /home 으로 튕긴다 — 그래서 세 번 헛다리를 짚었다.
developerId 6811852006816293218
appId 4972558265923936224
어제 광고가 없다고 선언했다. 붙이는 날 같은 판에 되돌려야 한다. 코드만 바꾸고 선언을 안 바꾸면 거짓 선언이고, 그건 앱 정지 사유다.
「예, 앱에 광고가 있습니다」로. 스토어에 「광고 포함」 딱지가 다시 붙는다.
「예」로. 그리고 매니페스트에
com.google.android.gms.permission.AD_ID 권한이 있어야 한다.
docs/privacy.html 에 광고 식별자를 수집한다는 문구를 더한다.
안 적으면 심사에서 걸린다.
「기기 또는 기타 ID」를 수집함 · 광고 목적으로 고친다.
미리 아는 것