我用这种方式构建了我的应用程序,一切似乎都在更或多少地工作。听说iAd的填充率极低后,我决定这将是最好的方法,但我尝试搜索并没有找到其他人像这样在他们的应用程序中实现广告的记录。这是否违反了TOS?
或者您可以查看这篇详细的教程,逐步了解如何补充iAd与adMob广告:
http://mobile.tutsplus.com/tutorials/iphone/supplementing-iad-placement-with-admob/
我有iAds和Admob。
我强烈建议先加载iAd,如果没有广告则使用admob。如果您获得广告,则iAd的ECPM要比admob高得多。请记住,iAd每30秒刷新一次,因此将多次调用未获取广告的方法。
我的应用程序已经获得批准,您可以获取它,章鱼神谕。 http://kurl.ws/Ay
ADBannerView
的,另一个是用于 GADBannerView
的。@IBOutlet weak var iadBannerView: ADBannerView!
@IBOutlet weak var adMobBannerView: GADBannerView!
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)
}
所以在这里,您隐藏了两个横幅(如果您愿意,可以直接在Storyboard中完成)。然后您等待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
您可以轻松地将此逻辑适应于您的实现。