2016-10-18 16 views
0

У меня есть активность, чтобы показать полноэкранное изображение. Для загрузки изображения есть кнопка. Перед загрузкой мне нужно показать объявление межстраничного объявления. После загрузки мне нужно запросить & загрузку нового межстраничного объявления. Я кодируются так же, как следующее:Как запросить новое межстраничное объявление в android

public class FullScreenViewActivity extends Activity implements OnClickListener { 
     private InterstitialAd interstitial; 
     private AdRequest adRequest; 
     .... 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
      interstitial = new InterstitialAd(FullScreenViewActivity.this); 
      interstitial.setAdUnitId(getString(R.string.admob_interstitial_id)); //live ad unit 
      ... 
      } 

      protected void onResume() { 
       super.onResume(); 
       adRequest = getInterstitialAdRequest(); 
       interstitial.loadAd(adRequest); 
       interstitial.setAdListener(new AdListener() { 
        public void onAdClosed() { 
         downloadImage(); 
         adRequest = getInterstitialAdRequest(); 
         interstitial.loadAd(adRequest); 
        } 

        public void onAdFailedToLoad(int var1) { 
         downloadImage(); 
         adRequest = getInterstitialAdRequest(); 
         interstitial.loadAd(adRequest); 
        } 

        public void onAdLeftApplication() { 
         downloadImage(); 
         adRequest = getInterstitialAdRequest(); 
         interstitial.loadAd(adRequest); 
        } 
       }); 
      } 

     public AdRequest getInterstitialAdRequest() { 
      return new AdRequest.Builder().build(); 
     } 
    } 

Моя проблема заключается в том, что я продолжаю видеть то же объявление каждый раз, когда я нажимаю кнопку скачать. Есть ли какая-то проблема в моей логике? Или это то, что admob дает мне одно и то же объявление каждый раз, когда я прошу?

ответ

1

Я ничего не вижу в вашем коде, что заставит вас повторять одно и то же объявление. Вполне возможно, что где бы вы ни находились в мире, есть один конкретный рекламодатель, который скупает почти все требования, что может привести к появлению единого объявления. Обычно это временная проблема и со временем уйдет.

Я бы рекомендуют принимать в loadAd взывает из этих методов, хотя:

public void onAdFailedToLoad(int var1) { 
    downloadImage(); 
    adRequest = getInterstitialAdRequest(); 
    interstitial.loadAd(adRequest); 
} 

public void onAdLeftApplication() { 
    downloadImage(); 
    adRequest = getInterstitialAdRequest(); 
    interstitial.loadAd(adRequest); 
} 

onAdLeftApplication вызывается, когда пользователь нажимает на объявление и браузер (или другое приложение) открывается в ответ. Когда они вернутся, onAdClosed по-прежнему будет вызываться, так как ваш код стоит, вы получите два звонка на loadAd. Я удалю его в onAdLeftApplication и оставьте его в onAdClosed.

Повторный вызов loadAd второй раз, чтобы оправиться от неудавшегося объявления в onAdFailedToLoad - это хорошая идея, но у вас нет никакой логики прерывания цепи или увеличения времени, прежде чем повторять попытку в случае повторных сбоев. Это может привести к бесконечному циклу, если сетевое соединение пользователя опускается (сразу же появляется сообщение # 1, которое вызывает попытку и загрузку Ad # 2, что не срабатывает немедленно и вызывает объявление № 3 ...). Попробуйте использовать счетчик, чтобы отключить попытки после определенного номера, или используйте Handler, чтобы ввести постепенно увеличивающуюся задержку.

Кроме того, последнее замечание: если вы тестируете свое приложение, вы должны использовать test ads!