2016-11-06 66 views
1

我開發了一款Android應用,並且整合了Google的adMob插頁式廣告。問題是在模擬器上廣告成功顯示,但在我的設備上顯示不出來。我創建了AdMob上創建的廣告單元ID,並將應用鏈接到了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; 
       } 
      }); 

這是我的結果對我的三星設備:

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(); 

用於測試設備。

相關問題