Andrew
Andrew

Reputation: 969

How do you preload banner iAds in Swift?

I just integrated iAds into my app and they work perfectly. The only problem is that there is a delay on the page before the ad shows up. I'd like to preload the ads as soon as the app is launched. I have one medium rectangle ad and one regular banner ad (on different views in the app).

Medium rectangle is loaded on viewDidLoad() of ReadingVC.swift like this:

var rectangleAdView = ADBannerView(adType: ADAdType.MediumRectangle)

// Show banner ad
rectangleAdView?.delegate = self

With the following functions:

func bannerViewDidLoadAd(banner: ADBannerView!) {
    println("bannerViewDidLoadAd - Ad shown on app")
    self.view.addSubview(banner)
    self.view.layoutIfNeeded()
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError
    error: NSError!) {
        banner.removeFromSuperview()
        self.view.layoutIfNeeded()
}

The regular banner is loaded on viewDidLoad() of LibraryVC.swift in the same fashion, just with ADAdType.Banner instead of ADAdType.MediumRectangle

How can this be done?

Upvotes: 0

Views: 156

Answers (1)

Zachary Espiritu
Zachary Espiritu

Reputation: 987

There will always be a bit of a delay because the application has to grab the ads from the iAd CDN. Now, if you have a view that shows before either ReadingVC and LibraryVC, you can always try to load the ads there beforehand. To do this, you'd probably need to create a separate singleton class to hold all of your iAd code, and then access that class from all of the places you need to display or try to preload an iAd.

Upvotes: 2

Related Questions