Предварителна видеореклама с AVPlayerViewController

Имам проблем с видеорекламата Pre-Roll на 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 Code=0 "(null)"

Видеорекламата iAd Pre-Roll не се показва. Проследих тази документация: Монетизиране на вашите 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 връзки!!!! Прочетете за ATS!!   -  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 тук. Това е същият подход.

Освен това, ако тествате на устройство за разработка, отидете на Settings>Developer>Fill Rate> и се уверете, че е зададено на 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