2015-12-12 18 views
13

Otrzymuję komunikat didFailToReceiveAdWithError w konsoli podczas działania na symulatorze i urządzeniu.Banner iAd nie działa na iOS 9

Banery iAd są wyświetlane z powodzeniem podczas pracy w systemie iOS 8. Po uruchomieniu na iOS 9 banery iAd nie otrzymują reklamy.

.h

#import <iAd/iAd.h> 
@interface ViewController : UIViewController <ADBannerViewDelegate> 

@property (retain, nonatomic) IBOutlet ADBannerView *adBanner; 

.m

-(void)viewDidLoad { 
    self.adBanner = [[ADBannerView alloc]initWithFrame:CGRectMake(0,[UIScreen mainScreen].bounds.size.height-100, [UIScreen mainScreen].bounds.size.width, 50)]; 
    self.adBanner.delegate=self; 
    [self.adBanner setBackgroundColor:[UIColor clearColor]]; 
    [self.view addSubview:self.adBanner]; 
} 

-(void)bannerViewWillLoadAd:(ADBannerView *)banner { 
    NSLog(@"bannerViewWillLoadAd"); 
} 

-(void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    // Show the ad banner. 
    NSLog(@"bannerViewDidLoadAd"); 

    [UIView animateWithDuration:0.5 animations:^{ 
     self.adBanner.alpha = 1.0; 
    }]; 
} 

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    NSLog(@"didFailToReceiveAdWithError"); 

    // Hide the ad banner. 
    [UIView animateWithDuration:0.5 animations:^{ 
     self.adBanner.alpha = 0.0; 
    }]; 
}  

-(void)bannerViewActionDidFinish:(ADBannerView *)banner { 
    NSLog(@"Ad did finish"); 
} 

Kiedy działa na iOS 9, druków konsoli didFailToReceiveAdWithError za każdym razem.

+1

Skopiowałem twój kod do nowego projektu xcode 7 z iOS 9.1 Działa. –

+0

Na podstawie Twojego kodu, myślę, że IBOutlet jest konieczny, tylko deklaracja zmiennej w interfejsie. Nie jest konieczne rysowanie banera w Konstruktorze interfejsów. Ustawienie koloru tła reklamy jest niedozwolone. (Po prostu podążałem za annałem Daniela Storma, działa świetnie dla mnie.) – Vincent

Odpowiedz

1

Spróbuj dodać zabezpieczenia transportu aplikacji do pliku plist projektu. enter image description here

+0

Timir Baran Kundu i allready dodane w pliku .plist, ale nie działa. masz jakiś pomysł, więc proszę udostępnij. –

0

Znalazłem to here:

Sprawdzanie mój storyboard zauważyłem, że ograniczenie wysokości do 32 została ustalona na ADBannerView - 32 nie była ważna wysokość w tym kierunku. Usunięcie tego ograniczenia wysokości spowodowało usunięcie błędu "Zasoby reklamowe niedostępne" i działało pięknie od tego czasu.

Sprawdź, czy to działa.

Sprawdź również w numerze iAD Changelog, czy jest coś, o co musisz się martwić.

6

Nie mogę odtworzyć Twojego problemu. Sieć iAd może być niedostępna dla Twojego kraju podczas testowania, możesz znajdować się w kraju, w którym usługa iAd nie obsługuje, lub być może ustawiłeś współczynnik wypełniania testowania iAd na 0% na urządzeniu/symulatorze programistycznym. Wybierz Ustawienia> Deweloper> Szybkość wypełniania> i sprawdź, czy Współczynnik wypełnienia jest ustawiony na 100% na urządzeniu/symulatorze programistycznym.

Proponuję wydrukować numer error, który otrzymujesz pod numerem didFailToReceiveAdWithError, aby dowiedzieć się, dlaczego nie działa ADBannerView.

-(void)viewDidLoad { 
    // The ADBannerView will size itself based on the device it is being displayed on 
    // Only setting the position is sufficient 
    self.adBanner = [[ADBannerView alloc]initWithFrame:CGRectMake(0, [UIScreen mainScreen].bounds.size.height-100, 0, 0)]; 
    self.adBanner.delegate=self; 
    // Removed setBackgroundColor 
    // Set alpha to 0.0 initially 
    self.adBanner.alpha = 0.0; 
    [self.view addSubview:self.adBanner]; 
} 

-(void)bannerViewWillLoadAd:(ADBannerView *)banner { 
    NSLog(@"bannerViewWillLoadAd"); 
} 

-(void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    NSLog(@"bannerViewDidLoadAd"); 
    [UIView animateWithDuration:0.5 animations:^{ 
     self.adBanner.alpha = 1.0; 
    }]; 
} 

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    // Changed NSLog to print the error that is received 
    NSLog(@"didFailToReceiveAdWithError: %@", error); 
    [UIView animateWithDuration:0.5 animations:^{ 
     self.adBanner.alpha = 0.0; 
    }]; 
} 

-(void)bannerViewActionDidFinish:(ADBannerView *)banner{ 
    NSLog(@"bannerViewActionDidFinish"); 
} 

Jeśli nadal masz tej kwestii należy contact iAd bezpośrednio i aktualizować swoje pytanie na podstawie ich odpowiedzi, lub pisać odpowiedź, jeśli są w stanie rozwiązać go dla Ciebie.

+0

@deniel strom jej nie działa – sohil

+0

@ Ohh, w którym kraju jesteś? –

+0

@Deniel z Indii – sohil