我通过 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 设备上完成。我不确定出了什么问题。