У меня возникли проблемы с интеграцией AdMob SDK в MoPub (в Fabric). Я установил MoPub через установщик ткани. Я использую iOS со Swift, XCode версии 7.3.1 (7D1014), базовый SDK iOS 9.3, цель развертывания проекта iOS 8.0.
Я могу отображать тестовые объявления MoPub в своем приложении, но получаю ошибки времени выполнения при отображении объявлений AdMob через MoPub.
Я не могу найти подробные инструкции по интеграции AdMob SDK при использовании установщика Fabric MoPub. Только инструкции по добавлению сторонних библиотек при использовании автономного SDK MoPub. Я хотел бы сохранить структуру Fabric MoPub.
После того, как у меня заработала тестовая реклама MoPub, я выполнил следующие шаги:
Я добавил в проект GoogleAdMobCustomEvent.framework, который находится в архиве mopub-ios-custom-events.zip (находится в https://dev.twitter.com/mopub/ios/mediation-fabric)
Я добавил в проект GoogleMobileAds.framework (последняя версия от Google: v7.8.1).
На панели инструментов MoPub я создал новый заказ с одной позицией и двумя рекламными блоками (баннер и таблица лидеров) с сетью AdMob.
Когда я запускаю проект, я получаю следующую ошибку:
2016-05-28 12:03:57.662 moPubTest[43756:2148130] MOPUB: Banner view (*adunit id*) loading ad with MoPub server URL: *MoPub server URL* 2016-05-28 12:04:00.909 moPubTest[43756:2148130] MOPUB: Could not find custom event class named MPGoogleAdMobBannerCustomEvent 2016-05-28 12:04:00.910 moPubTest[43756:2148130] MOPUB: Banner ad view is fetching ad network type: admob_native 2016-05-28 12:04:00.910 moPubTest[43756:2148130] MOPUB: Banner view (*adunit id*) loading ad with MoPub server URL: *MoPub server URL* 2016-05-28 12:04:00.954 moPubTest[43756:2148130] MOPUB: Banner ad view is fetching ad network type: clear 2016-05-28 12:04:00.954 moPubTest[43756:2148130] MOPUB: No ads found for ad unit: *adunit id* 2016-05-28 12:04:02.365 moPubTest[43756:2148130] MOPUB: Banner view (*adunit id*) failed. Error: Error Domain=com.mopub.iossdk Code=0 "The operation couldn’t be completed. (com.mopub.iossdk error 0.)"
Похоже, я пропустил шаг. Я предполагаю, что проблема заключается в интеграции MoPub, предоставленного GoogleAdMobCustomEvent.framework (который находится в Objective-C и содержит заголовок MPGoogleAdMobBannerCustomEvent) в мой проект Swift.
Я попытался добавить фреймворки в проект как путем перетаскивания, так и добавления файлов (выбрав опцию копирования файлов). Я также попытался добавить пути поиска фреймворка и заголовка, добавил файл заголовка моста, изменил пути внутри файлов заголовков фреймворка.
Во всем вышеперечисленном проект компилируется без ошибок, но я все равно получаю ошибку во время выполнения: Не удалось найти пользовательский класс событий с именем MPGoogleAdMobBannerCustomEvent
Любые идеи о том, что может быть не так?
Спасибо!
ОБНОВЛЕНИЕ: мне удалось заставить это работать, переключив фреймворки Fabric и MoPub для установки через CocoaPods (вместо использования приложения Fabric):
Установил Fabric и Mopub через CocoaPods https://fabric.io/kits/ios/mopub/install а>
Вместо добавления GoogleAdMobCustomEvent.framework я вручную добавил в проект следующие файлы Objective-C:
MPGoogleAdMobBannerCustomEvent.h
MPGoogleAdMobBannerCustomEvent.m
MPGoogleAdMobInterstitialCustomEvent.h
MPGoogleAdMobInterstitialCustomEvent.mЭти 4 файла можно найти в папке AdNetworkSupport репозитория ios mopub SDK git.
Создал заголовочный файл моста со следующим содержимым:
#import <mopub_ios_sdk/MoPub-Bridging-Header.h> #import <GoogleMobileAds/GoogleMobileAds.h>
Я добавил в проект GoogleMobileAds.framework (последняя версия от Google: v7.8.1).
Добавлен путь к местоположению GoogleMobileAds.framework/Headers в «Пути поиска» целей -> «Путь поиска фреймворка».
Теоретически вы также можете установить пользовательские события MoPub через CocoaPad, но на данный момент это невозможно из-за ошибки. (см. https://stackoverflow.com/a/36830967/6394927)
Я надеюсь, что это поможет кому-то еще в будущем.