세 차례 구글 앱 승인 거절 끝에 앱 출시! (중립적인 연령 심사 화면 이슈)
광고 붙이고 스토어 등록 설정까지 마쳤다. 이제 앱 승인만 통과하면 되는데, 거절됐다.
그 이유는 중립적인 연령 심사 화면(Neutral age screen)이 없거나 부정확하게 구현했다는 것이다.
왜 중립적인 연령 심사 화면을 구현해야 하는가? 그것은 앱 사용자 연령층을 가장 낮게 설정하고, 광고 모듈(Unity Ads Legacy) 설정에서 어린이와 어른 모두 광고 보는 것을 허락했기 때문이다.
아동 개인 정보 보호, 예를 들면 COPPA(Children's Online Privacy Protection Rule)는 13세 미만 사용자의 광고 선호도 정보를 수집하는 것을 금지한다. 앱 개발자는 앱 설치 시 사용자의 연령 정보를 얻어서 광고 모듈에 적용해 주면, 광고 모듈 내부에서 광고 선호도 정보 수집을 제어할 수 있게 된다.
그래서 중립 연령 심사 화면에서 나이를 묻는 내용을 구현해야 한다. 유의할 점은 특정 나이 제한 조건을 나타낼 만한 것들이 화면에 나타나지 않도록 해야 한다. 생일을 물어보는 것이 가장 중립적으로 사용자의 연령을 확인하는 방법이며, 기본 값 또한 설정하지 않아야 한다. 처음에 구현한 방식은 슬라이드 바를 이용하여 직접 나이를 묻는 형식이었다.
결과는 앱 승인 거절. 중립적인 연령 심사 화면을 구현했기 때문에 다른 부분에 문제가 있다고 생각했다. 광고 모듈에 나이 정보 설정하는 게 정확하지 않다는 것을 발견했다.
// Unity Ads Legacy 4.12.0
var userMetaData = new MetaData("user");
userMetaData.Set("nonbehavioral", BirthdayInputHandler.IsUnderAge ? "true" : "false");
userMetaData.Set("age", BirthdayInputHandler.GetAge().ToString());
Advertisement.SetMetaData(userMetaData);
"nonbehavioral" 설정이 누락됐다. ChatGPT 사용 전에 Unity Ads 문서를 먼저 봤어야 했다;
다시 앱 승인을 요청했다. 역시 같은 이유로 거절됐다. 슬라이드 바 구현에 문제가 있다고 판단하고 인터넷 검색과 구글 정책을 다시 읽고 보니, 기본 나이 값(18)이 설정된 게 문제 소지가 있음을 느꼈다. 그래서 최초에 기본 값이 나타나지 않도록 구현하고 다시 앱 승인을 요청했다. 또 같은 이유로 거절됐다. 이때부터, 매우 혼란스러웠다. 앱 승인 거절 사유가 구체적이지 않은 구글을 원망했다. 이의 제기를 하면 구체적인 정보를 얻을 수 있을까 싶어 시도했지만, 돌아온 답변은 구체적이지 않았다. 정책 사항을 검토하라는 말뿐이다.
결국 슬라이드로 나이를 입력하는 대신 드랍다운 콤보로 생년월일을 입력하는 형태로 재작업했다.
UX 측면에서 그다지 좋은 것도 아니고, 구현 측면에서도 손이 가지만, 세번이나 앱 승인이 거절됐기 때문에 특단의 조치를 내려야만 했다. 생년월일을 입력하는 것은 구글이 제안하는 방법이었기 때문에 시도하지 않을 수 없었다. 결과는 앱 승인 통과!
앱 리뷰하는데 평균 4일씩 걸렸다. (최대 7일까지 걸릴 수 있다고 나온다) 세 차례 앱 승인 거절과 이의제기로 대략 16일을 날렸다. 구글에서는 내가 구현한 UI에 대해서 구체적으로 언급하지 않기 때문에 꽤나 막막했다. 만약 네 번째 앱 승인이 거절나면 광고 모듈의 13세 미만 허용 설정을 바꾸거나, 광고 모듈을 제거하거나 둘 중 하나로 갈 생각이었다. 통과돼서 다행이다. 앱 출시는 정말 만만치 않은 일이다.
구글 플레이 스토어에 등록된 Mystery Dungeon