2013-01-03 10 views
5

Używam AdMob jako backup dla iAd, ale mam problem ze znalezieniem się, czy AdMob dostarcza .. Z iAd mogę sprawdzić z isBannerLoaded czy coś, ale nie z AdMob .. W każdym razie, mam wszystko działa teraz, chyba że nie ma połączenia z Internetem! Gdy iAd nie może załadować reklamy i wywołuje didFailToReceiveAdWithError, wówczas zainicjuję numer AdMob. Podczas testowania tego, przyczyną błędu jest "brak połączenia z internetem", ale AdMob nie nazywa tego własnym didFailToReceiveAdWithError. Wygląda na to, że żadne połączenie internetowe nie jest błędem dla AdMob (GADBannerView*)Jak mogę się dowiedzieć, czy AdMob załadował reklamę?

Jak sprawdzić, czy GADBannerView nie działa?

EDIT

Ok, więc tutaj w zasadzie kod mam:

-(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]; 
} 

Kiedy iAd zawiedzie i wzywa do (ADBannerView*)didFailToReceiveAdWithError, zacznę AdMob, ale kiedy tam nie ma internet, AdMob wygrał Zadzwoń pod numer (GADBannerView*)didFailToReceiveAdWithError. Dlaczego?

Odpowiedz

4

AdMob wywoła didFailToReceiveAdWithError, jeśli nie ma połączenia z internetem. Upewnij się zarejestrować delegata do nasłuchiwania metod zwrotnych:

[bannerView_ setDelegate:self];

Należy również rozważyć AdMob Mediation zamiast próbować toczyć własne rozwiązanie mediacji. Możesz po prostu utworzyć miejsce docelowe zapośredniczenia w interfejsie użytkownika AdMob, dodać do projektu projekt iAd adapter i poprosić o reklamę z identyfikatorem miejsca docelowego pośrednictwa, a reklama wyświetlana w różnych sieciach zostanie wykonana za Ciebie.

+0

Dziękuję, wcześniej podążałem za przewodnikiem i nigdy nie dodawali "setDelegate: self", nienawidzę tego, że nie myślałem o szukaniu tego ... Nie zrobiłem, bo wszystko inne działało idealnie .. dziwne. Dzięki! – Sti