Я не уверен, что это лучший способ, но я могу объяснить свой способ сделать это. Это может помочь.
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 промежуток времени, просто установите таймер.