앱인토스 배너 광고를 계산기 앱에 붙이면서 코드 여섯 파일을 바꿨습니다.
막힌 곳은 코드가 아니라 광고 정책 네 군데였습니다.

오늘 낮에 올린 글에서 세 형식 중 왜 배너였는지를 적었습니다.
이 글은 그 배너 하나를 실제로 붙이는 동안 설계를 바꾸게 만든 규칙들의 기록입니다.
전부 개발자센터의 배너 문서와 광고 운영 정책에 적혀 있는 것들이고, 저는 구현하면서 하나씩 부딪혔습니다.
슬롯을 어디에 어떻게 그릴지는 제가 아니라 정책이 정했습니다.
앱인토스 배너 광고 SDK는 세 호출이 전부입니다
배너 쪽 API는 단순합니다.

initialize
앱 최상위에서 한 번만 초기화
attachBanner
광고 그룹 ID와 DOM 요소를 넘겨 부착. 돌려받은 객체의 destroy로 제거
이벤트 콜백
렌더 완료 → 노출 → 노출 기록 → (클릭) 순서, 채울 광고가 없으면 onNoFill
수익이 잡히는 시점은 「노출 기록」 콜백입니다.
노출됐다고 곧 수익이 아니고, 기록됐을 때 수익입니다.
그래서 계측도 이 콜백에 걸었습니다.
함정 하나, 컨테이너 폭은 화면 너비 100%여야 합니다
문서의 부착 가이드는 세 줄입니다.
부착하는 요소 안은 비워 둘 것, 폭은 항상 화면 너비와 같을 것, 고정형이면 높이 96px을 권장할 것.
이 앱의 카드는 좌우에 16px 여백이 있습니다.
카드 안에 슬롯을 넣으면 폭 규칙을 어깁니다.
그래서 슬롯을 카드 밖 풀폭 요소로 빼고, 좌우 패딩과 둥근 모서리는 SDK의 카드 변형 옵션이 그리게 했습니다.
높이는 지정하지 않았습니다.
인라인 배너라 SDK가 채우는 만큼만 차지합니다.
함정 둘, 로컬 브라우저에서는 배너가 아예 보이지 않습니다
SDK의 지원 여부 함수는 토스 앱 밖에서 false를 돌려줍니다.
그러면 슬롯은 렌더되지 않습니다.

레이아웃이 맞는지 확인할 방법이 없어서, 표시만 흉내 내는 QA 스위치를 만들었습니다.
주소에 ?qaad=1을 붙이면 SDK를 부르지 않고 점선 자리표시만 그립니다.

노란 표식이 붙어 있어 실제 광고와 헷갈리지 않습니다.
실제 광고는 토스 앱 실기기에서만 보입니다.
문서가 개발용 테스트 ID를 따로 주는 것도 같은 이유입니다.
함정 셋, 갱신은 SDK만 할 수 있습니다
배너는 두 조건이 모두 맞을 때 SDK가 알아서 갱신합니다.
렌더 뒤 10초가 지났고, 화면이 안 보였다가 다시 보이는 순간입니다.
앱이 타이머로 다시 붙이면 어떻게 되는지 정책이 적어 두었습니다.
금지 행위
광고 영역을 주기적으로 Refresh 처리
정책 기준
비정상 패턴이 확인되면 광고 제한, 제재, 정산 보류
그래서 붙이는 건 마운트에 한 번, 떼는 건 언마운트에 한 번으로 고정했습니다.
초기화 함수도 모듈 안에서 한 번만 돌게 잠갔습니다.
개발 모드가 컴포넌트를 두 번 마운트해도 초기화는 한 번입니다.
함정 넷, 빈 자리를 남기면 광고 은닉으로 읽힙니다
정책에 「광고 은닉 또는 겹침」 항목이 있습니다.
투명 광고, 다른 카드 뒤에 광고 DOM을 넣는 행위가 예시입니다.
반대 상황도 문제입니다.
채울 광고가 없을 때 빈 상자가 남으면 레이아웃만 밀립니다.
그래서 채움 실패·렌더 실패·초기화 실패 셋 다 자리를 접습니다.
지원 안 되는 토스 앱 버전이면 처음부터 그리지 않습니다.
접힐 때는 사유를 붙여 계측을 보냅니다.
채움률을 콘솔 대시보드가 아니라 이벤트로도 볼 수 있게 하려는 것입니다.
위치는 정책 두 줄이 정했습니다
여기부터는 제 판단입니다.
같은 화면에 같은 포맷 광고를 두 개 이상 두는 것은 금지라 슬롯은 하나입니다.
버튼 같은 상호작용 요소와 붙여 두는 것도 금지라 첫 화면의 슬라이더 옆은 뺐습니다.
앱인토스 심사 반려 — 자체 헤더를 지우라는데 헤더가 없었습니다에서 겪었듯, 검수는 화면 요소의 중복을 봅니다.
남은 자리가 알림 카드 아래, 조건 바꾸기 카드 위였습니다.
예상 수익은 월 700원에서 2,100원 사이입니다

미니앱 광고 수익 계산에서 쓴 공식을 지금 트래픽으로 다시 돌렸습니다.
월 2,000세션에 노출 기록률 60%를 가정하면 노출은 1,200회입니다.

eCPM 1,000원이면 714원, 3,000원이면 2,142원입니다.
금액은 여전히 계기판 수준입니다.
이 숫자가 의미를 가지려면 분모가 수백 배 필요하고, 그건 광고가 아니라 유입의 문제입니다.
정리 — 다섯 줄
- 배너 컨테이너는 **화면 너비 100%**여야 해서, 여백 있는 카드 밖으로 슬롯을 뺐습니다.
- 로컬 브라우저에서는 지원 여부가 false라 안 보이므로, SDK를 부르지 않는 QA 자리표시 스위치를 두었습니다.
- 갱신은 「렌더 10초 경과 + 화면 복귀」일 때 SDK만 하고, 앱이 주기적으로 갱신하면 정산 보류 사유입니다.
- 채울 광고가 없으면 자리를 접고 사유를 계측으로 보냅니다.
- 지금 트래픽 기준 예상 수익은 월 714~2,142원입니다.
저는 이 네 가지를 겪고 “광고 슬롯 설계는 정책 문서를 먼저 읽고 시작한다"고 적어 두었습니다.
다음 글에서는 출시 뒤 콘솔에 잡힌 광고 요청·수신·노출 네 단계 수치를 적겠습니다.

이어서 볼 글
https://blog.naver.com/devarchi33/224404608261
이 글은 특정 플랫폼의 광고 수익이나 검수 결과를 보장하지 않습니다. 규칙은 2026년 9월 10일 앱인토스 개발자센터 배너 광고 문서와 광고 운영 정책 기준이고, 예상 수익은 세션 수·노출 기록률·eCPM을 가정한 계산값입니다. 슬롯 위치에 대한 판단은 제 해석입니다.
글에 참고한 자료들
- 앱인토스 개발자센터 — 배너 광고(WebView) 문서