2016-10-18 58 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立即失敗,這會導致廣告2嘗試加載,這會立即失敗並導致廣告3 ...),這可能會導致無限循環。嘗試使用計數器在一定數量後切斷嘗試,或使用Handler來引入逐漸增加的延遲。

另外,最後一點:如果你正在測試你的應用,你應該使用test ads

相關問題