繁体   English   中英

iPhone上的iAd和Admob插页式整合

[英]iAd & Admob Interstitial Integration on iPhone

我目前正在我的iPhone应用程序中使用Admob GADInterstitial,并希望利用iOS 7中iAd UIViewController附加功能中提供的插页式广告。

我的猜测是Apple的填充率不会那么高,所以如果广告不可用,我想回到Admob。 不幸的是,iAd的API看起来非常不透明,我看不到确定广告是否可用的方法。

有没有人成功地做到了这一点,如果有的话,怎么样?

我错过了手动演示方法,调用requestInterstitialAdPresentation ,返回一个BOOL,说明是否会显示广告。 从理论上讲,我可以用它来控制是否回归到admob。 我稍后会发表评论是否有效。

编辑:它的工作原理!

事实证明,requestInterstitialAdPresentation适当地回答了真或假。 然后唯一让它感觉像其他API一样的东西是弄清楚广告VC什么时候被解雇。 如果广告已经启动,我通过在托管视图控制器的viewDidAppear:方法中做出响应来做到这一点。 我实际上将它封装在AdManager类中,并使用NSNotification来传递viewDidAppear:,因此能够非常干净地放入iAds。

您可以查看以下库,它将无缝集成iAd和Google广告。

https://github.com/larsacus/LARSAdController

我已经使用了几个月,很酷。

要在视图控制器中控制iAd,您可以设置一个委托来监听iAd状态:

@interface MyViewController : UIViewController <ADBannerViewDelegate>
...

@property (nonatomic, weak) IBOutlet ADBannerView* banner;

@end

然后在你的实现文件中:

@implementation MyViewController

- (void)viewDidLoad
{
   ...
   [_banner setHidden:YES];
   _banner.delegate = self;
} 

...

#pragma mark - ADBannerViewDelegate implementation

- (void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error
{
    // iAd is not available, so we are going to hide it to get rid of ugly white rectangle
    [_banner setHidden:YES];
    // Here you can add your logic to show your other ads
}

- (void)bannerViewDidLoadAd:(ADBannerView*)banner
{
    // iAd is available, lets show it
    [_banner setHidden:NO];
    // Here you can add your logic to hide your other ads
}

@end

此外,我通常只保留一个ADBannerView实例,将它放在我的App Delegate中,一旦某个视图控制器出现在屏幕上 - 我只需添加ADBannerView即可查看视图控制器的层次结构,并在视图控制器消失时将其删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM