我目前使用AdMob的GADInterstitial在我的iPhone應用程序,並希望藉此在iOS中的iAd的UIViewController中補充提供的插頁廣告的優勢7.的iAd和AdMob插頁集成在iPhone上
我的猜測是,蘋果的填充率不會很高,所以如果廣告不可用,我想回到Admob。不幸的是,iAd的API看起來非常不透明,而且我也沒有辦法確定廣告是否可用。
有沒有人成功地做過這件事,如果是的話,怎麼樣?
我目前使用AdMob的GADInterstitial在我的iPhone應用程序,並希望藉此在iOS中的iAd的UIViewController中補充提供的插頁廣告的優勢7.的iAd和AdMob插頁集成在iPhone上
我的猜測是,蘋果的填充率不會很高,所以如果廣告不可用,我想回到Admob。不幸的是,iAd的API看起來非常不透明,而且我也沒有辦法確定廣告是否可用。
有沒有人成功地做過這件事,如果是的話,怎麼樣?
我錯過了手動呈現方法,調用requestInterstitialAdPresentation,返回一個BOOL表示是否顯示廣告。理論上,我可以用這個來控制是否回到admob。我稍後會發表評論,看它是否有效。
編輯:它的工作!
事實證明,requestInterstitialAdPresentation確實適合回答true或false。然後唯一讓它感覺像其他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即可查看視圖控制器的層次結構,並在視圖控制器消失時將其刪除。
謝謝,但我正在尋找插頁式廣告。 –
我的不好。您是否看過插頁式代表? https://developer.apple.com/library/ios/documentation/iAd/Reference/ADInterstitialAdDelegate_Ref/Introduction/Introduction.html#//apple_ref/occ/intf/ADInterstitialAdDelegate – interrupt
看起來他們爲iPhone做了不同的事情。您不會創建AdInterstitialAd,而是向UIViewController添加方法。但我認爲我有一個解決方案,我在下面編輯我的答案。 –