ADInterstitialAd不适用于ipad swift

时间:2015-04-12 06:54:15

标签: ios iphone ipad swift iad

我实现了一个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。

1 个答案:

答案 0 :(得分:0)

presentInView方法将返回一个布尔值,告诉您它是否显示正常。所以我首先要检查一下。

如果返回NO,请检查您展示广告的视图实际上是您预期的尺寸。如果视图不够大,则广告不会出现。您可能在视图生命周期中过早地展示广告,并且视图的大小尚未适应屏幕?

其他一些说明:

您不需要UIViewController.prepareInterstitialAds()来电,因为直接使用ADInterstitialAd的人不会使用该方法。您只是准备广告,但创建了ADInterstitialAd的实例。

ADInterstitialAd对象是一个单独使用的对象,因此请确保每次都获得一个新对象。

同样UIViewController.prepareInterstitialAds()是更简单的API的一部分,您不必自己管理ADInterstitialAd。如果您没有任何特殊要求,您可能更愿意使用该API。