iAd интерстициальный, не состоящий

Я нашел этот код, предоставленный Дэниелом Штормом, в другой ветке. Извините, я не смог задать свой вопрос там, потому что у меня пока недостаточно репутации, чтобы комментировать. Код должен отображать рекламу каждый раз, когда нажимается кнопка, связанная с 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 ответов

Другие вопросы по тегам