我正在iPhone应用中实施插页式广告。我调用相同的代码块:
showInterstitialAds = true
self.interstitialAd.delegate = self
self.interstitialPresentationPolicy = ADInterstitialPresentationPolicy.Automatic
println(interstitialAd)
requestingAd = true
但是,每次都不会显示插页式广告 - 也许每5或10次播放一次。为什么是这样?
另外,如何检查广告插播广告是否会显示,以便我可以展示横幅广告?
答案 0 :(得分:0)
iAd平台通过广告广告向应用提供广告。任何单个应用程序可用的库存取决于许多不同因素,包括您的应用程序类别,您的应用程序是否定期取消广告,定价以及许多其他只有Apple知道的商业因素。您的应用需要处理您没有收到广告的情况 - 因为这是正常情况。我的建议是要么拥有一套标准的自己广告,例如宣传自己应用的功能,要么在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");
}
希望这有帮助。
答案 1 :(得分:0)
我知道这个问题大约是6岁,但是我遇到了同样的问题。对我有用的东西(在Flutter中):
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()。您可以根据需要在runAd()中检查_isInterstitialAdReady == true