AdMob 계정에 GDPR 동의 메시지가 하나도 없었다: 앱 21개에 UMP 를 하루에 넣은 기록
새 앱 릴리즈 로그에 "no form(s) configured" 가 찍혀서 확인해 보니, AdMob 계정에 유럽 규정 동의 메시지가 0개였고 UMP 코드가 들어간 앱은 17개 중 3개뿐이었습니다. 메시지를 만들고 14개 앱에 코드를 넣어 재출시하기까지의 순서와 함정을 씁니다.
발견
새로 만든 앱을 릴리즈 빌드로 돌리는데 로그에 이런 줄이 있었습니다.
UMP: no form(s) configured
동의 SDK(User Messaging Platform)가 콘솔에서 폼을 받아오려 했는데 없다는 뜻입니다. AdMob 「개인 정보 보호 및 메시지」에 들어가 보니 유럽 규정 카드가 「만들기」 상태였습니다. 메시지가 한 개도 없었습니다. 앱을 몇 년 운영하는 동안 EEA·영국·스위스 사용자에게는 동의 없이 제한 광고만 나가고 있었던 셈입니다.
더 확인해 보니 문제가 두 겹이었습니다.
- 콘솔에 메시지가 없다.
- 운영 중인 앱 17개 중 UMP 코드(
requestConsentInfoUpdate/ConsentInformation)가 있는 앱이 3개뿐이다. 나머지 14개는 메시지를 만들어도 아무것도 뜨지 않는다.
콘솔 쪽: 메시지 하나로 앱 21개
메시지는 하나만 만들었습니다. 「앱 선택」에서 21개(운영 중 17 + 신규 4)를 전부 체크하고, 기본 언어 영어에 추가 언어 18개를 붙였습니다. 한국어는 선택 목록에 없습니다(규정 대상 지역이 아니라서).
설정은 이렇게 했습니다.
- 동의·옵션 관리 사용
- 「동의하지 않음」 버튼: 전 국가 사용 안 함(동의율 때문에 기본값 유지. 규제상 필요한 나라가 생기면 그때 켭니다)
- 닫기 버튼 사용 안 함
게시 후 앱에 반영되기까지 최대 1시간이 걸립니다. 앱마다 개인정보처리방침 URL 이 등록돼 있어야 하고, 없으면 「선택 항목이 잘못되었거나 정보가 누락」 오류로 저장이 안 됩니다. 새 앱을 등록할 때마다 이 메시지의 앱 목록에 추가하는 것도 잊기 쉬운 부분입니다.
앱 쪽: 14개에 코드 추가 후 재출시
콘솔 메시지는 UMP 코드가 있는 앱에만 효과가 있습니다. 14개 앱에 user-messaging-platform 의존성을 넣고, 광고 SDK 초기화 전에 동의 정보를 갱신하고 필요하면 폼을 띄우는 순서로 코드를 넣었습니다. 표본은 신규 앱에서 쓰던 클래스 하나를 그대로 복사했습니다.
핵심 순서는 이렇습니다.
requestConsentInfoUpdate로 동의 상태를 갱신loadAndShowConsentFormIfRequired로 필요할 때만 폼 표시canRequestAds()가 true 일 때만 광고 SDK 초기화
3번이 중요합니다. 동의 결과와 무관하게 광고를 초기화하면 폼이 있어도 의미가 없습니다.
같은 날 강제 인앱 업데이트도 함께 넣어 17개 앱을 일괄 출시했습니다. 옛 버전에 머무는 사용자에게는 동의 폼이 영영 안 뜨기 때문입니다.
확인은 Play 설치본으로만
- 디버그 빌드나 사이드로드에서는 동의 폼 로직이 실제 지역 판정을 거치지 않아 확인이 어렵습니다.
- 실제 확인은 Play 내부 테스트 트랙에 올린 빌드를 EEA 지역으로 설정한 기기에서 했습니다. 동의 폼이 뜨고, 동의 후 광고가 나오는 것까지 봤습니다.
- 메시지 상태는 콘솔 유럽 규정 카드가 「관리 · 활성화된 메시지 N개」로 바뀌면 있는 것입니다.
걸린 것
- 에이전트를 여러 개 돌려 14개 앱 빌드를 나눠 맡겼더니 9개가 서명 없이 나왔습니다. 빌드 환경 변수(서명 키 위치)를 지시서에 안 적은 탓입니다. AAB 안의 서명과 versionName 을 소스와 대조하는 검사 스크립트로 잡았습니다. 파일 시각으로는 구분이 안 됩니다.
- 한 앱은 옛 키스토어로 서명돼 업로드가 거부됐습니다(wrong key). 공용 키스토어로 다시 서명했습니다.
- 「미국 주 규정」 메시지는 별도입니다. 아직 만들지 않았고, 이건 따로 결정할 일입니다.
정리
- AdMob 콘솔에 유럽 규정 메시지가 없으면 UMP 를 부르는 앱은 폼 없음으로 끝나고, 없는 앱은 아무 일도 안 일어납니다. 둘 다 EEA 사용자에겐 제한 광고입니다.
- 메시지 하나 + 앱 전체 선택 + 방침 URL 로 콘솔 쪽은 끝납니다.
- 코드가 없는 앱은 의존성 추가 후 재출시해야 하고, 옛 버전 사용자를 끌어올리려면 강제 업데이트가 같이 필요합니다.
- 확인은 Play 설치본에서만 의미가 있습니다.