找不到名为MPGoogleAdMobBannerCustomEvent

时间:2016-05-28 16:45:11

标签: xcode swift admob mopub twitter-fabric

我无法将AdMob SDK集成到MoPub(在Fabric中)。我通过结构安装程序安装了MoPub。我正在使用iOS与Swift,XCode版本7.3.1(7D1014),基础SDK iOS 9.3,项目部署目标iOS 8.0。

我可以在我的应用中显示MoPub测试广告,但在通过MoPub显示AdMob广告时出现运行时错误。

在使用Fabric MoPub安装程序时,我找不到有关如何集成AdMob SDK的详细说明。仅使用独立MoPub SDK添加第三方库的说明。我想保留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.)"
    
  5. 看起来我错过了一步。我猜这个问题是在整合MoPub时将GoogleAdMobCustomEvent.framework(在Objective-C中,并包含MPGoogleAdMobBannerCustomEvent标题)集成到我的Swift项目中。

    我已经尝试通过拖动和添加文件(选择复制文件选项)将框架添加到项目中。我还尝试添加框架和标头搜索路径,添加了一个桥接头文件,更改了框架头文件中的路径。

    在上述所有项目中,项目编译没有错误,但我仍然在运行时收到错误:找不到名为MPGoogleAdMobBannerCustomEvent的自定义事件类

    关于什么可能出错的任何想法?

    谢谢!

    更新: 通过切换要通过CocoaPods安装的Fabric和MoPub框架(而不是使用Fabric应用程序),我能够实现这一点:

    1. 通过CocoaPods安装Fabric和Mopub https://fabric.io/kits/ios/mopub/install

    2. 我没有添加GoogleAdMobCustomEvent.framework,而是手动将以下Objective-C文件添加到项目中:

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

      这4个文件可以在ios mopub SDK git repo的AdNetworkSupport文件夹中找到

    3. 创建了一个包含以下内容的桥接头文件:

      #import <mopub_ios_sdk/MoPub-Bridging-Header.h>
      #import <GoogleMobileAds/GoogleMobileAds.h>
      
    4. 我将GoogleMobileAds.framework(Google的最新版本:v7.8.1)添加到项目中。

    5. 在目标“搜索路径”中添加了GoogleMobileAds.framework / Headers位置的路径 - &gt; “框架搜索路径”

    6. 理论上你也可以通过CocoaPads安装MoPub的自定义事件,但目前因为一个bug而无法实现。 (见https://stackoverflow.com/a/36830967/6394927

      我希望将来可以帮助别人。

1 个答案:

答案 0 :(得分:0)

我知道这是一个非常老的问题,但是我现在处于这种情况。 我与Cocoapods进行了整合,但仍然遇到了这个问题。

您要做的事情(在moPub文档中很难找到)是将您正在使用的广告介体添加到Podfile中。您可以在这里https://developers.mopub.com/publishers/mediation/integrate/

找到它

就我而言,我必须添加AdMob,因此只需将以下内容添加到Podfile中即可使其工作:

pod 'mopub-ios-sdk'
pod 'MoPub-AdMob-Adapters', '7.57.0.0'