Skip to content

[P2][feature] 광고 수익화 미도입 — 30일 IAA 0원·콘솔 지면 0개, 퀴즈 완료 지점 전면광고 도입 (콘솔) #4

Description

@magicsih

배경/문제

periodic-table(콘솔 miniAppId 36076)은 콘솔 IAA 지면이 0개이고 앱 코드에도 광고 배선이 없어 광고 수익이 0원이다. 2026-07-26~08-01 7일간 DAU 합 73 유저-일(13/16/10/7/10/7/10)로 워크스페이스 내 상위권 트래픽인데 수익은 IAA·IAP 모두 0이다. 같은 기간 lucid-chess는 131 유저-일에 498원, crossword 웹은 34 유저-일에 109원을 벌었다.

단, 이건 단순 배선 누락이 아니다. 저장소 문서에 "광고 사용 안 함"이 정책으로 명시돼 있다(docs/release-checklist.md:15, docs/apps-in-toss-registration.md:41,59,83). 즉 도입은 정책 변경을 수반하며, 그 판단이 이 이슈의 선행 관문이다.

근거 데이터

  • 출처: AppsInToss 콘솔 dashboard_dau / dashboard_revenue_iaa / iaa_placement_group_list, workspaceId 38345, miniAppId 36076
  • iaa_placement_group_list(36076)[]광고 지면 0개
  • IAA 2026-07-2608-01: ANDROID/IOS 모두 dailyReports: [], 노출 0·수익 0원. 30일(07-0308-01) 조회도 동일
  • DAU 7일 합 73 유저-일, 신규 64명
  • 평균 세션 12.4~46.7초(앱 특성상 매우 짧음)
  • 유입: 미니앱홈 82~92% 지배
  • 연령: 10대 98.6%(콘솔 minAge 14)
  • IAP 0원

확인된 제약

  • AIT 웹 미니앱이 쓸 수 있는 광고 API는 loadFullScreenAd / showFullScreenAd 전면광고 2종뿐이다(@apps-in-toss/web-bridge 타입 정의 확인). 배너 API는 존재하지 않는다. 따라서 도입 형태는 전면광고로 한정된다.
  • 앱 화면 모드는 explore | quiz | quiz-result 3종(src/App.tsx:21). 전면광고를 넣을 자연스러운 경계는 퀴즈 완료 → 결과 전환 시점 하나뿐이다.

리스크 (착수 전 판단 필요)

  1. 정책·등록 변경: 문서에 "광고 없음"이 명시돼 있고 콘솔 등록 메타에도 반영돼 있을 수 있다. 문서와 콘솔 등록 정보를 함께 갱신해야 한다.
  2. 아동 비중: 10대 98.6%. 아동 대상 취급(개인맞춤광고 제한 등)을 콘솔 지면 설정에서 확인해야 한다.
  3. 짧은 세션: 평균 12~47초. 전면광고가 이탈을 키울 수 있으므로 빈도를 보수적으로 잡고 DAU·세션 회귀를 반드시 관측한다.

제안

  1. 콘솔에 INTERSTITIAL placement group 생성(iaa_placement_group_create 또는 콘솔 웹) → adGroupId 확보
  2. packages/ait-core에 전면광고 어댑터 추가. lucid-chess의 tossFullScreenAdRuntime.ts / tossFullScreenAdPolicy.ts 구조 참고(로드 재시도 백오프, 로드 타임아웃, show 가드)
  3. 트리거는 퀴즈 완료 → 결과 전환 1곳만. answerQuiz의 마지막 문항 분기(src/App.tsx:159-162)
  4. 빈도 캡: 퀴즈 3회 완료당 1회, 최초 1회 완료는 제외(첫 인상 보호). 캡 상태는 ait-core의 Storage로 영속화
  5. 광고 미지원·로드 실패 시에도 결과 화면 전환이 막히지 않도록 폴백
  6. 계측: 로드/노출/스킵 사유 이벤트를 src/analytics.ts에 추가
  7. 문서 갱신: docs/release-checklist.md:15, docs/apps-in-toss-registration.md:41,59,83

관련 파일

  • src/App.tsx:21(Mode), :150-168(answerQuiz), :171+(quiz 화면)
  • src/analytics.ts(trackQuizCompleted)
  • packages/ait-core/src/index.ts(어댑터 추가 위치, Storage/trackClick 기존 구현)
  • granite.config.ts(permissions)
  • docs/release-checklist.md, docs/apps-in-toss-registration.md

인수조건

  • 콘솔에 전면광고 지면이 생성되고 adGroupId가 설정으로 주입된다(하드코딩 금지)
  • 퀴즈 완료 3회당 1회만 전면광고가 표시되고, 첫 퀴즈 완료에는 표시되지 않는다
  • 캡 카운터가 Storage에 영속되어 앱 재시작 후에도 유지된다
  • 광고 미지원 환경·로드 실패·타임아웃 어느 경우에도 결과 화면 전환이 차단되지 않는다(단위 테스트 포함)
  • "광고 없음" 정책 문구가 문서에서 갱신되고 콘솔 등록 정보와 일치한다
  • 노출·스킵 사유가 계측되어 배포 후 노출률을 측정할 수 있다
  • npm run test / lint / typecheck 통과

규모

M

검증 방법

배포 후 7일간 콘솔 dashboard_revenue_iaa(36076)에서 노출 > 0·eCPM을 확인한다. 동시에 dashboard_dau / dashboard_session으로 DAU·평균 세션이 도입 전(7일 73 유저-일, 세션 12.4~46.7초) 대비 유의하게 하락하지 않는지 대조한다. 하락 시 빈도 캡을 올리거나 롤백한다.

데이터 기준일

2026-08-01

Metadata

Metadata

Assignees

No one assigned

    Labels

    P4우선순위 P4blocked선행 조건 미충족으로 보류evidence:consoleAppsInToss 콘솔 IAA/DAU 지표 근거feature기능 추가

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions