使用 AVPlayerViewController 的前置视频广告

Pre-Roll Video Ad with 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");
    }];
}

当 运行 时出现以下错误:

Error Domain=ADErrorDomain Code=0 "(null)"

iAd Pre-Roll 视频广告未显示。我遵循了这个文档: Monetizing your iOS apps with iAd

我也允许 Arbitrary Loads 在我的 info.plist

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

您需要在 viewDidLoad 中调用 preparePrerollAds 来下载广告,然后再尝试展示它。

[AVPlayerViewController preparePrerollAds];

使用 MPMoviePlayerController here 检查我的示例。同样的方法。

此外,如果您在开发设备上进行测试,请转到“设置”>“开发人员”>“填充率”> 并确保将其设置为 100%。