2015-12-12 31 views
13

Viene visualizzato il messaggio didFailToReceiveAdWithError nella console durante l'esecuzione sul simulatore e sul dispositivo.Banner iAd non funziona su iOS 9

i banner I vengono visualizzati correttamente quando si esegue su iOS 8. Quando si esegue su iOS 9, i banner iAd non riescono a ricevere un annuncio.

.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"); 
} 

Durante l'esecuzione su iOS 9, le stampe console didFailToReceiveAdWithError ogni volta.

+1

Ho copiato il codice in un nuovo progetto xcode 7 con iOS 9.1. Funziona. –

+0

In base al codice, penso che IBOutlet sia necessario, solo la dichiarazione di variabile nell'interfaccia. Non è necessario disegnare il banner in Interface Builder. L'impostazione del backgroundcolor dell'annuncio non è consentita. (Ho appena seguito l'anser di Daniel Storm, funziona perfettamente per me.) – Vincent

risposta

1

Provare ad aggiungere sicurezza di trasporto dell'app nel file plist del progetto. enter image description here

+0

Timir Baran Kundu ho già aggiunto il file .plist ma non funziona. hai qualche idea quindi per favore condividi. –

0

ho trovato questo here:

Controllo il mio storyboard ho notato, che un vincolo di altezza per 32 è stato fissato per l'ADBannerView - il 32 non era un'altezza valida in questa posizione. La rimozione del limite di altezza ha rimosso l'errore "Spazio pubblicitario non disponibile" e ha funzionato magnificamente da quel momento in poi.

Verificare se questo funziona per voi.

Controllare anche con lo iAD Changelog per vedere se c'è qualcosa di cui potersi preoccupare.

6

Non riesco a ricreare il problema. La rete iAd potrebbe essere inattiva per il tuo Paese durante il test, potresti trovarti in un Paese in cui iAd non supporta, oppure potrebbe essere che hai impostato il Tasso di riempimento test iAd allo 0% sul tuo dispositivo/simulatore di sviluppo. Vai su Impostazioni> Sviluppatore> Tasso di riempimento> e controlla che Tasso di riempimento sia impostato al 100% sul dispositivo/simulatore di sviluppo.

Io suggerirei la stampa del error si sta ricevendo in didFailToReceiveAdWithError in modo da poter scoprire perché il ADBannerView sta fallendo.

-(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"); 
} 

Se hai ancora questo problema si dovrebbe contact iAd direttamente e aggiornare la tua domanda in base al loro risposta, oppure inviare una risposta se sono in grado di risolvere per voi.

+0

@deniel strom suo non funziona – sohil

+0

@sohil quale paese sei? –

+0

@Deniel dall'india – sohil

Problemi correlati