Admob上的奖励视频仍有问题 - 错误代码3

时间:2017-03-13 14:42:10

标签: android admob

我仍然在Admob的奖励视频上遇到某种奇怪的问题。请问,有人可以帮助我吗?

这是我的代码,如果有人能找到错误或缺少的地方,我会永远感谢你。

的build.gradle

compile 'com.google.firebase:firebase-ads:10.2.0'

AndroidManifest

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

<activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />

MainActivity

private RewardedVideoAd rewardedVideo;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        MobileAds.initialize(this, APP_ID);

        rewardedVideo = MobileAds.getRewardedVideoAdInstance(this);
        rewardedVideo.setRewardedVideoAdListener(videosListener());
        loadRewardedvideo();
    }

public void loadRewardedvideo() {
        if (!rewardedVideo.isLoaded()) {
            rewardedVideo.loadAd(AD_ID, new AdRequest.Builder().build());
        }
    }

private RewardedVideoAdListener videosListener() {
        return new RewardedVideoAdListener() {
            @Override
            public void onRewardedVideoAdLoaded() {
                alert("Video Pronto");
                btnVideo.setEnabled(true);
            }

            @Override
            public void onRewardedVideoAdOpened() {

            }

            @Override
            public void onRewardedVideoStarted() {

            }

            @Override
            public void onRewardedVideoAdClosed() {
                alert("Video Assistido!");
                loadRewardedvideo();
            }

            @Override
            public void onRewarded(RewardItem rewardItem) {
                alert("Premio");
            }

            @Override
            public void onRewardedVideoAdLeftApplication() {

            }

            @Override
            public void onRewardedVideoAdFailedToLoad(int i) {
                alert("Falha ao carregar.");
            }
        };
    }

根据here中的@RedBrogdon,我现在不需要调解员才能显示这些奖励视频,对于像我这样开始的人来说真是太酷了,我遵循所有步骤,例如代码,还在我的admob页面上创建了一个项目,我获得了APP_ID和AD_ID,但是我的项目不起作用!当调用侦听器的onRewardedVideoAdFailedToLoad()时,它始终返回错误代码3(ERROR_CODE_NO_FILL)。

有人知道发生了什么事吗?

注意 - 我使用真实设备

修改

我正在阅读一些文章,说这个错误代码3是在代码没有任何错误的情况下,但不存在任何广告要显示,这就像没有广告想成为在应用程序中显示,对吧?

我的应用尚未发布,好的。但这可以在已发布的应用程序中发生吗?

1 个答案:

答案 0 :(得分:0)

有错误。    首先,您需要加载广告,然后检查广告是否已加载,如果其已加载显示广告。如果您希望从不同来源加载广告,您可以选择广告类型,您可以选择广告来展示奖励广告如此显示,以便您可以在这种情况下使用Mediation。您需要在不同的广告网络中拥有帐户才能通过Admob展示广告。

public void loadRewardedvideo() {
rewardedVideo.loadAd(AD_ID, new AdRequest.Builder().build());
    if (rewardedVideo.isLoaded()) {
       rewardedVideo.show();
    }
}