2013-09-13 3 views
2

У меня есть стабильное приложение загрузки 15k в игровом магазине, которое хочет расширить монетизацию ... Я хочу добавить межстраничные объявления.Как кэшировать межстраничные объявления, чтобы показать их при выходе приложения?

У меня уже есть рекламные баннеры, которые работают довольно прилично ...

Проблемы у меня с внедренными объявлениями является:

Я хочу показать эти объявления, когда пользователь нажимает кнопку назад на главное меню, то есть когда приложение закрывается, я хочу показать полноэкранное объявление. (Интерстициальное или дом объявление, какие бы она называется - полноэкранные из них, о чем я говорю.)

https://developers.google.com/mobile-ads-sdk/docs/admob/advanced

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

Вот код:

import com.google.ads.*; 

public class BannerExample extends Activity implements AdListener { 

    private InterstitialAd interstitial; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Create the interstitial 
    interstitial = new InterstitialAd(this, MY_INTERSTITIAL_UNIT_ID); 

    // Create ad request 
    AdRequest adRequest = new AdRequest(); 

    // Begin loading your interstitial 
    interstitial.loadAd(adRequest); 

    // Set Ad Listener to use the callbacks below 
    interstitial.setAdListener(this); 
    } 

    @Override 
    public void onReceiveAd(Ad ad) { 
    Log.d("OK", "Received ad"); 
    if (ad == interstitial) { 
     interstitial.show(); 
    } 
    } 
} 

Единственное изменение, которое я сделал это, я попытался положить его в OnDestroy(). Но приложение закрывается до того, как объявление загружается и отображается, и закрывается или нажимается.

Как бы то ни было, появляется рекламное объявление. Если я просто скопирую вставку вышеуказанного кода в OnCreate из моего действия главного меню, объявление может или не может отображаться в этом действии. Он появляется позже, даже когда я перемещаюсь от этого экрана.

Опять же, настоящая проблема: я пытаюсь показать объявление между объявлениями, когда приложение закрывается. Поэтому мне нужно каким-то образом загрузить его, прежде чем пользователь попытается выйти. Мое приложение довольно светлое. Кроме того, это текстовое приложение, поэтому в меню, в котором я хочу показывать объявление (главное меню), может быть много чего и обратно. Поэтому при загрузке каждый раз при открытии активности могут возникнуть проблемы с производительностью.

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

Итак, как это сделать?

+0

Все в порядке! –

+0

Вы нашли решение этой проблемы? Был бы признателен, если бы вы могли поделиться кодом здесь. –

+0

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

ответ

4

Вы можете попробовать показывая интерстициальный только после того, как пользователь нажимает кнопку назад:

@Override 
    public void onBackPressed() { 
     if (interstitial != null && interstitial.isReady()) { 
      interstitial.show(); 
     } 
     super.onBackPressed(); 
    } 
0
@Override 
public void onBackPressed() { 
    Log.d(TAG, "onBackPressed Called"); 
     if (interstitial.isLoaded()) { 
     interstitial.show(); 
     } 

    finish(); 

} 
+2

Кодовые ответы не очень полезны, без комментариев. –

4

Вы не можете закончить деятельность после показа интерстициальных, поскольку он не будет отображаться.

Также не стоит ставить interstitial.show() в методе onDestroy().

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

public class MainActivity extends Activity { 

// AdMob full screen ad 
private InterstitialAd interstitial; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_layout); 

    // AdMob full screen ad 
    AdRequest adFullScreenRequest = new AdRequest.Builder().build(); 
    interstitial = new InterstitialAd(this); 
    interstitial.setAdUnitId("myAdUnitId"); 
    interstitial.loadAd(adFullScreenRequest); 
    interstitial.setAdListener(new AdListener() { 
     @Override 
     public void onAdClosed() { 
      super.onAdClosed(); 
      finish(); 
     } 

     @Override 
     public void onAdFailedToLoad(int errorCode) { 
      super.onAdFailedToLoad(errorCode); 
      finish(); 
     } 
    }); 
} 

/** 
* Invoke displayInterstitial() when you are ready to display an interstitial. 
*/ 
public void displayInterstitial() { 
    if (interstitial.isLoaded()) { 
     interstitial.show(); 
    } else { 
     finish(); 
    } 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch(keyCode){ 
     case KeyEvent.KEYCODE_BACK: 
      displayInterstitial(); 
      return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

}

Главное, чтобы установить AdListener для двух ситуаций:

  • пользователь закрыл объявление

  • Объявление не удалось загрузить

В таких ситуациях вы должны закрыть действие (и объявление) методом finish().

Другое дело в использовании finish(), если наша промежуточная загрузка еще не загружена. Если вы не будете использовать finish(), тогда backButton вообще не будет работать, пока не будет загружен интерстициальный. Требуется некоторое время для загрузки межстраничных (около нескольких секунд). Существуют и другие варианты решения этой проблемы, но вот мое решение, которое просто закрывает приложение, если межстраничный файл еще не загружен.

+0

Ваш код работает нормально, но в соответствии с правилами Admob Не покажут объявления перед выходом приложения !, Как это отличается от этого? Или же? –

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