I have two kind of ads : banner and interstitial. The first one works very well, but when I want to display an interstitial ad when I pressed the back button (but we don\'t
Do not place interstitial ads on app load and when exiting apps as interstitials should only be placed in between pages of app content.
My code use to add InterstitialAdd:
public static void addInterstitialAd(final Activity context, final int id) {
final InterstitialAd interstitial = new InterstitialAd(context);
interstitial.setAdUnitId(context.getString(id));
interstitial.loadAd(new AdRequest.Builder().build());
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Call displayInterstitial() function
if (interstitial.isLoaded()) {
interstitial.show();
}
}
});
}
You can try it if not work, please separate to new thread:
new Thread(new Runnable() {
public void run() {
final InterstitialAd interstitial = new InterstitialAd(context);
interstitial.setAdUnitId(context.getString(id));
interstitial.loadAd(new AdRequest.Builder().build());
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Call displayInterstitial() function
if (interstitial.isLoaded()) {
runOnUiThread(new Runnable() {
public void run() {
interstitial.show();
}
});
}
}
});
}
}).start();
If your want after click back -> Admod-> close admod -> apclose:
@Override
public void onBackPressed() {
final InterstitialAd interstitial = new InterstitialAd(getApplicationContext());
interstitial.setAdUnitId(getApplicationContext().getString(id));
interstitial.loadAd(new AdRequest.Builder().build());
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Call displayInterstitial() function
if (interstitial.isLoaded()) {
interstitial.show();
}
}
@Override
public void onAdClosed(){
finish();
}
@Override
public void onAdFailedToLoad(int errorCode){
//you can implement continue load or finish
}
});
}