【问题标题】:Google IMA iOS SDK `IMAAdsLoader -requestAdsWithRequest:` doesn't work on the 2nd timeGoogle IMA iOS SDK`IMAAdsLoader -requestAdsWithRequest:`第二次不起作用
【发布时间】:2017-04-28 06:12:20
【问题描述】:

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

【问题讨论】:

    标签: ios google-ima


    【解决方案1】:

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

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

    希望对你有帮助。

    【讨论】:

    • 谢谢。我只创建了一个IMAAdsLoader 对象。
    猜你喜欢
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2014-01-31
    • 2015-06-21
    相关资源
    最近更新 更多