포스트

미니게임 10종을 광고 없이 출시했습니다 — 앱은 완성인데 지면을 안 만들었습니다

9월 8일 앱인토스에 미니게임 10종을 출시했는데, 광고 지면을 콘솔에서 만들지 않아 광고 영역이 비어 있는 채로 나갔습니다. 앱은 정상 동작하고 에러도 없어서 이틀 동안 눈치채지 못했습니다. 조용히 실패하는 설정 누락을 어떻게 발견했고, 왜 콘솔에서 고치는 것으로 끝나지 않는지 정리했습니다

미니게임 10종을 광고 없이 출시했습니다 — 앱은 완성인데 지면을 안 만들었습니다

9월 8일에 미니게임 10종을 앱인토스에 출시했습니다. 2048, 벽돌깨기, 픽셀 탁구, 오목, 하늘 점프, 솔리테어, 숫자 퍼즐, 지뢰찾기, 뱀 게임, 타워 쌓기입니다.

열 개 전부 광고가 하나도 나가지 않는 상태로 출시됐습니다.

앱이 고장 난 게 아닙니다. 게임은 완벽하게 동작하고, 광고를 붙이는 코드도 다 들어 있었습니다. 빠진 것은 코드가 아니라 콘솔에서 광고 지면을 만드는 단계였습니다. 요청할 대상이 없으니 광고가 나올 자리가 그냥 비어 있었습니다.

무엇이 빠졌나

앱인토스에서 인앱광고를 붙이려면 두 곳이 맞아야 합니다.

  1. 콘솔: 미니앱마다 광고 지면(그룹)을 만듭니다. 하단 배너, 전면 광고, 보상형처럼 종류별로 하나씩입니다. 만들면 groupId가 발급됩니다.
  2. : 그 groupId를 코드에 넣어 SDK로 광고를 요청합니다.

저는 2번만 해 뒀습니다. 게임 코드에는 배너를 붙이는 자리, 판이 끝날 때 전면을 띄우는 흐름, 힌트를 보상형과 연결하는 처리가 전부 들어 있었습니다. 그런데 1번을 하지 않았으니 넣을 groupId가 없었고, 앱은 아무것도 요청하지 않은 채 그대로 출시됐습니다.

먼저 출시한 6종은 제대로 되어 있었습니다. 스도쿠를 콘솔에서 확인해 보면 하단 배너, 전면 광고, 보상형(힌트) 세 개가 9월 4일에 만들어져 있습니다. 출시 다음 날 손으로 만든 것입니다. 그 다음 배치인 10종에서 이 단계가 통째로 빠졌습니다.

왜 빠졌나

10종을 한꺼번에 내면서 앱 하나당 해야 하는 콘솔 작업이 여러 개로 늘어났습니다. 스토어 등록정보, 스크린샷, 카테고리와 키워드, 연령 등급, 개인정보 처리방침, 검수 요청. 이걸 열 번 반복하다 보면 “출시했다”는 감각은 검수 제출을 누른 순간에 생깁니다.

그런데 광고 지면은 출시 흐름과 다른 화면에 있습니다. 출시 절차를 따라가면 지나가지 않는 메뉴입니다. 6종을 낼 때는 출시 다음 날 따로 들어가서 만들었고, 그게 절차가 아니라 그때의 기억이었기 때문에 다음 배치에서 반복되지 않았습니다.

한 개씩 낼 때는 기억으로 버틸 수 있습니다. 열 개를 한 번에 내면 버틸 수 없습니다.

왜 이틀 동안 몰랐나

이 사고의 성질이 여기 있습니다. 아무것도 실패하지 않습니다.

  • 앱은 에러를 내지 않습니다. 광고 영역이 그냥 비어 있고, 게임은 정상입니다.
  • 콘솔도 경고하지 않습니다. “이 미니앱에 광고 지면이 없습니다” 같은 알림은 없습니다.
  • 사용자도 불편하지 않습니다. 오히려 광고가 없으니 더 쾌적합니다.

유일한 신호는 수익이 안 들어온다는 것뿐인데, 갓 출시한 앱 열 개의 수익이 0원인 건 이상해 보이지 않습니다. “아직 사람이 안 들어왔겠지”로 읽힙니다. 실제로 저도 그렇게 읽었습니다.

어떻게 발견했나

앱별 광고 수익을 콘솔 화면으로 비교하는 게 불편해서, 워크스페이스 전체 리포트를 받아 날짜×앱 표로 쌓는 장부를 만들고 있었습니다. 그 표를 보다가 이상한 걸 발견했습니다.

새로 낸 10종이 표에 행 자체가 없었습니다.

