Ios 间隙性iAd并非每次都出现

Ios 间隙性iAd并非每次都出现,ios,xcode,swift,iad,interstitial,Ios,Xcode,Swift,Iad,Interstitial,我正在我的iPhone应用程序中执行插入式广告。我调用相同的代码块: showInterstitialAds = true self.interstitialAd.delegate = self self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Automatic println(interstitialAd) requestingAd = true 然而,插播广告并不是每次都播放——可能每5或10次播

我正在我的iPhone应用程序中执行插入式广告。我调用相同的代码块:

showInterstitialAds = true
self.interstitialAd.delegate = self
self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Automatic
println(interstitialAd)
requestingAd = true
然而,插播广告并不是每次都播放——可能每5或10次播放一次。为什么会这样


此外,我如何检查间隙广告是否不会显示,以便我可以显示横幅广告?

iAd平台从广告清单中为应用程序提供广告。任何单个应用程序的可用清单取决于许多不同的因素,包括应用程序的类别、应用程序是否定期取消广告,价格和许多其他商业因素只有苹果知道。你的应用程序需要处理你没有收到广告的情况,因为这是正常情况。我的建议是,要么有一套自己的标准广告,例如推广自己应用程序的功能,要么利用另一个广告网络来填充iAd不为你服务的广告

下面是一个简单的示例,说明如何根据是否提供广告隐藏或显示广告:

-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
    adView.hidden = NO;
    NSLog(@"Has ad, showing ad");
}


-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
    adView.hidden = YES;
    NSLog(@"Has no ads, hidind ad");
}

希望这能有所帮助。

我知道这个问题大约有6岁,但我也有同样的问题。在《颤振》中对我起作用的是:

import 'package:firebase_admob/firebase_admob.dart';

InterstitialAd _interstitialAd;
bool _isInterstitialAdReady;

void prepAd(){
  initState();
  _loadInterstitialAd();
}

void runAd() {
  _interstitialAd.show();
}

void initState() {
  _isInterstitialAdReady = false;
  _interstitialAd = InterstitialAd(
    adUnitId: InterstitialAd.testAdUnitId,
    listener: _onInterstitialAdEvent,
  );
}


void _loadInterstitialAd() {
  _interstitialAd.load();
}
// TODO: Implement _onInterstitialAdEvent()
void _onInterstitialAdEvent(MobileAdEvent event) {
  switch (event) {
    case MobileAdEvent.loaded:
      _isInterstitialAdReady = true;
      break;
    case MobileAdEvent.failedToLoad:
      _isInterstitialAdReady = false;
      print('Failed to load an interstitial ad');
      break;
    case MobileAdEvent.closed:
      dispose();
      prepAd();
      break;
    default:
    // do nothing
  }
}

void dispose() {// TODO: Dispose InterstitialAd object
  _interstitialAd?.dispose();
}

我在开始时运行了一次prepAd,然后在需要时运行它。如果需要,您可以在runAd中检查_isInterstitialAdrady==true

如何检查我是否没有收到广告?