Обновление iAd после отключения сети - PullRequest
7 голосов
/ 02 декабря 2011

У меня есть iAd, который хорошо отображается при подключении к сети.На симуляторе iOS или тестировании на моем устройстве, если я открою свое приложение, откройте iAd, затем перейдите в настройки и включите режим полета, а затем вернитесь в приложение, баннер соскользнет с экрана.Отлично.Теперь, если я снова отключаю режим полета (сеть включена), iAd не появляется снова - даже после ожидания в течение 10-15 минут.

Итак, вот мои вопросы:

  1. Обновляется ли тестовая реклама iAd так же, как реальная iAd (каждую минуту или около того)?

  2. Есть ли способ заставить iAd обновить и запросить новое объявление при обнаружении сети?

Я просто не могу найти информацию оПоведение тестовых объявлений где угодно, и я не могу тестировать с реальными объявлениями, пока я не загружу приложение в App Store (верно?)

Вот мой код:

Где создается 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];
}

И методы делегата:

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

Вызовы метода делегата NSLog появляются только один раз - не каждую минуту, как я ожидал бы, если бы объявление обновлялось.

1 Ответ

2 голосов
/ 03 декабря 2011

1 - да, и, как и в случае с живой рекламой, бывают случаи, когда реклама вообще отсутствует, это могут быть часы. Я считаю, что цикл обновления составляет 3 минуты, но кажется, что яблоко может изменить его, как они будут 2 - вам не нужно, при правильной настройке это происходит автоматически. У меня есть приложение с рекламой, и оно работает правильно при переключении сети или использовании настройки самолета

Теперь, похоже, что-то в настройке самолета, см. Эту ветку: Загрузка iAds регулируется после повторного запуска приложения из фона (также происходит в iAdSuite) , но у меня нет окончательного ответ. Возможно, вы могли бы исследовать больше, изменив NSLog в didFail ... на NSLog (@ "% @", error), чтобы проверить, что именно он говорит. И действительно, нет способа протестировать настоящую рекламу, пока она не будет принята в магазине приложений.

...