수익 0원인 행이 있는 게 아니라, 아예 없었습니다. 노출도 0이라는 뜻입니다. 사람이 안 들어왔다면 노출이 적을 뿐 0은 아닙니다. 실제로 같은 기간 먼저 낸 6종은 하루 수십 회씩 노출이 찍히고 있었습니다.

여기서 배운 게 하나 있습니다. 노출 0과 수익 0은 다른 신호입니다. 수익 0은 흔한 일이지만(광고가 낙찰되지 않으면 노출이 있어도 0원입니다), 노출 0은 광고를 요청하지 않았다는 뜻입니다. 지표를 볼 때 이 둘을 같은 칸에 두면 안 됩니다.

잃은 것

출시일인 9월 8일부터 발견한 시점까지 약 이틀입니다. 열 개 앱의 이틀치 광고 수익이 그대로 0이 됐습니다.

정직하게 말하면 금액은 크지 않습니다. 같은 기간 먼저 낸 6종의 실적으로 환산하면 하루 수백 원 규모입니다. 커피 한 잔이 안 됩니다.

정말 아쉬운 건 금액이 아니라 되돌릴 방법이 없다는 점입니다. 그 이틀 동안 게임을 해 준 사람들은 이미 지나갔습니다. 앱을 만드는 데 들인 시간과 출시 절차를 밟은 수고는 그대로인데, 그 구간에서 나올 수 있었던 것만 사라졌습니다. 코드 한 줄 틀린 것도 아니고 그냥 화면 하나를 안 들어갔을 뿐인데요.

고치는 게 콘솔에서 끝나지 않습니다

이게 두 번째로 아픈 부분입니다. 지면을 만들면 끝이 아닙니다.

  1. 콘솔에서 미니앱마다 지면을 만듭니다. 10종 × 배너·전면·보상형이면 서른 개입니다.
  2. 발급된 groupId를 각 게임 설정에 넣습니다.
  3. 번들을 다시 빌드해서 앱인토스에 재검수를 제출합니다.
  4. 검수를 통과해야 광고가 실제로 나갑니다.

즉 출시 한 번에 끝났어야 할 일이 검수 사이클을 한 번 더 도는 일이 됐습니다. 잃은 이틀보다 이 재검수 대기가 실질적인 비용입니다. 지금 그 작업을 진행하고 있고, 검수가 끝나면 광고가 붙습니다.

다음 배치에서 바꾸는 것

같은 실수를 반복하지 않기 위해 정리해 둔 것들입니다.

출시 체크리스트에 수익화를 넣습니다. 지금까지 체크리스트는 “스토어에 보이게 하는 것”까지였습니다. 광고 지면 생성을 그 안으로 옮깁니다. 다른 화면에 있는 단계일수록 절차에 명시해야 합니다.

노출 0을 감시합니다. 매일 앱별 노출을 보는 장부가 이미 있으니, 출시된 앱 중 노출이 0인 것이 있으면 눈에 걸리게 해 두려고 합니다. 조용히 실패하는 설정은 사람 기억이 아니라 지표로만 잡힙니다.

출시 직후 실기기에서 광고 영역을 봅니다. 기능이 동작하는지만 확인하고 넘어간 게 이번의 직접적인 원인입니다. 배너가 있어야 할 자리에 배너가 있는지 눈으로 보는 데는 10초면 됩니다. 며칠 전 세로 스크롤 버그를 15개 앱에서 몇 주 동안 못 본 것도 같은 종류의 게으름이었습니다.

앱을 여러 개 동시에 내는 것의 비용을 인정합니다. 공용 코드로 만들면 개발은 확실히 빨라집니다. 그런데 앱마다 손으로 해야 하는 콘솔 작업은 개수만큼 정직하게 늘어납니다. 그 부분이 이 방식의 실제 병목이라는 걸 이번에 알았습니다.

마무리

만들어 놓고 스위치를 안 켠 셈입니다. 앱은 완성이었고 코드도 준비돼 있었는데, 콘솔 화면 하나를 안 들어가서 열 개가 전부 빈 광고 영역으로 나갔습니다.

그래도 이 사고가 나쁘게만 남지는 않을 것 같습니다. 수익을 앱별로 쌓아 보는 장부를 만들지 않았다면 지금도 몰랐을 겁니다. 숫자를 눈에 보이게 해 두는 일이 왜 필요한지 이번에 값을 치르고 배웠습니다.

10종 각각의 소개는 내일부터 하루에 하나씩 올릴 예정입니다. 먼저 나온 6종의 이야기는 미니게임 6종 동시 출시 회고에 정리해 두었습니다.

만든 앱들은 Google Play와 앱인토스에 있고, 일부는 브라우저에서 바로 해볼 수 있습니다. 소식은 이 블로그와 인스타그램(@fadongkwon.soft) (새 창에서 열림)에서 전해드립니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.