Я закончил с этой стратегией:
Прежде всего я создал 2 выхода из раскадровки, один для ADBannerView
и другой для GADBannerView
@IBOutlet weak var iadBannerView: ADBannerView!
@IBOutlet weak var adMobBannerView: GADBannerView!
В вашем viewDidLoad вы можете сделать это:
override func viewDidLoad() {
super.viewDidLoad()
self.iadBannerView.hidden = true
self.adMobBannerView.hidden = true
self.iadBannerView.delegate = self
NSTimer.scheduledTimerWithTimeInterval(35, target: self, selector: Selector("dispalyGoogleBanner"), userInfo: nil, repeats: false)
}
Так что здесь вы спрятали оба баннера (если вы предпочитаете, вы можете сделать это прямо в раскадровке). затем вы ждете 35 секунд, прежде чем показывать объявления Google. Поэтому, прежде чем показывать объявления Google, вы в основном хотите узнать, доступен ли iAD.
это метод, используемый для отображения баннера Google:
//MARK: - Google banner
func dispalyGoogleBanner() {
if !self.isDisplayIAD && !idDisplayADMob {
idDisplayADMob = true
self.adMobBannerView.adUnitID = kAdUnitID
self.adMobBannerView.hidden = false
self.adMobBannerView.rootViewController = self
self.adMobBannerView.loadRequest(GADRequest())
}
}
поэтому, прежде чем показывать баннер google, мы гарантируем, что баннер iAD и баннер adMob еще не отображаются. Если это так, то мы можем отправить запрос на отображение баннера ADMob.
Здесь моя реализация ADBannerViewDelegate
func bannerViewDidLoadAd(banner: ADBannerView!) {
self.iadBannerView = banner
self.iadBannerView.hidden = false
self.adMobBannerView.hidden = true
idDisplayADMob = false
self.view.layoutIfNeeded()
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError
error: NSError!) {
println(error)
isDisplayIAD = false
self.iadBannerView.hidden = true
self.dispalyGoogleBanner()
}
func bannerViewActionDidFinish(banner: ADBannerView!) {
self.iadBannerView = banner
self.iadBannerView.hidden = true
isDisplayIAD = false
dispalyGoogleBanner()
}
func bannerViewWillLoadAd(banner: ADBannerView!) {
//remove the google banner if displayed
isDisplayIAD = true
self.iadBannerView.hidden = false
self.adMobBannerView.hidden = true
idDisplayADMob = false
self.view.layoutIfNeeded()
}
что я в основном сделал с этими делегатами, это проверил, доступен ли баннер iAD, если это так, то я спрятал баннер adMob. Если iAD завершит показ объявлений, я позвоню на баннер ADMob, см. bannerViewActionDidFinish
Вы можете легко адаптировать эту логику к вашей реализации.