In the Google Mobile Ads SDK Android version 11.2.0 and iOS version 7.21.0, we
added multiple native ads, a new feature for AdMob Native Ads
Advanced . This feature lets you load up to five unique native ads with a
single request. If you're showing native ads in a scrolling feed, this will
allow you to get a batch of ads different from one another. It also means fewer
network calls, which improves latency.
If you're displaying multiple native ads in a feed and loading ads one by one,
converting to the new API should be fairly straightforward.
First, make a decision about how many ads you wish to fetch in one request. This
is a function of how frequently you display ads in your feed. If you request
five ads, AdMob will return the top five ads, ordered by eCPM value. If only
three ads are available for the ad unit, only three ads will be returned.
iOS Implementation
Before initializing your ad loader, you need to create an instance of GADMultipleAdsAdLoaderOptions
and set the numberOfAds
property. Then include this object in the array of options when calling
GADAdLoader
's initializer:
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
multipleAdsOptions.numberOfAds = 5
adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
adTypes: [GADAdLoaderAdType.nativeContent,
GADAdLoaderAdType.nativeAppInstall],
options: [multipleAdsOptions])
adLoader.delegate = self
adLoader.load(GADRequest())
}
When requesting multiple native ads, you will still get individual callbacks
when each ad is loaded. For example, for an app install ad you will have a
callback to -adLoader:didReceiveNativeAppInstallAd:
,
and for a content ad -adLoader:didReceiveNativeContentAd:
.
This way you don't need to change the way the ads are received and shown.
To determine when ads have finished loading, there are two new APIs available:
On the GADAdLoader
object, a new property, loading
,
has been added. It returns true
if a request is in progress, and
false
otherwise. You can check this property after each ad has
loaded to find out if loading ads has completed.
On the GADAdLoaderDelegate
,
the adLoaderDidFinishLoading:
method has been added. It's invoked when all ads for a request have been
returned.
Android Implementation
The Android implementation is similar to iOS. There's a new method on AdLoader
,
loadAds()
which accepts the number of ads to load. There's
also a new isLoading()
method that indicates whether a request is currently in progress.
For a detailed walkthrough of the implementations, see the AdMob Native Ads
Advanced implementation guides (iOS
| Android ).
If you have any questions about this feature in the Google Mobile Ads SDK,
please drop us a line at the developer
forum .
- Samuel Stow , Mobile Ads Developer Relations