Как внедрить рекламные вставки, чтобы они показывались через X раз, когда игрок переключался на экраны перехода на другой экран? - PullRequest
1 голос
/ 23 апреля 2020

Итак, я новичок в AdMob и пытаюсь выяснить, как показывать промежуточную рекламу после того, как игрок умрет и перейдет в игру за экран X количество раз. У меня настроен AdMob в классе AndroidLauncher, однако в других моих классах нет переменных объявления. Вот как выглядит мой класс AndroidLauncher. Если это помогает, моя игра настроена на игровые состояния, 0 перед началом игры, 1 в данный момент играет, а 2 и 3 оба состояния игры закончены, которые отправляют игрока в игру через экран.

            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {}
        });
        ad = new InterstitialAd(this);
        ad.setAdUnitId("ca-app-pub-2188258702xxxxxxxxxxx");
        ad.loadAd(new AdRequest.Builder().build());

        ad.setAdListener(new AdListener(){

            @Override
            public void onAdLoaded() {
                // Code to be executed when an ad finishes loading.

                if (ad.isLoaded()) {
                    ad.show();
                }

            }
            @Override
            public void onAdFailedToLoad(int errorCode) {
                // Code to be executed when an ad request fails.

            }

            @Override
            public void onAdOpened() {

            }

            @Override
            public void onAdLeftApplication() {
                // Code to be executed when the user has left the app.

            }

            @Override
            public void onAdClosed() {


            }






        }); ```

1 Ответ

0 голосов
/ 27 апреля 2020

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

1) Создать интерфейс для Adservice

public interface AdService {

void showOrLoadInterstital();
void showBanner();
void hideBanner();
void showRewardedAd();
boolean hasVideoLoaded();
boolean checkAdWatched();

}

2) Реализовать этот интерфейс из вашего класса AndroidLauncher и иметь конструктор базового класса игры с этим рекламным интерфейсом. Из вашего класса androidlauncher, обратитесь к этому конструктору. Также сгенерируйте интерфейсные классы. (Я публикую только соответствующие части).

public class AndroidLauncher extends AndroidApplication implements AdService {

@Override
protected void onCreate(Bundle savedInstanceState) {
// rest of the code here

setUpInterstitial();

View gameView = initializeForView(new MainGameClass(this), config);
}

private void setUpInterstitial() {
    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId(AD_UNIT_ID_INTERSTITIAL);
    loadIntersitialAd();
}

private void loadIntersitialAd() {
    AdRequest.Builder builder = new AdRequest.Builder();
    AdRequest interstitialRequest = builder.build();
    interstitialAd.loadAd(interstitialRequest);
}

@Override
public void showOrLoadInterstital() {
    runOnUiThread(new Runnable() {
        public void run() {
            interstitialAd.setAdListener(new AdListener() {
                @Override
                public void onAdClosed() {
                    loadIntersitialAd();
                }

                @Override
                public void onAdFailedToLoad(int i) {
                    loadIntersitialAd();
                }

            });
            interstitialAd.show();
            adWatched=false;
        }
    });

}

}

3) Позвоните по объявлению, когда хотите его показать.

            if (MainGameClass.adService != null) {
                RunnableAction playWooshAction = Actions.run(new Runnable() {
                    @Override
                    public void run() {
                        MainGameClass.adService.showOrLoadInterstital();
                    }
                });
                playWooshAction.run();
            }

4) Для показа объявления через X промежуток времени, просто установите таймер.

...