iAd & Admob Interstitial Integration en iPhone

Actualmente estoy usando Admob GADInterstitial en mi aplicación de iPhone, y me gustaría aprovechar los intersticiales ofrecidos en las adiciones de iAd UIViewController en iOS 7.

Mi conjetura es que la tasa de relleno de Apple no será tan alta, así que me gustaría volver a Admob si un anuncio no está disponible. Desafortunadamente, la API para iAd parece realmente opaca, y no veo una manera de determinar si un anuncio está disponible.

¿Alguien ha hecho esto con éxito y, de ser así, cómo?

Me perdí que el enfoque de presentación manual, llamando a requestInterstitialAdPresentation , devuelve un BOOL que dice si se mostrará un anuncio. Teóricamente, puedo usar esto para controlar si debo retroceder a admob. Publicaré un comentario más adelante sobre si funcionó o no.

EDIT: ¡Funciona!

Resulta que requestInterstitialAdPresentation responde correctamente a true o false. Entonces, lo único que queda para que se sienta como las otras API es averiguar cuándo se descarta el anuncio VC. Hice esto respondiendo en el método viewDidAppear: método del controller de vista de alojamiento si se había lanzado un anuncio. De hecho, lo tengo encapsulado en una class de AdManager, y uso una NSNotification para comunicar viewDidAppear :, por lo que pude dejar caer iAds bastante limpio.

Puede consultar la siguiente biblioteca, que integrará sin problemas iAd y Google Ads.

https://github.com/larsacus/LARSAdController

Lo he estado usando durante unos meses y es genial.

Para controlar iAd en su controller de vista, puede configurar un delegado para que escuche los estados de iAd:

@interface MyViewController : UIViewController <ADBannerViewDelegate> ... @property (nonatomic, weak) IBOutlet ADBannerView* banner; @end 

luego en su file de implementación:

 @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 

También normalmente mantengo solo una instancia de ADBannerView, la tengo en mi Delegado de aplicaciones y una vez que aparece un controller de vista en una pantalla, simplemente agrego ese ADBannerView para ver la jerarquía del controller de vista y eliminarlo cuando desaparece el controller de vista.