앱오픈 광고가 운영에서만 안 나오던 이유

앱오픈 광고를 붙인 지 시간이 꽤 지났는데 리포트에 노출이 잡히지 않았다. 개발 빌드에서는 정상적으로 떴기 때문에 코드 문제로 보이지 않았다.

확인해보니

개발 빌드에서 뜬 건 테스트 유닛 ID였다. 운영 빌드에 들어가는 실 유닛 ID 자리는 비어 있었다. 광고 SDK는 잘못된 ID를 받으면 조용히 실패하고 예외를 던지지 않는다. 그래서 크래시도 없고 로그도 남지 않았다.

정리하면 이런 상태였다.

  • 코드: 정상
  • 초기화: 정상
  • 유닛 ID: 개발=테스트값, 운영=빈 값
  • 결과: 운영에서 노출 0, 오류 0

고친 것

  1. 발급받은 실 유닛 ID를 빌드 설정에 넣고, 환경별로 값이 실제로 들어갔는지 빌드 산출물에서 확인했다.
  2. ID가 비어 있으면 초기화 단계에서 경고 로그를 남기게 했다. 조용히 실패하는 게 가장 나쁘다.
  3. 광고 노출·실패 콜백을 이벤트로 남겨, 리포트를 기다리지 않고 앱 로그만으로 상태를 알 수 있게 했다.

배포 전에 봤어야 할 것

광고처럼 외부 값이 필요한 기능은 코드 완성과 동작 완성이 다르다. 코드가 머지된 시점에 완료로 표시해두면 이런 공백이 생긴다. 그 뒤로는 외부 값(키·ID·웹훅 주소)이 들어가는 작업은 체크 항목을 하나 더 두고, 운영 빌드에서 실제 값이 반영됐는지 확인한 뒤에 닫고 있다.

광고AdMob배포모바일앱
앱오픈 광고가 운영에서만 안 나오던 이유 · peppercode 개발 노트