构建后 Admob 不会在真实设备上展示广告。 Expo React-native

Admob is not showing ads on real device after build. Expo React-native

Expo SDK 版本:36.0.0

平台(Android/iOS/web/all):Android

我使用 expo Admob 库在我的应用程序上实施 AdMob 横幅广告和插页式广告。当 运行 通过我的模拟器上的 expo cli 时,它工作得很好。当我使用真实的 adUnitID 时,它会显示真实的广告。但是,在构建 apk 文件并在真实设备上安装后,广告不再显示。

我的实现很简单:

<AdMobBanner
    bannerSize="mediumRectangle"
    adUnitID={'ca-app-pub-my-key/my-key'}
    onAdViewDidReceiveAd={() => adReceived('success')}
    onDidFailToReceiveAdWithError={() => adReceived('err')}
/>

adReceived(arg) - 它只是一个记录器,它保存结果,我是否成功请求 Google 广告服务器。 在真实设备上我有错误消息。所以,看起来应用程序没有向互联网发出请求的权限。

我的 app.json 中没有 permission 部分,此文件中没有任何其他特定设置。根据 Configuration with app.json 页面 - To use ALL permissions supported by Expo, do not specify the "permissions" key.

我在 Whosebug 和 expo-forum 上发现了很多相关主题。并且没有人提供任何可行的解决方案。

如果我需要提供一些额外的信息,请指明我需要添加的内容。 如果有解决方案,但我没有找到,请添加 link。 让我们帮助所有开发人员一劳永逸地解决这个问题。 谢谢!

根据this post,有六个原因。但可能是您没有更新 付款详细信息 或者您所在地区 速度较慢 fill-rate。较慢 fill-rate 意味着,针对这些市场(在您所在的地区或语言)的广告商较少。

我是如何解决这个问题的 首先 - 你可以添加一个带有 error

的参数
    onDidFailToReceiveAdWithError={(errorCode) => console.log(errorCode)}

其次 当我将我的应用程序添加到 Google Play 商店并从商店安装它时,我的应用程序开始正确显示广告