Is there a way to preload AdMob ads on Android?

2020-04-08 00:53发布

问题:

I have a AdMob ad in a "dialog" (a View I created to look like one, because ads will not fit in a normal Dialog) in my app. Usually it takes about 4 or 5 seconds before the ad loads, and since it's in a "dialog," the user will most likely click a button (closing the dialog) before the ad loads.
Is there a way I can preload the ads so that they will show as soon as their containing View is created?

回答1:

I have done it by use one adview multiple time and in multiple activity

It just load once, and you can use it where ever you want,

It will refresh on its given refresh rate.

demo is given here

you may need some modification but actual idea is implemented.



回答2:

So your problem is the empty banner space? if is that so, an alternative solution to avoid empty banner space as below;

  • put AdMob banner inside FrameLayout together with placeholder view (e.g. image etc)
  • implement "public void onReceiveAd(Ad ad)" to swap views as u know the banner arrived.

on the other hand,
(my humble opinion) having banner inside Dialog, by nature, is not optimum place.
I would suggest to place the banner on main Activity views only, this is where user spends most of their time.



回答3:

First in another persistent context, you create AdView of admob and load ad with AdRequest.

And then, add the AdView in 'onCreateView' of DialogFragment. Make sure the AdView is removed from previous parent view.

if (adView.getParent() != null) {
    ((ViewGroup) adView.getParent()).removeView(adView);
}

// Add the banner ad to the ad view.
adCardView.addView(adView);