디데이 앱 Days+를 만들어 출시하고 조용히 망한 기록. 7편짜리다. 각 편은 따로 읽어도 된다. 1편부터 보기

6월에 이 일을 정리해둔 메모가 있다. 요지는 이렇다.

사흘 밤낮을 갈아 넣었는데 원인은 코드가 아니었고, 애드몹 콘솔 구석의 체크박스 하나와 테스트 기기 등록할 때 UDID에 잘못 친 알파벳 한 글자였다. 클릭 세 번과 오타 한 글자를 고치니 광고가 잘 나왔다.

1편에도 그렇게 썼다.

이번에 그날 커밋과 대화 기록을 다 열어봤다. 세 가지가 다르다.

원인은 내가 걸어둔 하한선이었다

출시하고 보름쯤 지난 어느 날 오후, 광고가 자주 안 뜬다고 물었다. 앱스토어 연결도 app-ads.txt 도 이미 끝난 상태였고, 증상은 보상형에서 특히 자주 광고가 비는 거였다.

원인은 금방 나왔다. eCPM 하한선이 걸려 있었다.

단가를 조금이라도 더 받으려고 내가 설정한 값이다. 애드몹 콘솔에 그런 옵션이 있으니까 켰다. 싸게 팔 바에는 안 파는 게 낫다는 계산이었고, 광고 수익을 다루는 방식으로는 틀린 생각이 아니다.

다만 그건 트래픽이 있는 앱 얘기였다. 신규 앱은 데이터가 없어서 비싼 입찰이 안 붙는데, 나는 문을 잠가놓고 왜 아무도 안 들어오냐고 하고 있었던 셈이다.

모든 광고 단위를 최적화 안 함으로 바꿨다. 물어보고 고치기까지 14분 걸렸다.

콘솔 구석의 체크박스도 UDID 오타도 아니다. 그건 커밋에도 대화 기록에도 없다. 콘솔 설정 변경은 어디에도 안 남으니 그날 그런 일이 진짜 있었을 수도 있다. 확인이 안 될 뿐이다.

미디에이션은 8분이었다

하한선을 풀고 나니 이번엔 물량이 아쉬웠다. 하필 보상형이 문제였는데, 그게 이 앱 수익 모델의 전부였다. 사진 슬롯을 열려면 광고를 한 번 봐야 하는 구조라 보상형 광고가 안 뜨면 그 거래 자체가 성립을 안 한다.

보상형은 광고가 귀하니 다른 네트워크를 붙이라는 말을 듣고 Unity Ads로 정했다.

여기서부터 저녁 내내 갔다. 뭘 골라야 하는지, 여기서 할 게 남았는지, 몇 시간 전에 물어본 걸 또 물었다. 밤이 깊어지면서 남긴 말이 “뭐가 뭔지..”, “뭐가 뭐냐…” 두 줄이다.

그때 붙잡고 있던 화면이 이거다.

애드몹 미디에이션 광고 단위 매핑 화면

Game ID, 매핑 이름, 네트워크 eCPM, Placement ID. 빈 칸마다 어디서 가져와야 하는 값인지가 다르고, 화면 어디에도 그 설명이 없다. 유니티 쪽 콘솔과 애드몹 콘솔을 오가면서 값을 하나씩 옮겨 붙이는 작업이다.

메모에 “미디에이션 매핑 설정의 체크박스"라고 적었던 게 이 화면이다.

그렇게 저녁을 다 쓰고 밤 열한 시쯤 커밋 두 개를 찍었다. 어댑터를 넣은 게 하나, 동의 API 호출 방식을 두 줄 고친 게 하나. 8분 간격이다. 코드로 남은 미디에이션 작업은 그게 전부다.

메모에 “Info.plist에 SKAdNetwork ID를 50개 때려 박았다"는 대목도 있는데, 그건 그날 일이 아니다. Info.plist 562줄을 갈아치운 커밋은 3주 뒤에 따로 있다.

그 커밋에 딸려 들어간 것

그 커밋 본문 첫 줄이 이거다.

Fix AdMob App ID (Android/iOS): replace Google test IDs with real App IDs

디프를 열어보면 AndroidManifest.xmlInfo.plist 에 박혀 있던 애드몹 앱 ID가 구글 공식 문서의 샘플 값이었다. 안드로이드 ~3347511713, iOS ~1458002511. 구글이 예제로 적어둔 그 숫자 그대로다.

구글플레이 출시가 4월 6일이다. 17일 동안 앱에 박힌 애드몹 앱 ID가 내 계정이 아니었다.

그리고 이건 몰랐던 게 아니다. 개발 3일차에 애드몹 붙이는 법을 물으면서, 지금 샘플 ID로 작업해뒀다고 내가 먼저 말했다. 계정 만드는 절차도 그날 안내받았다.

광고 단위 ID는 출시 직후에 실제 값으로 갈았다. 자리표시자로 넣어둔 1234567890 을 진짜 ID로 바꾸고 테스트 모드 플래그도 릴리즈에서 껐다. 그런데 앱 ID는 안 건드렸다.

미디에이션을 붙이려고 콘솔을 뒤지다가 그제야 눈에 띈 거다.

그럼 사흘은 뭐였나

커밋 날짜만 보면 사흘에 걸쳐 있는 게 맞다. 그런데 대화 기록을 붙여보면 미디에이션 작업 자체는 하루다. 오후에 시작해서 그날 밤에 끝났다. 앞뒤로 붙은 app-ads.txt 손질까지 뭉뚱그려 사흘로 기억한 것 같다.

그러니까 메모에 적은 세 가지가 다 조금씩 어긋나 있었다. 사흘이 아니라 하루였고, 원인은 남이 숨겨둔 체크박스가 아니라 내가 걸어둔 하한선이었고, 찾는 데는 14분 걸렸다.

나머지 저녁은 미디에이션에 썼는데 코드로 남은 건 8분치다. 그 커밋에 앱 ID 교체가 같이 들어가 있었다는 건 이번에 처음 봤다.

숫자로 보면 결국 이렇게 끝났다. 넉 달 누적 광고 요청 3,110번, 노출 317번, 수입 2.78달러. 일치율은 51.66%다. 하한선을 풀었으니 그 뒤로 매칭률은 올라갔을 텐데, 애초에 요청이 넉 달에 3,110번이면 뭘 곱해도 앞자리가 정해져 있다.