Не удалось найти пользовательский класс событий с именем MPGoogleAdMobBannerCustomEvent.

У меня возникли проблемы с интеграцией 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, я выполнил следующие шаги:

  1. Я добавил в проект GoogleAdMobCustomEvent.framework, который находится в архиве mopub-ios-custom-events.zip (находится в https://dev.twitter.com/mopub/ios/mediation-fabric)

  2. Я добавил в проект GoogleMobileAds.framework (последняя версия от Google: v7.8.1).

  3. На панели инструментов MoPub я создал новый заказ с одной позицией и двумя рекламными блоками (баннер и таблица лидеров) с сетью AdMob.

  4. Когда я запускаю проект, я получаю следующую ошибку:

    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):

  1. Установил Fabric и Mopub через CocoaPods https://fabric.io/kits/ios/mopub/install

  2. Вместо добавления GoogleAdMobCustomEvent.framework я вручную добавил в проект следующие файлы Objective-C:

    MPGoogleAdMobBannerCustomEvent.h
    MPGoogleAdMobBannerCustomEvent.m
    MPGoogleAdMobInterstitialCustomEvent.h
    MPGoogleAdMobInterstitialCustomEvent.m

    Эти 4 файла можно найти в папке AdNetworkSupport репозитория ios mopub SDK git.

  3. Создал заголовочный файл моста со следующим содержимым:

    #import <mopub_ios_sdk/MoPub-Bridging-Header.h>
    #import <GoogleMobileAds/GoogleMobileAds.h>
    
  4. Я добавил в проект GoogleMobileAds.framework (последняя версия от Google: v7.8.1).

  5. Добавлен путь к местоположению GoogleMobileAds.framework/Headers в «Пути поиска» целей -> «Путь поиска фреймворка».

Теоретически вы также можете установить пользовательские события MoPub через CocoaPad, но на данный момент это невозможно из-за ошибки. (см. https://stackoverflow.com/a/36830967/6394927)

Я надеюсь, что это поможет кому-то еще в будущем.


person chrifs    schedule 28.05.2016    source источник


Ответы (1)


Я знаю, что это очень старый вопрос, но я был в такой ситуации прямо сейчас. Я сделал интеграцию с Cocoapods, и все же у меня возникла эта проблема.

Что вам нужно сделать (что практически невозможно найти в документации moPub), так это добавить в подфайл рекламные посредники, с которыми вы работаете. Вы можете найти его здесь https://developers.mopub.com/publishers/mediation/integrate/

В моем случае мне пришлось добавить AdMob, поэтому мне нужно было всего лишь добавить в подфайл следующее, чтобы он заработал:

pod 'mopub-ios-sdk'
pod 'MoPub-AdMob-Adapters', '7.57.0.0'
person Joan Cardona    schedule 02.04.2020