[Android] Admob 정책 위반 수정: Google 게재 광고를 완전히 또는 부분적으로 가리는 콘텐츠
갑자기 정책 위반 관련 메일을 받고 수익창출이 아예 틀어막혀버렸다.
원인 파악과 의심되는 원인을 수정하는 과정을 소개한다.
(정확한 문제를 알려주지 않아 추정해서 수정해야 한다)
원인 파악 1: 다른 액티비티에 의해 전면 광고가 가려질 수 있음
현재 사용중인 광고는 전면 광고, 배너 광고, 네이티브 고급 광고이다.
배너 광고와 네이티브 고급 광고는 구조적으로 가려질 수 없었기에 전면 광고를 의심했다.
내 앱의 전면 광고 표시 로직을 요약하면 다음과 같다.
1. 액티비티를 새로 여는 동작이 감지됨
2. 액티비티를 여는 동작을 인터셉트하여 중지시키고, 전면 광고 데이터가 로딩 완료되었는지 체크
3-1. 예) 전면 광고를 표시하고 광고가 닫힌 후 액티비티 여는 동작 마저 실행 (3-1이 한번 실행된 이후에는 무조건 3-2로 분기)
3-2. 아니오) 액티비티 여는 동작 마저 실행
그런데, 액티비티를 여는 동작(1)이 짧은 시간 내에 여러 번 들어올 경우 (버튼 연타, 기기 렉 등)
첫 번째에서 3-1 동작이 실행된 후 다음 액티비티를 여는 동작부터 1-> 2-> 3-2로 진행되게 된다.
따라서 전면 광고가 표시된 후 추가로 액티비티가 여는 동작이 실행되어 전면 광고가 가려진다.
이는 3-1에서 전면 광고를 표시하는 메서드를 호출하고 나서 실제로 표시되기 전의 짧은 시간동안 다음 요청이 실행되기 때문에 발생된다.
따라서 3-1 동작이 완전히 처리되기 전에는 새로운 1번 요청이 들어오지 못하도록 변경했다.
원인 파악 2: 토스트 메시지가 전면 광고의 일부를 가림
매우 낮은 가능성+ 매우 작은 영역이지만 어쨌든 가리고있긴 하다.
이 광고는 테스트 전면 광고라 토스트 메시지가 직접 가리지는 않지만,
실제 전면 광고에서는 디스플레이에 꽉 차는 전면 광고가 나오기도 한다.
이게 맞는 것 같으면서도, 이런 식으로 운영한지가 4년이 넘어가는지라
왜 이제서야 태클을 거는지는 잘 모르겠다...
어쨌든 "전면 광고와 토스트 메시지를 동시에 표시" 동작을
"다이얼로그 표시 후 확인 버튼을 누르면 전면 광고 표시"로 변경했다.
그냥 아무것도 표시하지 않고 전면 광고를 띄우면 되잖아? 라고 질문할 수도 있지만
전면 광고의 닫기 버튼은 즉시 표시되지 않고 1~2초 후에 표시되는 경우가 있다는 걸 명심해야 한다.
실제로 운영 초기에는 광고에 닫기 버튼이 없다고 종종 리뷰에 1점이 박히기도 했다.
수정 후
아무튼 풀리긴 했다...
"Google 게재 광고를 완전히 또는 부분적으로 가리는 콘텐츠" 문제로 고통받는 개발자가 있다면 도움이 되었길 바란다...