簡體   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