1

我通过 Cocoapods 使用 GoogleAds-IMA-iOS-SDK (3.3.1) 来展示视频广告,Xcode 8.0。这就是我设置 adsLoader 的方式。注意我有enableDebugMode = true. 这个 adsLoader 被存储起来以VKSharedAdManager.adsLoader供重复使用。

IMASettings *settings = [[IMASettings alloc] init];
settings.ppid = @"IMA_PPID_0";
settings.enableDebugMode = true;
settings.language = kLanguageCodeEnglish;
self.adsLoader = [[IMAAdsLoader alloc] initWithSettings:settings];

然后我用那个加载器发出请求。

IMAAdDisplayContainer *displayContainer = [[IMAAdDisplayContainer alloc] initWithAdContainer:self.adRequest.adContainer companionSlots:nil];
    self.request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl adDisplayContainer:displayContainer contentPlayhead:VKSharedAdManager.contentPlayhead userContext:nil];
    VKSharedAdManager.adsLoader.delegate = self;
    DDLogVerbose(@"%@: requesting %@", self, adTagUrl);
    [VKSharedAdManager.adsLoader requestAdsWithRequest:self.request];

第一个广告效果很好,IMAAdsLoaderDelegate方法被称为很好。IMA 加载程序调试日志如下。(还有更多,但这只是开始......)

2016-12-13 15:35:14.769 MyApp[5835:1419742] Core: (INFO) ima.loader.AdsLoaderWrapper: Requesting ads using new ads loader.
2016-12-13 15:35:14.963 MyApp[5835:1419742] Core: (INFO) ima.loader.AdsLoaderWrapper: requestAds, processing external request.
2016-12-13 15:35:14.964 MyApp[5835:1419742] Core: (INFO) ima.loader.SequentialAdsLoader: Enqueued new request.
2016-12-13 15:35:14.965 MyApp[5835:1419742] Core: (INFO) ima.loader.SequentialAdsLoader: Starting request from queue.
2016-12-13 15:35:15.257 MyApp[5835:1419742] Core: (INFO) ima.loader.AdSourceFetcher: Creating PlaylistSource.
2016-12-13 15:35:15.271 MyApp[5835:1419742] Core: (INFO) ima.loader.AdsLoaderWrapper: dispatchPlaylist_
...
...

接下来,我关闭该视频,然后播放另一个视频。 问题:现在日志只显示了这一点,没有任何反应。

2016-12-13 15:37:59.266 MyApp[5835:1419742] Core: (INFO) ima.loader.AdsLoaderWrapper: Requesting ads using new ads loader.

然后在根本没有日志之后的所有下一个视频。如果我重新启动应用程序,则会发生同样的事情。只有第一个广告有效。我已经尝试了 10 多次,幸运的是它适用于所有视频。所有测试均在装有 iOS 9.3.5 的 iPad mini 设备上完成。我不确定出了什么问题。

4

1 回答 1

0

IMAAdsLoader确保整个应用程序中只有一个实例。看看官方文档: https ://developers.google.com/interactive-media-ads/docs/sdks/ios/quickstart

在应用的整个生命周期中,您应该只维护一个 IMAAdsLoader 实例。要发出额外的广告请求,请创建一个新的 IMAAdsRequest 对象,但重复使用相同的 IMAAdsLoader。有关更多信息,请参阅我们的常见问题解答。

希望能帮助到你。

于 2016-12-13T09:17:48.783 回答