我实现了一个ADInterstitialAd,它在iphone上工作正常,但它在ipad上不起作用。这是我的代码:
func close(sender: UIButton) {
closeButton.removeFromSuperview()
interAdView.removeFromSuperview()
}
func loadAd() {
println("load ad")
interAd = ADInterstitialAd()
interAd.delegate = self
}
func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
println("ad did load")
interAdView = UIView()
interAdView.frame = CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height)
self.view?.addSubview(interAdView)
interAd.presentInView(interAdView)
UIViewController.prepareInterstitialAds()
interAdView.addSubview(closeButton)
}
func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
closeButton.removeFromSuperview()
interAdView.removeFromSuperview()
}
func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
println("failed to receive")
println(error.localizedDescription)
closeButton.removeFromSuperview()
interAdView.removeFromSuperview()
}
它打印'广告确实加载'但在ipad上它只显示关闭按钮而不是广告视图,它不会打印错误说明。我导入了iAd框架并在我的类中包含了ADInterstitialAdDelegate。
答案 0 :(得分:0)
presentInView
方法将返回一个布尔值,告诉您它是否显示正常。所以我首先要检查一下。
如果返回NO
,请检查您展示广告的视图实际上是您预期的尺寸。如果视图不够大,则广告不会出现。您可能在视图生命周期中过早地展示广告,并且视图的大小尚未适应屏幕?
其他一些说明:
您不需要UIViewController.prepareInterstitialAds()
来电,因为直接使用ADInterstitialAd
的人不会使用该方法。您只是准备广告,但创建了ADInterstitialAd
的实例。
ADInterstitialAd
对象是一个单独使用的对象,因此请确保每次都获得一个新对象。
同样UIViewController.prepareInterstitialAds()
是更简单的API的一部分,您不必自己管理ADInterstitialAd
。如果您没有任何特殊要求,您可能更愿意使用该API。