【问题标题】:AdMob -Cannot find an ad network adapter with the name(s): com.google.DummyAdapterAdMob - 找不到具有以下名称的广告网络适配器:com.google.DummyAdapter
【发布时间】:2022-01-21 10:44:45
【问题描述】:
pod 'Google-Mobile-Ads-SDK'
FirebaseAnalytics/AdIdSupport (8.9.1)
Firebase (8.9.1):
Xcode -Version 12.4 (12D4e)
iPad Simulator -12.9 inch 3rd Generation

这个问题有一个Flutter线程here

我在 iPad 上旋转到横向时遇到横幅广告 testAdID 单元的问题。 例如,在纵向中,测试广告显示并且工作正常,但是一旦我将 iPad 旋转到横向,我就会得到

找不到名称为 com.google.DummyAdapter 的广告网络适配器。请记住链接所有必需的广告网络适配器和 SDK,并在构建目标的“其他链接器标志”设置中设置 -ObjC。

奇怪的是,一旦我旋转回纵向,广告就会出现。

这个过程是不间断的。广告始终以纵向显示,但没有横向显示,并出现上述相同的错误消息

我查看了Target > Build Settings > All > Other Linker Flags,它已经设置为Obj-C

代码:

// called in ViewDidLoad
func initializeAdMob() {
    
    let adMobKey = "ca-app-pub-3940256099942544/2934735716"
    
    bannerView.adUnitID = adMobKey
    bannerView.rootViewController = self
    bannerView.delegate = self
    
    let adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(frame.size.width)
    bannerView.adSize = adSize
    
    view.addSubview(bannerView)
    bannerView.heightAnchor.constraint(equalToConstant: 50).isActive = true
    bannerView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    bannerView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    bannerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -15).isActive = true

    bannerView.load(GADRequest())
}

【问题讨论】:

  • 不久前我遇到了同样的情况。它似乎只发生在测试环境中。我发布的应用程序没有任何问题。如果您在发布模式下运行它并使用实际 id 它应该可以工作。奇怪的是,如果我让它坐一会儿,虚拟适配器消息会经常出现,但如果你等待的时间足够长,它实际上可能会显示一个广告,然后你又开始收到虚拟消息。我认为这是一个 admob 服务器的事情,并且每隔一段时间你就会收到一个虚拟广告。尝试在代表的呈现方法中的 adSize 上使用 print,我的高度也为零。
  • @loremipsum 感谢您的帮助。给我几个小时,我会用真实的单元测试发布,看看会发生什么。如果它有效,我会回到这里让你知道。顺便说一句,我认为您应该将此作为答案而不是评论发布。如果它有效,我会接受它。 TTYL✌????

标签: ios swift ipad admob


【解决方案1】:

我使用 Ionic adMob 插件 @capacitor-community/admob 并且一直在获取此 com.google.DummyAdapter 奖励视频,直到我删除 isTesting=true, default =false 并从谷歌测试 adId 'ca-app-pub-3940256099942544/1712485313' 切换到真实的

RewardAdOptions{
 adId: 'real add id'
 //isTesting: true
} 

等待 AdMob.prepareRewardVideoAd(options);

【讨论】:

    【解决方案2】:

    这似乎只发生在测试环境中。

    我发布的应用没有任何问题。

    如果您在release 模式下运行它并使用实际的id 它应该可以工作。

    奇怪的是,如果我让它坐一会儿,虚拟适配器消息会经常出现(就像它要求一个新广告一样),如果你等待的时间足够长,它实际上可能会显示一个广告,然后你再次开始接收虚拟消息。

    我认为这是 Admob 服务器的问题,而且您经常会收到一个虚拟广告。

    另外,尝试在代表的bannerViewWillPresentScreen 中的adSize 上使用print,我也在那里得到height = 0。当我使用fluid 作为尺寸时。所以横幅在那里,但你看不到它,因为高度为零。

    【讨论】:

    • 你是对的,我只需要使用我真正的 AdUnitId 就可以了。我的Build Configuration 仍然在Debug 中也能做到这一点。 adSize 打印是一个很大的好处。由于某种原因,bannerViewWillPresentScreen 没有被调用,所以我将 print(bannerView.adSize) 添加到 bannerViewDidReceiveAdbannerViewDidRecordImpressionbannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error)。谢谢您的帮助!快乐编码!!! :)
    • @LanceSamaria 我很高兴它有所帮助。请记住不要将您的 id 保留在测试环境中。您的 admob 可能会因此被标记并暂停 google 希望您使用测试 id 进行测试
    • 是的,我只是尝试旋转 iPad 看看会发生什么。在您的回答奏效后,我将其切换回 testId
    猜你喜欢
    • 2018-10-22
    • 2021-08-25
    • 2017-05-28
    • 2023-03-18
    • 2013-10-23
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多