gpt4 book ai didi

android - AdMob 加载多个奖励视频

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:07 25 4
gpt4 key购买 nike

我在 Admob 中设置了多个广告单元,每个都是奖励视频。我的问题是我会根据观看的视频获得不同的奖励,并且我只能加载一个视频 onCreate() 例如这只会加载 AD_UNIT_3 的视频:

mAd.loadAd("AD_UNIT_1", new AdRequest.Builder().build());
mAd.loadAd("AD_UNIT_2", new AdRequest.Builder().build());
mAd.loadAd("AD_UNIT_3", new AdRequest.Builder().build());

当调用 onRewarded() 时,如果我无法控制从哪个视频 (AD UNIT) 显示并因此有一个监听器,我应该如何让一个监听器来奖励该项目多个单元?

我现在有一个解决方案设置,可以从正确的广告单元加载正确的视频,方法是仅在我知道将要显示的视频时加载它。例如,当他们打开“硬币”页面时,我知道他们需要“硬币”视频,因此使用“硬币”的监听器来奖励正确的项目。

这个解决方案的最大问题是广告可能需要 10 秒才能加载,当然,许多用户会点击“硬币”页面并尝试在几秒钟内加载广告 - 我在下面添加了我当前的代码,但没有工作。

我知道我在想这个问题是因为没有其他人遇到这个问题 :) 我已经为此工作了很长时间,如果有任何见解,我将不胜感激。谢谢!

onCreate()

    mAd = MobileAds.getRewardedVideoAdInstance(this);

mAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
@Override
public void onRewarded(RewardItem rewardItem) {
switch(Constants.currentAd) {
case("BUST"):
Log.d("AD","BUST: onRewarded()");
reverseBust();
Constants.currentAd = "";
break;

case("SKIPTRAVEL"):
Log.d("AD","SKIPTRAVEL: onRewarded()");
skipTravel();
Constants.currentAd = "";
break;

case("REMOVEHEAT"):
Log.d("AD","REMOVEHEAT: onRewarded()");
removeHeat();
Constants.currentAd = "";
break;

case("SKIPUPGRADEDEALER"):
Log.d("AD","SKIPUPGRADEDEALER: onRewarded()");
skipUpgradeDealer();
Constants.currentAd = "";
break;

case("SKIPDEALER"):
Log.d("AD","SKIPDEALER: onRewarded()");
//skipDealer();
Constants.currentAd = "";
break;
}

}
}`

正在加载视频

public void loadRewardedVideos(String name) {
switch(name) {
case("BUST"):
Constants.currentAd="BUST";
mAd.loadAd("AD_UNIT_ID_1", new AdRequest.Builder().build());
break;
case("SKIPTRAVEL"):
Constants.currentAd="SKIPTRAVEL";
mAd.loadAd("AD_UNIT_ID_2", new AdRequest.Builder().build());
break;
case("REMOVEHEAT"):
Constants.currentAd="REMOVEHEAT";
mAd.loadAd("AD_UNIT_ID_3", new AdRequest.Builder().build());
break;
case("SKIPUPGRADEDEALER"):
Constants.currentAd="SKIPUPGRADEDEALER";
mAd.loadAd("AD_UNIT_ID_4", new AdRequest.Builder().build());
break;
case("SKIPDEALER"):
Constants.currentAd="SKIPDEALER";
mAd.loadAd("AD_UNIT_ID_5", new AdRequest.Builder().build());
break;
}

}

谢谢!

最佳答案

您的想法是错误的。 mAd 是实例化的,只能有一个。您只需要使用 mAd 的一个实例来处理功能和奖励...

关于android - AdMob 加载多个奖励视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39968622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com