2013-01-03 6 views
5

Sto usando AdMob come backup per iAd, ma sto avendo problemi a trovare fuori se AdMob cu .. Con iAd ho potuto verificare con isBannerLoaded o qualcosa del genere, ma non con AdMob .. Comunque, ho ottenuto tutto funziona ora, tranne quando non c'è connessione a Internet! Quando iAd non riesce a caricare un annuncio e chiama didFailToReceiveAdWithError, quindi avvio il AdMob. Durante il test, l'errore che sto utilizzando è "nessuna connessione Internet", ma AdMob non chiama il proprio didFailToReceiveAdWithError. Sembra che nessuna connessione Internet non sia un errore per AdMob (GADBannerView*)Come posso sapere se AdMob ha caricato un annuncio?

Come posso sapere se GADBannerView ha esito negativo?

EDIT

Va bene, ecco è fondamentalmente codice che ho:

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self initiAdBanner]; 
    [self initAdMobBanner]; 
} 

-(void)initAdMobBanner{}//initiates variable adMobBannerView(GADBannerView) 
-(void)initiAdBanner{}//initiates variable iAdBannerView(ADBannerView) 

-(void)hideBanner:(UIView*)banner{} //hides banner if visible 
-(void)showBanner:(UIView*)banner{} //shows banner if hidden 

//blah blah 

-(void)adView:(GADBannerView*)banner didFailToReceiveAdWithError:(GADRequestError*)error 
{ 
    //Never gets called, should be called when both iAd and AdMob fails. 
    NSLog(@"AdMobBanner failed."); 
    [self hideBanner:banner]; 
} 

-(void)bannerView:(ADBannerView*)banner didFailToReceiveAdWithError:(NSError*)error 
{ 
    //If iAd fails, due to no internet connection or whatever, then it calls this. 
    [self adMobRequest]; 
    [self hideBanner:iAdBannerView]; 
    [self showBanner:adMobBannerView]; 
} 

Quando iAd non riesce e chiede (ADBannerView*)didFailToReceiveAdWithError, avvio l'AdMob, ma quando non c'è nessun collegamento internet, l'AdMob vinto chiamare lo (GADBannerView*)didFailToReceiveAdWithError. Perché?

risposta

4

AdMob invierà didFailToReceiveAdWithError se non è disponibile una connessione Internet. Assicurarsi che si registra il delegato per ascoltare i metodi di callback:

[bannerView_ setDelegate:self];

Si dovrebbe anche considerare AdMob Mediation invece di cercare di rotolare la vostra soluzione di mediazione. Puoi semplicemente creare un posizionamento di mediazione nell'interfaccia utente di AdMob, aggiungere lo iAd adapter al tuo progetto e richiedere un annuncio con l'ID del posizionamento di mediazione e l'annuncio mostrato attraverso reti diverse verrà fatto per te.

+0

Grazie, stavo seguendo una guida prima, e non hanno mai messo in 'setDelegate: self', odio che non ho pensato di cercarlo .. Non l'ho fatto perché tutto il resto ha funzionato perfettamente .. strano. Grazie! – Sti