2011-12-02 13 views
7

Tengo un iAd que aparece bien cuando está conectado a la red. En el simulador de iOS o las pruebas en mi dispositivo, si abro mi aplicación, veo el iAd, luego voy a la configuración y activo el modo avión, y regreso a la aplicación, el banner se desliza fuera de la pantalla. Estupendo. Ahora, si apago el modo avión (la red está encendida), el iAd no reaparece, incluso después de esperar entre 10 y 15 minutos.iAd actualización después de la desconexión de red

lo tanto, aquí están mis preguntas:

  1. la Prueba de Publicidad iAd ¿Se refrescar sí mismo como un verdadero iAd haría (cada minuto o así)?

  2. ¿Hay alguna manera de forzar que el iAd se actualice y solicite un nuevo anuncio cuando se detecta la red?

No puedo encontrar información sobre el comportamiento de los anuncios de prueba en cualquier lugar, y no puedo probar con anuncios reales hasta que subo la aplicación a la App Store (¿verdad?)

Heres mi código:

Cuando se crea el iAd:

- (void)viewDidLoad 
{ 
    adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 410, 320, 50)]; 
    adView.frame = CGRectOffset(adView.frame, 0, 50); 
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
    [self.view addSubview:adView]; 
    adView.delegate=self; 
    self.bannerIsVisible=NO; 
    [super viewDidLoad]; 
} 

y el delegado métodos:

- (void)bannerViewDidLoadAd:(ADBannerView *)banner 
{ 
    NSLog(@"AdWin"); 
    if (!self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; 
     banner.frame = CGRectOffset(banner.frame, 0, -50); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = YES; 
    } 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    NSLog(@"AdLose"); 
    if (self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
     banner.frame = CGRectOffset(banner.frame, 0, 50); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = NO; 
    } 
} 

Las llamadas al método delegado NSLog solo aparecen una vez, no cada minuto, como era de esperar si el anuncio se actualizara.

Respuesta

2

1- sí y me gusta anuncios en vivo hay algunas veces sin anuncio en absoluto, puede ser horas. Creo que el ciclo de actualización es de 3 minutos, pero parece que Apple puede cambiarlo ya que lo harán 2- No debería necesitarlo, cuando se configura correctamente esto sucede automáticamente. Tengo una aplicación con anuncios y se comporta correctamente al cambiar de red o utilizar la configuración de avión

Ahora, parece haber algo sobre la configuración del avión, mira este hilo: iAds Loading Throttled After Re-Launching App From Background (Also Happens In iAdSuite), pero no tengo la respuesta final. Tal vez podría explorar más cambiando su NSLog en didFail ... a NSLog (@ "% @", error) para verificar lo que dice exactamente. Ah, y de hecho, no hay forma de probar con anuncios reales hasta que sea aceptado en la tienda de aplicaciones.

+0

Gracias por las sugerencias. Lo que me desconcierta es que empiezo la aplicación (usando xCode) en mi iPhone con una conexión interent y obtengo mi registro "AdWin" cada 60 segundos, como era de esperar. Si inicio la aplicación de la misma manera, excepto con el Modo Avión activado, obtengo el "AdLose" en mi registro exactamente una vez. Hubiera esperado que fallara cada 60 segundos. El error que da es: 'Error Domain = ADErrorDomain Code = 1" La operación no pudo completarse. (ADErrorDomain error 1.) "' –

+0

También estoy atascado en ese momento, la clave que creo que recibes un ADError donde en mis pruebas recibo un error NSURL y aparentemente el error NSURL es manejado correctamente. Yo sugeriría que se incluyera una lógica como: cuando el error es y ADErrorxxx mata el banner y comienza todo de nuevo (es decir, release + realloc como en viewDidLoad). – gregory

+0

Voy a marcar esto como la respuesta aceptada, porque fue la más útil. Estoy satisfecho de que el mío funcionará porque descargué el programa de ejemplo de Apple 'iAdSuite', y encontré que daba el mismo error en las mismas condiciones. Gracias –

Cuestiones relacionadas