Межстраничное объявление Admob при запуске приложения

я хочу, чтобы межстраничная реклама admob появлялась, когда пользователь впервые открывает приложение или когда пользователь переходит к другому приложению (например, браузеру), а затем возвращается в мое приложение. Это мой текущий код для межстраничной рекламы, этот код полностью содержится внутри метода OnCreate.

// Create the interstitial.
        interstitial = new InterstitialAd(this);
        interstitial.setAdUnitId("ca-app-pub-XXXXXXXXXXXXXXXX");

        // Create ad request.
        AdRequest adRequest2 = new AdRequest.Builder().build();

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

        interstitial.setAdListener(new AdListener() {

            @Override
            public void onAdLoaded() {
                if (interstitial.isLoaded()) {
                    interstitial.show();
                }

            }

        });

Кажется, что это работает в большинстве ситуаций, но на некоторых устройствах это создаст цикл межстраничных объявлений, показывающих 2-3 секунды после того, как они были отклонены пользователем. одно из тех устройств, у которых есть петля, — это Galaxy Tab3. Кажется, я не могу найти правильный способ настроить свой код, чтобы такое поведение не происходило ни на одном устройстве.


person Zaid90    schedule 28.05.2014    source источник


Ответы (2)


Создайте логическую переменную, чтобы помочь с этим.

boolean ad_shown = false;

Когда вы делаете .show(), установите переменную в true.

Не забудьте поставить охрану на if

if (interstitial.isLoaded() && !ad_shown) {
person noidraug    schedule 28.05.2014

Используйте следующий код для отображения межстраничной рекламы при запуске приложения.

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("***********");

AdRequest adRequest = new AdRequest.Builder().build();
interstitial.loadAd(adRequest);
interstitial.setAdListener(new AdListener() {
    public void onAdLoaded() {
        displayInterstitial();
    }
});
}

public void displayInterstitial() {
if (interstitial.isLoaded()) {
    interstitial.show();
}
}
person arunkumar    schedule 28.06.2014