我想每隔五分钟在ios(swift)中加载facebook非页内广告

时间:2018-12-06 10:25:56

标签: ios swift facebook

我在viewdidload方法中添加了以下代码

self.interstitialAd = FBInterstitialAd.init(placementID: "")
self.interstitialAd.delegate = self;
interstitialAd.load()

和每五分钟的通话时间以加载广告

Timer.scheduledTimer(timeInterval: 300.0, target: self, selector: #selector(callInterstitialAdEveryFiveMinutes), userInfo: nil, repeats: true)
@objc func callInterstitialAdEveryFiveMinutes()  {
    interstitialAd.load()
}

,但每五分钟未展示一次广告,并显示错误消息 7000您的广告已经加载

预先感谢

2 个答案:

答案 0 :(得分:0)

根据文档,您应该首先关闭已加载的广告并请求一个新广告:

  

在屏幕上显示广告时,请勿在FBInterstitialAd上调用loadAd。如果您需要加载另一个FBInterstitialAd以供将来使用,则可以在用户关闭当前FBInterstitialAd后再进行加载,例如在interstitialAdDidClose回调中。

因此,在这种情况下,您需要等到用户关闭第一个广告:

func interstitialAdDidClose(_ interstitialAd: FBInterstitialAd?) {
    print("Interstitial had been closed")
    // Consider to add code here to resume your app's flow

   // .. Schedule the timer, or show another ad .. //

}

请阅读: Adding Interstitial Ad to your iOS app

或看到此问题InterstitialAd failed to load with error?

  

您收到的错误基本上是我们无法匹配Facebook个人资料来投放相关广告。

答案 1 :(得分:0)

在计时器中,放置此代码

func showInter() {
        if self.fullSscreenAd.isAdValid {
            self.fullSscreenAd.show(fromRootViewController: self)
        } else {
            print("Ad wasn't ready")
        }
    }

当第一个广告关闭时,加载插页式广告,以便为下一个广告做好加载准备。

func interstitialAdDidClose(_ interstitialAd: FBInterstitialAd) {
         self.loadinter() }

func loadinter() {
        fullSscreenAd = FBInterstitialAd(placementID: "your placement id")
        fullSscreenAd.delegate = self
        fullSscreenAd.load()
    }