android - AdMob RewardedVideoAd.loadAd 始终返回 "failed to load ads, error code: 0"

标签 android firebase admob

我正在使用 API 级别为 24 的 firebase-ads:9.2.0。

通过将 compile(name:'unity-ads', ext:'aar') 添加到我的 build.gradle 来导入 unity-ads aar 模块。

如果我选择直接使用 UnityAds API,一切都会顺利。

但是当我尝试像这样将 unity-ads 与 AdMob 集成时:

    mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance( this );

    mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewardedVideoAdLoaded() {
            logger.debug("onRewardedVideoAdLoaded");
        }

        @Override
        public void onRewardedVideoAdOpened() {
            logger.debug("onRewardedVideoAdOpened");
        }

        @Override
        public void onRewardedVideoStarted() {
            logger.debug("onRewardedVideoStarted");
        }

        @Override
        public void onRewardedVideoAdClosed() {
            logger.debug("onRewardedVideoAdClosed");
        }

        @Override
        public void onRewarded(RewardItem rewardItem) {
            logger.debug("onRewarded");
        }

        @Override
        public void onRewardedVideoAdLeftApplication() {
            logger.debug("onRewardedVideoAdLeftApplication");
        }

        @Override
        public void onRewardedVideoAdFailedToLoad(int i) {
            Toast.makeText( 
                getApplicationContext(), 
                "onRewardedVideoAdFailedToLoad", 
                Toast.LENGTH_SHORT ).show();
        }
    });

    AdRequest adRewardRequest = new AdRequest.Builder()
        .addTestDevice("E921B48960E16DA3ABD13C4AFB7052A4")
        .build();

    mRewardedVideoAd.loadAd( 
        getResources().getString(R.string.reward_ad_unit_id), 
        adRewardRequest );

它总是返回

There was a problem getting an ad response. ErrorCode: 0
Failed to load ad: 0.

我做错了什么吗?

或者我只是错过了一些步骤?

这是我的 AdMob 页面截图:

AdMob page

最佳答案

好的,我找到了解决方案。

第一件事是我没有在我的项目中包含适配器。

我必须在这里下载适配器: Third-party network adapters

并将其放入libs文件夹中。 这些适配器不包含在 SDK 中(如果您从 github 下载)。

其次,我必须从我的代码中删除这一行。

.addTestDevice("E921B48960E16DA3ABD13C4AFB7052A4")

似乎如果 AdMob 将此设备视为测试设备,则不会下载任何视频广告(至少在我的情况下)。

如果我选择使用 AVD,也会发生同样的事情,它们会强制在这些模拟器上展示测试广告。

所以我改用 Genymotion,删除 addTestDevice() 然后它就可以工作了。

关于android - AdMob RewardedVideoAd.loadAd 始终返回 "failed to load ads, error code: 0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38181365/

相关文章:

ios - iOS 应用中的定向广告

admob - GoogleMobileAds.framework : bundle format unrecognized, 无效或不合适

java - 如何将shapedrawable的边框和填充颜色设置为不同的颜色

android - 在 jpg 图像 android 上绘制文本

android - 实现特殊 UI 元素列表的最佳方式?

android - 无法解析亚马逊分析主机

java - Android Studio Firebase 查询。我只想显示具有相同uid的学生和 child

Swift ,隐藏/删除窗口( View ?)

android - 查询添加文档但未在控制台上添加,也未调用监听器

android - Admob Interstitial 广告(全屏)不会显示