2014-03-19 142 views
2

上下文: 使用最新的Google Play admob ... 我在一項活動中使用了adListener插頁式廣告。admob google play插頁式廣告 - 顯示廣告未加載時的內置活動

我在努力實現的目標: 當廣告無法加載(無論是因爲設備使用的是adblock,還是設備無法訪問網絡),我想要一個自定義活動啓動(我有設置看起來像一個自定義廣告)。

我目前使用什麼作爲代碼來實現:

interstitial.setAdListener(new AdListener() 
    { 
     @Override 
     public void onAdLoaded() 
     { 
      displayInterstitial(); 
      super.onAdLoaded(); 
     } 

     @Override 
     public void onAdFailedToLoad(int errorCode) 
     { 
      Intent intent = new Intent(getApplicationContext(), 
        FailToLoadActivity.class); 
      startActivity(intent); 
      super.onAdFailedToLoad(errorCode); 
     } 

    }); 

我也嘗試添加這些意向......行至displayInterstitial()方法:

public void displayInterstitial() 
{ 
    if (interstitial.isLoaded()) 
    { 

     interstitial.show(); 
    } 
    else 
    { 
     Intent intent = new Intent(getApplicationContext(), 
       FailToLoadActivity.class); 
     startActivity(intent); 
    } 
} 

現在,而不是我的自定義廣告在請求失敗時立即顯示,似乎在〜30秒後出現。它即使在活動被破壞時也會這樣做。

如何讓這個自定義廣告在請求第一次失敗後立即顯示,並且在活動被銷燬時根本沒有這樣做?

/e 我注意到了logcat中的一個條目:從現在開始安排廣告刷新60000ms,我想將這個更改爲5000ms將解決我的問題(再次,這是一個理論)......這是我可以更改?

此外,我希望保證當用戶退出該活動時,不會顯示任何廣告(我的自定義廣告或網絡廣告),以防止任何不受應用侵入的彈出窗口攻擊我的用戶)

+0

那麼onAdFailedToLoad方法不及時?這是你的問題? – Divers

+0

我甚至不確定使用onAdFailedToLoad()甚至是完成我想要的正確方法......我基本上希望任何無法與廣告服務器通信的設備立即顯示我的自定義活動廣告。/e它似乎與60000超時直接相關,因爲我的自定義廣告只會在此次刷新嘗試後出現。它甚至出現在我的活動被破壞之後(我不想永遠) – Werner

回答

2

擺脫您的AdListener。

從未想盡快展示插頁廣告,因爲它已經被儘快間質性無法送達收到,也沒有你的自定義一個。

請改爲在應用中的自然中斷點處調用#displayInterstitial。這將確保您展示插頁式廣告或展示您的自定義廣告。當你的Activity被銷燬時你不會顯示它。

您可以採取的另一種方法是設置內部廣告並將其設置爲中介流中的後備選項。但我從來沒有試圖做到這一點。除此之外,即使用戶離線時也希望這樣做,所以最好的方法是最好的。

2

基於威廉的建議:

注:我想要的間隙,當用戶在我的主菜單中點擊一個特定的按鈕(一個動態壁紙配置活動的)

1彈出 - 我創建併爲onCreate()中的插頁式廣告請求加載,並且未實例化AdListener。

2 - 改變displayInterstitial()到:

public void displayInterstitial() 
{ 
    if (interstitial.isLoaded()) 
    { 
     interstitial.show(); 
    } 
    else 
    { 
     Intent intent = new Intent(getApplicationContext(), 
       FailToLoadActivity.class); 
     startActivity(intent); 
    } 
} 

3 - 改變了我的onClick方法從直接啓動新活動:

public void onClickFX(View v) 
{ 
    displayInterstitial(); 
    boolFX = true; 
} 

4 - 推翻的onResume()如下:

@Override 
protected void onResume() 
{ 
    if (boolFX) 
    { 
     boolFX = false; 
     Intent intent = new Intent(getApplicationContext(), 
       SpecialEffects.class); 
     startActivity(intent); 
    } 
    super.onResume(); 
} 

這完美的作品!

所以,感謝威廉指着我在正確的方向!

相關問題