Google IMA iOS SDK `IMAAdsLoader -requestAdsWithRequest:` не работает во второй раз

Я использую GoogleAds-IMA-iOS-SDK (3.3.1) через Cocoapods для показа видеорекламы, 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+ раз, и есть один счастливый случай, когда это сработает для всех видео. Все тестирование проводится на устройстве iPad mini с iOS 9.3.5. Я не уверен, что случилось.


person Hlung    schedule 13.12.2016    source источник


Ответы (1)


Убедитесь, что в приложении есть только один экземпляр IMAAdsLoader. Взгляните на официальный документ: https://developers.google.com/interactive-media-ads/docs/sdks/ios/quickstart

Вы должны поддерживать только один экземпляр IMAAdsLoader на протяжении всего жизненного цикла вашего приложения. Чтобы сделать дополнительные запросы объявлений, создайте новый объект IMAAdsRequest, но повторно используйте тот же IMAAdsLoader. Для получения дополнительной информации см. наш FAQ.

Надеюсь, поможет.

person atulkhatri    schedule 13.12.2016
comment
Спасибо. Я создаю только один объект IMAAdsLoader. - person Hlung; 14.12.2016