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;
}
}
謝謝!