如何判断AdMob是否加载了广告?

Sti*_*Sti 5 error-handling cocoa-touch admob ios iad

我正在使用它AdMob作为备份iAd,但是我很难找到是否AdMob能够提供.. iAd我可以查看isBannerLoaded或者其他什么,但不能用AdMob.. 但无论如何,我现在一切正常,除非没有互联网连接!如果iAd无法加载广告和电话didFailToReceiveAdWithError,那么我会启动广告AdMob.在测试时,我使用的错误原因是"没有互联网连接",但AdMob不会调用它自己的didFailToReceiveAdWithError.似乎没有互联网连接不是AdMob(GADBannerView*)的错误

如何判断GADBannerView是否失败?

编辑

好的,所以这里基本上是我的代码:

-(void)viewDidLoad
{
    [super viewDidLoad];
    [self initiAdBanner];
    [self initAdMobBanner];
}

-(void)initAdMobBanner{}//initiates variable adMobBannerView(GADBannerView)
-(void)initiAdBanner{}//initiates variable iAdBannerView(ADBannerView)

-(void)hideBanner:(UIView*)banner{} //hides banner if visible
-(void)showBanner:(UIView*)banner{} //shows banner if hidden

//blah blah

-(void)adView:(GADBannerView*)banner didFailToReceiveAdWithError:(GADRequestError*)error
{
    //Never gets called, should be called when both iAd and AdMob fails.
    NSLog(@"AdMobBanner failed.");
    [self hideBanner:banner];
}

-(void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error
{
    //If iAd fails, due to no internet connection or whatever, then it calls this.
    [self adMobRequest];
    [self hideBanner:iAdBannerView];
    [self showBanner:adMobBannerView];
} 
Run Code Online (Sandbox Code Playgroud)

当iAd失败并要求时(ADBannerView*)didFailToReceiveAdWithError,我启动了AdMob,但当没有互联网连接时,AdMob将不会调用(GADBannerView*)didFailToReceiveAdWithError.为什么?

Eri*_*lag 5

didFailToReceiveAdWithError如果没有互联网连接,AdMob 将调用。确保注册委托来侦听回调方法:

[bannerView_ setDelegate:self];

您还应该考虑AdMob 中介,而不是尝试推出自己的中介解决方案。您只需在 AdMob UI 中创建中介展示位置,将iAd 适配器添加到您的项目中,并使用中介展示位置 ID 请求广告,即可为您完成通过不同网络展示的广告。