Объявления загружаются, но не отображаются?
TL; DR: мои межстраничные объявления успешно загружаются, но когда я вызываю .show()
на них, они не отображаются!
Я следил за этими направлениями, и объявления загружаются успешно, но не отображаются, когда я вызываю mInterstitialAd.show();
:
В onCreate():
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("My ID");
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
beginPlayingGame();
}
});
requestNewInterstitial();
requestNewInterstitial()
:
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("Phone ID")
.build();
mInterstitialAd.loadAd(adRequest);
}
ЗДЕСЬ ПРОБЛЕМА:
public void tryAgain(View v) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
Log.v(TAG, "LOADED in Game Over!");
}
else {
beginPlayingGame();
}
beginPlayingGame();
}
Я получаю журнал, говорящий, что он загружен в моем журнале, но объявление на самом деле не отображается! Почему загрузка, но не отображается?
P.S. Я думаю, что на самом деле я начал работать раньше, но с тех пор он перестает работать. В чем может быть проблема?
Ответы
Ответ 1
Добавьте .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
к своему AdRequestBuilder
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
.build();
Потому что на этапе разработки, если вы делали слишком много запросов на AdMob, иногда он начинает не показывать рекламу. Таким образом, процесс разработки работает с тестовыми объявлениями. Если это работает без каких-либо проблем, когда вы публикуете свое приложение в Play Маркете, ваши пользователи также будут видеть ваши объявления без каких-либо проблем.
Ответ 2
Оказывается, мне просто нужно было удалить дополнительный вызов метода после else. Например,
public void tryAgain(View v) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
Log.v(TAG, "LOADED in Game Over!");
}
else {
beginPlayingGame();
}
beginPlayingGame();
}
должен был быть
public void tryAgain(View v) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
Log.v(TAG, "LOADED in Game Over!");
}
else {
beginPlayingGame();
}
//NOTICE THERE Is NO EXTRA METHOD CALL OF **beginPlayingGame()**
}