Admob插页式广告 - 无法呈现插页式广告。还没有准备好

时间:2014-04-16 02:21:18

标签: ios admob ads interstitial

此代码是否正确实施插页式广告?

enter image description here

因为当我启动它时,我得到了这个,

<Google> Cannot present interstitial.  It is not ready.

5 个答案:

答案 0 :(得分:22)

您需要等到广告成功加载,然后才会出现插页式广告。否则广告就不会出现了。

要执行此操作,请确认GADInterstitialDelegate协议,并将视图控制器设置为插页式广告_的代表。

interstitial_.delegate = self;

然后按如下方式实施interstitialDidReceiveAd

- (void)interstitialDidReceiveAd:(GADInterstitial *)ad
{
    [interstitial_ presentFromRootViewController:self];
}

如需更多参考,请查看Interstitials ads

答案 1 :(得分:2)

Swift 3.0

<{1>}或viewDidLoad()

中的

createAndLoadInterstitial()

然后实施

interstitial.delegate = self

答案 2 :(得分:1)

如果您想在下一页或当前页面上再次加载谷歌插页式广告,请使用以下代码..

//在视图上加载在下一页或当前页面视图controller.m

上添加以下行
self.interstitial = [self createAndLoadInterstitial];

//在您的下一页或当前页面视图controller.m

上创建以下方法
- (GADInterstitial *)createAndLoadInterstitial {
    GADInterstitial *interstitial = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"];
    interstitial.delegate = self;
    [interstitial loadRequest:[GADRequest request]];
    return interstitial;
}
- (void)interstitialDidReceiveAd:(GADInterstitial *)ad
{
    [self.interstitial presentFromRootViewController:self];
}
- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial 
{
//leave this method as empty    
}

现在您将能够收到展示广告

答案 3 :(得分:1)

我认为您不必使用argparse set_defaults on subcommands should override top level set_defaults方法。 admob文档不推荐这样做。也许您可以在interstitialDidReceiveAd

中使用DispatchQueue.main.async
viewDidLoad()

答案 4 :(得分:0)

Swift 5.0

viewDidLoad()

请确保为此设置视图控制器的委托

interstitial.delegate = self

然后在委托方法中,您可以实现以下

func interstitialDidReceiveAd(_ ad: GADInterstitial) {
    interstitial.present(fromRootViewController: self)
}