본문으로 바로가기

Admob(애드몹) error code 3 광고 문제

category 개발이야기/Android 2020. 10. 8. 19:19
반응형

앱에서 갑자기 광고가 나오지 않는 상황이 발생했습니다.

로그를 보니 error code 3을 띄워 주더군요.

error code 3의 의미는 "보여줄 광고가 없다"입니다.

왜 그럴까요?

Sample ID를 사용해야 한다.

Error code 3을 언급하기 전에 먼저 알아둬야 할 게 있습니다.

일단 admob을 개발할 때는 반드시 test mode로 전환해 놓고 사용해야 합니다.

test mode를 설정하는 방법은 두 가지입니다.

1. 샘플 광고 ID를 사용한다

구글에서 가이드하는 샘플 광고는 type에 따라 따로 존재합니다.

따라서 개발할 때는 실제 광고가 아닌 샘플 광고를 써야 합니다.

 

 

 

2. 개발 단말 또는 Emulator를 테스트용으로 등록한다.

광고 샘플 ID를 사용할 경우 실제 배포할 때는 자신의 Admob ID로 바꿔야 합니다.

저 같은 경우는 gradle build type에서 debug 빌드시 샘플 ID를 사용하고, release시 진짜 ID를 사용하도록 분기해 놓았습니다.

이런 작업이 귀찮은 경우 자신이 개발하는 기기를 아예 테스트용이라고 코드에 박아 넣습니다

방법은 구글 가이드에 아주 상세하게 나옵니다.

 

 

 

https://developers.google.com/admob/android/test-ads?hl=ko

구글 가이드

Sample Id를 사용하는 게 Error code 3과 무슨 상관 인가?

test id를 사용하지 않고 개발할 경우 "광고가 잘 나오는지?", "이동이 잘 되는지?"를 위해 클릭할 경우 부정 클릭으로 간주됩니다.

따라서 광고 계좌가 일시정지 또는 영구정지될 수 있습니다.

억울한 상황을 맞지 않으려면 개발할 때는 꼭!!! Sample ID를 사용해야 합니다.

물론 아직 마켓에 올리지 않은 상태라면 error code 3번이 아닌 다른 에러가 떨어질 가능성이 큽니다.

 

 

잘 나오던 광고가 갑자기 error code 3번이 나오면서 안 되는 경우

열심히 구글링을 해보니 이를 타개하기 위한 방법으로 다양한 방법이 시도됩니다.

1. "Admob 페이지에서 "앱이 광고 포함" 부분을 설정 안 했는지 체크해 봐야 한다."

https://stackoverflow.com/questions/33566485/failed-to-load-ad-3

 

failed to load ad : 3

I'm setting an ad to my Android application using DoubleClick and can't manage to show the final ad, can someone help me? When I test an ad by adding ".addTestDevice("xxx...")" ...

stackoverflow.com

2. "적응형 배너를 쓰고 있었는데 갑자기 안돼서 스마트 배너로 바꿨더니 되더라.."

3. "구글에 광고가 없는 상황으로 가끔 발생하니 그냥 기다리거나 구글이 아닌 다른 광고를 붙여서 같이 써야 한다.."

4. 기타 등등..

 

많은 Solution들과 뇌피셜?? 들이 존재하지만 정작 나오던 광고가 갑자기 나오지 않는다면 아래 항목을 먼저 체크해 봐야 합니다.

1. Admob 계정과 동일한 계정으로 로그인되어 있는 핸드폰으로 광고를 클릭하지 않았는지

2. 광고를 연속적으로 클릭하지는 않았는지.

이 두가지는 부정클릭의 가장 대표적인 사유입니다.

구글은 똑똑하기 때문에 귀신같이 부정 클릭을 잡아 냅니다.

1번의 경우 너무나 쉽게 검출할 수 있는 부정 클릭이고 2번의 경우 광고 계좌를 아예 정지당할 수 있는 사유에 해당합니다.

사실 이런 것들 말고도 다른 여러 알고리즘으로 부정클릭을 잡아내는 AI가 돌고 있을 거라 생각이 드네요.

 

구글의 입장에서 보면 광고주에게 광고 효과를 극대화시킬 수 있도록 신뢰를 줄 수 있는 장치를 마련해 놓는 게 너무나도 당연합니다.

광고주 입장에서는 정말 내 광고가 관심 있어 들어와 봐야만 광고 효과를 보기 때문에 구글은 부정 클릭으로 인한 광고주의 손해를 막기 위해 부정클릭이라고 판단되면 광고 노출을 일시 중지시킵니다.

하지만 어디에도 정지되었다고 나오지는 않으니 광고 게재자는 그 원인을 정확하게 파악할 수 없습니다.

Error code 3의 원래 의미는 "구글의 inventory에 보여줄 광고가 없다"입니다.

구글도 항상 광고주가 광고 요청을 하지는 않기 때문에 내려줄 광고가 없을 수도 있습니다.

하지만 부정클릭의 조금이라도의 의심이 있다면 표면적 이유보다는 안타깝게도 "너에게 보여줄 광고는 없다"로 해석하는게 맞습니다.

이런 경우 광고의 타입을 바꾸거나, 새로 광고 단위 ID를 생성해서 사용해도 동일하게 광고가 내려오지 않습니다.

이를 해제하는 방법은 내부적으로 일시 정지된 기간이 끝날 때까지 그냥 기다리는 겁니다.

저는 정확하게 3주 정도 광고가 끊겼다가 갑자기 다시 광고가 내려오기 시작했습니다.

그 사이 다른 계정의 Admob을 달아놓은 다른 앱에서는 광고가 잘 내려오고 있었습니다.

(광고가 없는 게 아니라 부정클릭으로 정지된 거라는 확신이 더욱더...)

 

혹시라도 동일한 상황을 맞닥 드리고 "내 코드에 문제가 있나?"라고 고민하는 개발자분들을 위해 공유해 봅니다.

만약 sample ID 사용 시 광고가 잘 내려온다면 코드 구현에는 문제가 없다고 봐도 무방하기 때문에 내부적인 일시 정지가 풀릴 때까지 그냥 대기하시면 됩니다.

반응형