iAd interstitial not consis

时间:2015-11-05 04:54:31

标签: ios swift iad interstitial

我发现Daniel Storm在另一个帖子中提供了这段代码。对不起,我不能在那里问我的问题,因为我还没有足够的声誉可以发表评论。每次单击与displayAd关联的按钮时,代码都应显示广告。但是,在模拟器和实际设备上进行测试时,广告仅在第一次单击按钮时显示。请帮忙......

var iAdInterstitial = ADInterstitialAd() // Our ad
var iAdInterstitialView = UIView() // View to present our ad in
var adLoaded = false // Bool to keep track if an ad is loaded or not

override func viewDidLoad() {
    super.viewDidLoad()
    setupAd()
}

@IBAction func displayAd(sender: AnyObject) {
    if (adLoaded) {
        // We have an ad that is loaded so lets present it
        self.view.addSubview(iAdInterstitialView)
        iAdInterstitial.presentInView(iAdInterstitialView)
    }
    else {
        // No ad has been loaded
        print("Ad not loaded")
    }

}

func setupAd() {
    // Set presentation to manual so we can choose when to present the interstitial
    // Setting this will also fetch an interstitial ad for us
    self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Manual
    iAdInterstitial.delegate = self // Set the delegate

    // Make our view the same size as the view we will be presenting in
    iAdInterstitialView.frame = self.view.bounds
}

func requestNewAd() {
    // This will fetch an ad for us
    ResizingTestViewController.prepareInterstitialAds()
    print("Requesting new ad")
}

@IBAction func presentAdButton(sender: AnyObject) {
    if (adLoaded) {
        // We have an ad that is loaded so lets present it
        self.view.addSubview(iAdInterstitialView)
        iAdInterstitial.presentInView(iAdInterstitialView)
    }
    else {
        // No ad has been loaded
        print("Ad not loaded")
    }
}

func interstitialAdDidUnload(interstitialAd: ADInterstitialAd!) {
    // Kinda works as expected
    // Sometimes is called prematurely
    // Sometimes takes minutes after ad is dismissed to be called
    print("interstitialAdDidUnload")

    // Get new ad
    adLoaded = false
    iAdInterstitialView.removeFromSuperview()
    requestNewAd()
}

func interstitialAd(interstitialAd: ADInterstitialAd!, didFailWithError error: NSError!) {
    // Failed to load ad so lets try again
    print("didFailWithError: \(error)")
    requestNewAd()
}

func interstitialAdWillLoad(interstitialAd: ADInterstitialAd!) {
    // There is an ad and it has begun to download
    print("interstitialAdWillLoad")
}

func interstitialAdDidLoad(interstitialAd: ADInterstitialAd!) {
    // We got an ad
    print("interstitialAdDidLoad")
    adLoaded = true
}

func interstitialAdActionShouldBegin(interstitialAd: ADInterstitialAd!, willLeaveApplication willLeave: Bool) -> Bool {
    print("interstitialAdActionShouldBegin")
    return true;
}

func interstitialAdActionDidFinish(interstitialAd: ADInterstitialAd!) {
    // Done with this ad. Lets get a new one
    print("interstitialAdActionDidFinish")
    iAdInterstitialView.removeFromSuperview()
    adLoaded = false
    requestNewAd()
}

0 个答案:

没有答案