2016-11-06 4 views
1

Я разработал приложение для Android, и я включил межстраничное объявление adMob Google. Проблема в том, что на эмуляторе объявление успешно показано, но на моем устройстве оно не появляется. Я создал идентификатор рекламного блока, который я создал в AdMob, и я связал приложение с adMob.Почему межстраничные объявления не отображаются на устройстве

Вот мой код:

InterstitialAd mInterstitialAd; 

mInterstitialAd = new InterstitialAd(this); 
     mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen)); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     // Load ads into Interstitial Ads 
     mInterstitialAd.loadAd(adRequest); 
     mInterstitialAd.setAdListener(new AdListener() { 
      public void onAdLoaded() { 
       showInterstitial(); 
      } 
     }); 

Теперь функции showInterstitial():

private void showInterstitial() { 
    Random r = new Random(); 
    if (mInterstitialAd.isLoaded()) { 
     new android.os.Handler().postDelayed(
       new Runnable() { 
        public void run() { 

         mInterstitialAd.show(); 
         AdRequest adRequest = new AdRequest.Builder().build(); 
         mInterstitialAd.loadAd(adRequest); 
        } 
       }, 
       r.nextInt(7000 - 5000) + 5000); 

    } 
} 

Я добавил случайное время ожидания и при загрузке объявления будет отображаться.

и в моем Gradle файл я добавил следующее:

compile 'com.google.android.gms:play-services-ads:9.8.0' 

NB. У меня есть другое рекламное объявление в приложении.

на эмуляторе она работает просто отлично вот скриншот:

enter image description here

Любые Одна есть идея, почему интерстициальное Объявление не отображается на устройствах? , Спасибо.

+0

Какой код ошибки вы получаете? Проверьте выход Logcat. – earthw0rmjim

ответ

2

Я исправил проблему, но изменил способ вызова функции showInterstitial(). Проблема была связана с загрузкой объявления. Вот мое исправление:

@Override 
    public void onResume() { 
     // Start or resume the game. 
     super.onResume(); 
     showInterstitial(); 
    } 
    @Override 
    protected void onStart() { 
     super.onStart(); 
     showInterstitial(); 
    } 

Я показать объявление, когда активность Запускает или когда оно возобновляется, нам нужно событие, чтобы показать объявление.

Это, как я объявил интерстициальное объявление и моя showInterstitial() функции:

//Interstitial 
      private InterstitialAd mInterstitialAd; 
      mInterstitialAd = new InterstitialAd(this); 
      mInterstitialAd.setAdUnitId(getString(R.string.banner_ad_unit_interstitial)); 
      AdRequest adRequestInterstitial = new AdRequest.Builder().addTestDevice("deviceid").build(); 
      mInterstitialAd.loadAd(adRequestInterstitial); 

      mInterstitialAd.setAdListener(new AdListener() { 
       @Override 
       public void onAdClosed() { 

       } 

       @Override 
       public void onAdLoaded() { 
        mAdIsLoading = false; 
        showInterstitial(); 
       } 

       @Override 
       public void onAdFailedToLoad(int errorCode) { 
        mAdIsLoading = false; 
       } 
      }); 

Это мой результат на моем Samsung устройстве:

enter image description here

Я думаю, что это проблема.

+0

Ты спасатель жизни. !! : P Спасибо, что помогли мне заработать. лол –

0

Используйте метод addTestDevice ("") во время создания запроса на рекламу.

AdRequest adRequest = new AdRequest.Builder().addTestDevice("deviceid").build(); 

DeviceId можно получить, просмотрев выход logcat после создания нового объявления. Ищите теги «объявления» в журнале, он будет показывать addTestDevice («некоторое значение») при запросе объявлений.

1
AdRequest adRequest = new AdRequest.Builder().addTestDevice("deviceid").build(); 

Используйте это для испытательного устройства.

Смежные вопросы