2013-09-30 20 views
5

Attualmente sto usando Admob GADInterstitial nel mio iPhone app, e vorrebbe approfittare delle interstiziali offerti nelle aggiunte iAd UIViewController in iOS 7.iAd & Admob interstiziale Integrazione su iPhone

La mia ipotesi è che Apple di il tasso di riempimento non sarà così elevato, quindi mi piacerebbe ricorrere a Admob se un annuncio non è disponibile. Sfortunatamente l'API per iAd sembra davvero opaca e non vedo un modo per determinare se un annuncio è disponibile.

Qualcuno ha fatto con successo questo, e se sì, come?

risposta

5

Ho mancato che l'approccio di presentazione manuale, chiamando requestInterstitialAdPresentation, restituisce un BOOL che indica se verrà visualizzato un annuncio. In teoria, posso usarlo per controllare se ricorrere all'admob. In seguito pubblicherò un commento se ha funzionato o meno.

EDIT: Funziona!

Si scopre che requestInterstitialAdPresentation risponde correttamente a true o false. Quindi l'unica cosa che rimane per farla sentire come le altre API è capire quando il VC dell'annuncio viene eliminato. Ho fatto ciò rispondendo viewDidAppear: metodo del controller di visualizzazione hosting se un annuncio era stato lanciato. In realtà l'ho incapsulato in una classe AdManager e uso un NSNotification per comunicare viewDidAppear: così è stato possibile inserire in iAds in modo abbastanza pulito.

0

Per controllare iAd nel vostro controller della vista è possibile impostare un delegato per ascoltare iAd afferma:

@interface MyViewController : UIViewController <ADBannerViewDelegate> 
... 

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

@end 

poi nel file di implementazione:

@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 

anche io di solito tenere solo un esempio di ADBannerView, averlo nel mio delegato dell'app e una volta che un controller di visualizzazione viene visualizzato su uno schermo, aggiungo semplicemente ADBannerView per visualizzare la gerarchia del controller di visualizzazione e rimuoverlo quando il controller di visualizzazione scompare.

+0

Grazie, ma sto cercando annunci interstitial. –

+0

Il mio male. Hai dato un'occhiata al delegato interstiziale? https://developer.apple.com/library/ios/documentation/iAd/Reference/ADInterstitialAdDelegate_Ref/Introduction/Introduction.html#//apple_ref/occ/intf/ADInterstitialAdDelegate – interrupt

+0

Sembra che facciano le cose in modo diverso per l'iPhone. Non si crea un AdInterstitialAd, ma hanno aggiunto metodi a UIViewController. Ma penso di avere una soluzione, sto modificando la mia risposta qui sotto. –

Problemi correlati