广告 SDK 在没有应用程序 ID 的情况下初始化

Posted

技术标签:

【中文标题】广告 SDK 在没有应用程序 ID 的情况下初始化【英文标题】:Ads SDK was initialized without an application ID 【发布时间】:2020-02-12 19:08:43 【问题描述】:

由于未捕获的异常“GADInvalidInitializationException”而终止应用程序,原因:“Google 移动广告 SDK 在没有应用程序 ID 的情况下进行了初始化。 Google AdMob 发布商,请按照此处的说明:https://googlemobileadssdk.page.link/admob-ios-update-plist 使用有效的 App ID 设置 GADApplicationIdentifier。 Google Ad Manager 发布商,请按照此处的说明进行操作:https://googlemobileadssdk.page.link/ad-manager-ios-update-plist

【问题讨论】:

【参考方案1】:

您可以通过将上面链接的文档中的键值对添加到您的 Info.plist 文件来解决此问题。

打开您的 info.plist 文件并输入该行:

key = GADIsAdManagerApp

值 = 真

【讨论】:

这确实有效!我已经有了 GADApplicationIdentifier,但仍然有问题,添加 GADIsAdManagerApp 有效! 这不是解决这个问题的正确方法。 为我工作。谢谢! 也为我工作。所以,如果“这不是解决这个问题的正确方法”,请赐教。【参考方案2】:

更新,见官方链接:https://firebase.google.com/docs/admob/ios/quick-start#add-app-id-to-info-plist

您应该将以下对(键、值)添加到您的 Info.plist 文件中:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string><!-- add your AdMob app ID-->

我希望这会有所帮助。

【讨论】:

【参考方案3】:

在 iOS 上不要忘记这些steps。这为我解决了问题。

“从 Google 移动广告 SDK 版本 7.42.0 开始,此步骤是必需的。”

【讨论】:

【参考方案4】:

因此,就我而言,我有 2 个目标,1 个专业应用程序和另一个免费应用程序。我在左侧面板下的 Info.plist 文件中添加了 GADthingamabob 键。原来这个只更新 Pro 应用程序信息 plist。您需要做的是选择 Lite 目标,然后转到信息面板并在那里添加 GADthingamabob,然后它不再崩溃。我什至不需要添加 GADIsAdManagerApp 东西。

【讨论】:

同样的问题,谢谢! 我已将 info.plist 文件移动到新位置,并且没有更新构建设置下的地址,因此应用无法找到该文件以访问 info.plist 数据【参考方案5】:

请确保在 Info.plist 中添加实际的 admob 应用 ID,而不是广告 ID。如果在 Info.plist 中使用广告 id 作为应用 id,SDK 会崩溃。

【讨论】:

这是我犯的错误 - 谢谢!【参考方案6】:

就我而言,我拼错了 -ObjC。检查大写字母和连字符,以及你写它的位置。你应该把它写在:Other Linker Flags在你的项目的构建设置中

【讨论】:

这个技巧拯救了我的一天——我的头到处挠,不知道该放在哪里。感谢发帖【参考方案7】:

从 Google 移动广告 SDK 版本 7.42.0 开始需要执行此步骤。未能添加添加此 Info.plist 条目会导致崩溃并显示消息:Google 移动广告 SDK 初始化错误。

在您应用的 Info.plist 文件中,添加一个 GADApplicationIdentifier 键,其中包含您的 AdMob 应用 ID 的字符串值

    GADApplicationIdentifier 键,其中包含您的 AdMob 应用 ID (identified in the AdMob UI) 的字符串值。

    具有 Google 的 SKAdNetworkIdentifier 值为 cstr6suwn9.skadnetworkSKAdNetworkItems 键。

您可以通过编程方式进行此更改:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>
<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
  </array>

或者,在属性列表编辑器中编辑它:

要点:在实际应用中,请务必使用您的实际 AdMob 应用 ID,而不是上面列出的 ID。不过,如果您只是想在 Hello World 应用中试验 SDK,则可以使用上面显示的示例应用 ID。

【讨论】:

【参考方案8】:

正如谷歌在“手动下载”标签下的guide 中提到的那样:

您必须执行以下操作:

转到您的项目 XCode >Targets > Build settings > Other linker flags 并添加“-ObjC”,如指南所示:

想来大家都在尝试使用 CocoaPods 使用 Admob,倾向于跳转手动下载选项卡,但问题是“Other Linked Flags”相关的部分在最后一个,所以它必须是分开以使其作为完成指南的“待办事项”步骤可见。

享受;

【讨论】:

【参考方案9】:

这样你就可以使用了。它适用于 Google Mobile Ads SDK 8.1.0:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxYOUR_IDxxxxx</string>
<key>NSUserTrackingUsageDescription</key>
    <string>This identifier will be used to deliver personalized ads to you.</string>
    <key>SKAdNetworkItems</key>
      <array>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>cstr6suwn9.skadnetwork</string>
        </dict>
      </array>
        <key>GADIsAdManagerApp</key>
        <true/>

添加的所有广告网络:(https://developers.google.com/admob/ios/ios14)

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxYOUR_IDxxxxx</string>
<key>NSUserTrackingUsageDescription</key>
    <string>This identifier will be used to deliver personalized ads to you.</string>
    <key>SKAdNetworkItems</key>
<array>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>4fzdc2evr5.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>2fnua5tdw4.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>ydx93a7ass.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>5a6flpkh64.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>p78axxw29g.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>v72qych5uu.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>c6k4g5qg8m.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>s39g8k73mm.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>3qy4746246.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>3sh42y64q3.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>f38h382jlk.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>hs6bdukanm.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>prcb7njmu6.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>wzmmz9fp6w.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>yclnxrl5pm.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>4468km3ulz.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>t38b2kh725.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>7ug5zh24hu.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>9rd848q2bz.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>n6fk4nfna4.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>kbd757ywx3.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>9t245vhmpl.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>2u9pt9hc89.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>8s468mfl3y.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>av6w8kgt66.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>klf5c3l5u5.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>ppxm28t8ap.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>424m5254lk.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>uw77j35x4d.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>e5fvkxwrpn.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>zq492l623r.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>3qcr597p9d.skadnetwork</string>
    </dict>
</array>
        <key>GADIsAdManagerApp</key>
        <true/>

【讨论】:

【参考方案10】:

在 info.plist 上始终使用您的实际项目 id.(ca-app-pub-xxxxYOUR_IDxxxxxx)

如果你正在调试,那么在实例化的时候 GADBannerView,使用假人 adUnitID("ca-app-pub-3940256099942544/2934735716")

make sure you replace this dummy adUnitID by your actual project id.

更多详细信息,请访问:-google admob documentation

【讨论】:

以上是关于广告 SDK 在没有应用程序 ID 的情况下初始化的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何在没有第三方网络的情况下添加自己的广告(哪个 SDK?)?

使用 Facebook iOS SDK 发布安装 -> 找不到有效的归因 ID 或广告商 ID

如何在没有 SDK 或自定义应用程序 ID 的情况下创建 Facebook 分享按钮?

穿山甲广告SDK手动初始化解决方案

有没有办法在不将应用上传到 Play 管理中心的情况下使用真实的 unitID 测试 adMob 广告?

Google 移动广告 SDK 初始化不正确