ADMOB Error 3 : ad failed to load 3
애드몹을 쓰던 중, 잘만 나오던 광고가 아래 오류가 어느 순간 갑자기 나오기 시작하면서 테스트 배너 광고가 나오지 않았습니다. 그래서 어떤 오류인가 했더니 아래와 같은 오류였네요.
광고 요청은 성공(그러니까 구현에는 문제가 없다는것)했는데, 인벤토리에 광고가 없어서 광고를 못보여준다고합니다. 어, 하지만 스토어에 있는 내 앱에는 광고가 잘 나오는데요? 저의 증상은 출시 앱에는 광고가 잘 나오고, 오히려 테스트 ID를 써서 앱 개발할때에는 테스트 광고가 나오지 않는 것이었습니다.
구글링을 해보니 광고가 잘 나오다가 이와 같은 증상을 겪은 사람들의 공통점이 어느 순간 갑자기 안나온다는 것이었습니다. 몇가지 조치할 수 있는 방법이 있는데 한번 확인해보세요.
1. 구글 플레이 스토어에 구글 광고가 포함되어있다고 체크했는지 확인
구글 플레이 콘솔 -> 출시 앱 선택 -> 왼쪽 하단 앱 콘텐츠 선택 -> 중간쯤에 광고란 확인
2. 부정클릭이 발생했는지 확인. 이 경우 30일간 광고가 일시 정지되거나 영구정지 될 수도 있다고 하네요. 어떤 경우라고 자신의 광고를 클릭하지 맙시다.
3. app-ads.txt를 추가하고 테스트 기기 등록했는지 확인
저의 경우는 3번이었습니다. 갑자기 안나온것이라 생각했는데, 기억을 더듬어 보니 app-ads.txt를 추가한 이후에 테스트 광고가 안나오는 것이었어요. 역시 나만 갑자기라고 생각했나봐요..
이것에 대한 해결 방법에는 두가지가 있습니다.
1. app-ads.txt에 아래의 구문 추가
google.com, pub-3940256099942544, DIRECT, f08c47fec0942fa0
이 방법은 간단하긴 하지만 반영되기까지 최대 24시간이 있어야한다는 군요.
2. Test Device 등록
이 방법은 바로 적용이 가능한 방법입니다. 저는 바로 확인을 원하기 때문에 2번, 테스트 기기를 등록하는 방법을 사용할 것입니다.
그래서 이번 포스팅은 안드로이드 테스트 디바이스를 설정하는 방법에 대한 것입니다. 이때 테스트 광고 ID를 쓰는 것이 아니고 발급받은 ID를 사용해야한다는 점입니다.
아래의 코드를 추가하세요.
MobileAds.initialize(this);
//앱 출시시 반드시 주석 처리
List<String> testDeviceIds = Arrays.asList("Your Device ID");
RequestConfiguration configuration =
new RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build();
MobileAds.setRequestConfiguration(configuration);
//앱 출시시 반드시 주석 처리
Arrays.asList에는 자신의 고유 Device ID를 기재해주어야합니다. 어떻게 아냐구요? 안드로이드 스튜디오 Logcat에 나와있습니다.
I/Ads: Use RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))
to get test ads on this device."
Logcat에서 RequestConfiguration을 검색하여 찾아보세요.
다음으로 중요한 것은 Test 광고 ID를 사용하는 것이라고 했죠? adUnitId를 발급받은 광고 ID로 바꿔주세요.
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER"
android:layout_alignParentEnd="true"
ads:adUnitId="@string/banner_ad_unit_id" />
이렇게 하면 테스트 광고가 잘 나올겁니다.
'안드로이드' 카테고리의 다른 글
[안드로이드] Google Native 광고 구현 시 Module Import 안될때 해결방법 (0) | 2021.11.07 |
---|---|
[Android] 간단 코딩 - SwipeRefreshLayout을 이용하여 새로 고침하기 (0) | 2021.08.24 |
[안드로이드] 알람(Alarm)을 받는 수신자(Receiver)에서 알림(Notification) 구현 코드 (2) | 2021.08.23 |
[안드로이드] XmlPullParser로 Xml 파싱하는 방법 - 코드 예제 (0) | 2021.05.26 |
[안드로이드] 서울시 버스 도착 정보 조회 api 사용 - 공공데이터포털 Open API (0) | 2021.05.01 |