1
我在Admob中设置了多个广告单元,每个广告单元都是奖励视频。我的问题是我回报取决于不同的项目上,其视频观看,我只能加载一个视频onCreate()
例如这仅加载视频AD_UNIT_3:AdMob加载多个奖励视频
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;
}
}
谢谢!