我仍然在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是在代码没有任何错误的情况下,但不存在任何广告要显示,这就像没有广告想成为在应用程序中显示,对吧?
我的应用尚未发布,好的。但这可以在已发布的应用程序中发生吗?
答案 0 :(得分:0)
有错误。 首先,您需要加载广告,然后检查广告是否已加载,如果其已加载显示广告。如果您希望从不同来源加载广告,您可以选择广告类型,您可以选择广告来展示奖励广告如此显示,以便您可以在这种情况下使用Mediation。您需要在不同的广告网络中拥有帐户才能通过Admob展示广告。
public void loadRewardedvideo() {
rewardedVideo.loadAd(AD_ID, new AdRequest.Builder().build());
if (rewardedVideo.isLoaded()) {
rewardedVideo.show();
}
}