[英]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,您可以設置一個委托來監聽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.