Mam iAd, który pokazuje się dobrze po podłączeniu do sieci. Na symulatorze iOS na moim urządzeniu, jeśli otworzę swoją aplikację, zobacz iAd, następnie przejdź do ustawień i włącz tryb samolotowy, i wróć do aplikacji, baner zsunie się z ekranu. Wspaniały. Teraz, gdy wyłączę tryb samolotowy (sieć jest włączona), iAd nie pojawia się ponownie - nawet po odczekaniu 10-15 minut.Odświeżanie iAd po odłączeniu sieci
Tak, oto moje pytania:
Czy iAd test Reklama odświeżyć sobie tak samo jak prawdziwy iAd będzie (co minutę lub tak)?
Czy istnieje sposób zmuszenia iAd do odświeżenia i żądania nowej reklamy po wykryciu sieci?
po prostu nie mogę znaleźć informacje na temat zachowania się reklam testowych w dowolnym miejscu, a ja nie mogę przetestować prawdziwych reklam do czasu mogę przesłać aplikację do App Store (prawda?)
Herezje Mój kod:
Jeżeli iAd jest tworzony:
- (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];
}
I delegata metody:
- (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;
}
}
Wywołanie metody NSLog
powoduje, że połączenia pojawiają się tylko raz - nie co minutę, tak jak oczekiwałbym, gdyby reklama została odświeżona.
Dzięki za sugestie. Rzeczą, która mnie zastanawia jest to, że uruchamiam aplikację (używając xCode) na moim iPhonie za pomocą interentowego połączenia i otrzymuję log "AdWin" co 60 sekund, zgodnie z oczekiwaniami. Jeśli uruchomię aplikację w ten sam sposób, z wyjątkiem włączonego trybu samolotowego, otrzymuję "AdLose" w dzienniku dokładnie jeden raz. Spodziewałbym się, że nie uda się co 60 sekund. Wystąpił błąd: 'Error Domain = ADErrorDomain Code = 1" Operacja nie mogła zostać zakończona. (ADErrorDomain error 1.) "' –
Utknąłem w tym momencie, kluczową rzeczą, którą wierzę, jest to, że otrzymujesz ADError, gdzie w moich testach otrzymuję błąd NSURL i najwyraźniej błąd NSURL jest dobrze obsługiwany. Sugerowałbym dodanie logiki takiej jak: gdy wystąpi błąd i ADErrorxxx zabije baner i zacznie go od nowa (tj. Release + realloc jak w viewDidLoad). – gregory
Zamierzam oznaczyć to jako zaakceptowaną odpowiedź, ponieważ było to najbardziej pomocne. Jestem zadowolony, że moje urządzenie będzie działało, ponieważ pobrałem przykładowy program Apple 'iAdSuite' i stwierdziłem, że dało ten sam błąd w tych samych warunkach. Dzięki –