Видеореклама перед роликом с помощью AVPlayerViewController

У меня возникла проблема с видеорекламой iAd перед роликом.

- (void)viewDidLoad {
    [super viewDidLoad];

    self.canDisplayBannerAds = YES;

    NSURL *url = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
    player = [[AVPlayerViewController alloc] init];
    player.showsPlaybackControls = YES;
    AVPlayer *playerP = [[AVPlayer alloc] initWithURL:url];

    player.player = playerP;
    player.delegate = self;
}

- (IBAction)buttonClick:(id)sender {
    [self presentViewController:player animated:YES completion:^{
        [player playPrerollAdWithCompletionHandler:^(NSError *error) {

            if (error != nil) {
                NSLog(@"Error Message: %@", error);
            }
        }];
        NSLog(@"Completion");
    }];
}

Я получаю следующую ошибку при запуске:

Домен ошибки = код ADErrorDomain = 0 "(null)"

Видеореклама iAd перед роликом не отображается. Я следовал этой документации: Монетизация приложений iOS с помощью iAd

Я также разрешил Arbitrary Loads в моем info.plist

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

person monteiro_luiz    schedule 14.11.2015    source источник
comment
iOS не поддерживает http!!! У вас должен быть https!!!! ИЛИ вам нужно разрешить http соединения!!!! Читайте об АТС!!   -  person Teja Nandamuri    schedule 14.11.2015
comment
Я разрешил подключение в info.plist <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/></dict>   -  person monteiro_luiz    schedule 14.11.2015
comment
@Mr.T Я почти уверен, что все серверы iAd используют https. У вас есть ссылка, которую вы могли бы предоставить, заявив об этом?   -  person Daniel Storm    schedule 15.11.2015


Ответы (1)


Вам нужно позвонить preparePrerollAds в свой viewDidLoad, чтобы загрузить рекламу, прежде чем пытаться ее представить.

[AVPlayerViewController preparePrerollAds];

Проверьте мой пример, используя MPMoviePlayerController здесь. Это тот же подход.

Кроме того, если вы тестируете устройство для разработки, перейдите в «Настройки»> «Разработчик»> «Скорость заполнения»> и убедитесь, что для него установлено значение 100%.

person Daniel Storm    schedule 15.11.2015
comment
Даниэль. Спасибо! Еще один вопрос. Как отключить элементы управления видео перед просмотром? Кнопка Готово например! - person monteiro_luiz; 17.11.2015
comment
@monteiro_luiz Я не уверен, что это возможно/разрешено Apple. Вам следует задать новый вопрос, касающийся удаления кнопки Готово. - person Daniel Storm; 17.11.2015