I need some help regarding AdMob interstitial ad.
I want to preload the interstitial ad in one activity. this is straight forward.
// Create an ad.
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(AD_UNIT_ID);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(TEST_DEVICE_ID).build();
// Load the interstitial ad.
interstitialAd.loadAd(adRequest);
Now I want to send the interstitial Ad to another activity using intent. I don't know how to send it using
intent.putExtra("myAd", interstitialAd);
Thanks in advance.
Interstitial ads are not meant or built to be passed around like that using intents' extras.
It's better to
Example for 2nd case (semi pseudo code):
public class AdManager {
// Static fields are shared between all instances.
static InterstitialAd ad;
private Context ctx;
public AdManager(Context ctx) {
this.ctx = ctx;
createAd();
}
public void createAd() {
// Create an ad.
ad = new InterstitialAd(ctx);
ad.setAdUnitId(AD_UNIT_ID);
final AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(TEST_DEVICE_ID).build();
// Load the interstitial ad.
ad.loadAd(adRequest);
}
public InterstitialAd getAd() {
return ad;
}
}
Using
Activity A
AdManager adManager = new AdManager();
adManager.createAd();
Activity B
AdManager adManager = new AdManager();
InterstitialAd ad = adManager.getAd();
if (ad.isLoaded()) {
ad.show();
}