Подтвердить что ты не робот

IAd баннер не работает на iOS 9

Я получаю сообщение didFailToReceiveAdWithError в консоли во время работы на симуляторе и устройстве.

Баннеры iAd отображаются успешно при запуске на iOS 8. При запуске на iOS 9 баннеры iAd не получают объявление.

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

При работе на iOS 9 консоль печатает didFailToReceiveAdWithError каждый раз.

4b9b3361

Ответ 1

Я не могу воссоздать вашу проблему. Возможно, сеть iAd была недоступна для вашей страны при тестировании, вы можете находиться в стране, где iAd не поддерживает, или может быть, что вы установили для iAd Testing Fill Rate значение 0% на вашем устройстве разработки/симуляторе. Перейдите в "Настройки" > "Разработчик" > "Уровень заполнения" > и отметьте, что значение Fill Rate установлено на 100% на вашем устройстве разработки/симуляторе.

Я предлагаю напечатать error, который вы получаете в didFailToReceiveAdWithError, чтобы узнать, почему сбой 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");
}

Если у вас все еще есть эта проблема, вы должны связаться с iAd напрямую и обновить свой вопрос на основе их ответа или опубликовать ответ, если они "может решить это для вас".

Ответ 2

Попробуйте добавить безопасность переноса приложений в файл проекта plist. введите описание изображения здесь

Ответ 3

Я нашел здесь здесь:

Проверяя свою раскадровку, я заметил, что для ADBannerView установлено ограничение высоты для 32 - 32 не было допустимой высоты в этой ориентации. Удаление этого ограничения высоты удалило ошибку "Ad инвентаризация недоступна", и с этого момента она отлично работала.

Проверьте, работает ли это для вас.

Также ознакомьтесь с iAD Changelog, чтобы узнать, есть ли что-нибудь, о чем вам может понадобиться беспокоиться.