问题描述
rewardedvideoad已弃用。什么是新的替代方法?
void loadAds(){
rewardedvideoad mrewardedvideoad;
mrewardedvideoad.loadAd(rewarded_id,new AdRequest.Builder().build());
mrewardedvideoad = MobileAds.getrewardedvideoadInstance(this);
mrewardedvideoad.setrewardedvideoadListener(new rewardedvideoadListener() {
@Override
public void onrewardedvideoadLoaded() {
AppUtils.showLog("REWARDED","onrewardedvideoadLoaded");
}
.....
.....
}
解决方法
这是实施新的RewardVideoAds的新方法。通过此official website找到。
加载广告
import com.google.android.gms.ads.rewarded.RewardedAd;
public class MainActivity extends Activity {
private RewardedAd rewardedAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
rewardedAd = new RewardedAd(this,"ca-app-pub-3940256099942544/5224354917");
RewardedAdLoadCallback adLoadCallback = new RewardedAdLoadCallback() {
@Override
public void onRewardedAdLoaded() {
// Ad successfully loaded.
}
@Override
public void onRewardedAdFailedToLoad(LoadAdError adError) {
// Ad failed to load.
}
};
rewardedAd.loadAd(new AdRequest.Builder().build(),adLoadCallback);
}
}
显示广告
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (rewardedAd.isLoaded()) {
Activity activityContext = MainActivity.this
RewardedAdCallback adCallback = new RewardedAdCallback() {
@Override
public void onRewardedAdOpened() {
// Ad opened.
}
@Override
public void onRewardedAdClosed() {
// Ad closed.
}
@Override
public void onUserEarnedReward(@NonNull RewardItem reward) {
// User earned reward.
}
@Override
public void onRewardedAdFailedToShow(AdError adError) {
// Ad failed to display.
}
};
rewardedAd.show(activityContext,adCallback);
} else {
Log.d("TAG","The rewarded ad wasn't loaded yet.");
}
}
});
使用RewardedAdCallback预载下一个奖励广告
public RewardedAd createAndLoadRewardedAd() {
RewardedAd rewardedAd = new RewardedAd(this,"ca-app-pub-3940256099942544/5224354917");
RewardedAdLoadCallback adLoadCallback = new RewardedAdLoadCallback() {
@Override
public void onRewardedAdLoaded() {
// Ad successfully loaded.
}
@Override
public void onRewardedAdFailedToLoad(LoadAdError adError) {
// Ad failed to load.
}
};
rewardedAd.loadAd(new AdRequest.Builder().build(),adLoadCallback);
return rewardedAd;
}
@Override
public void onRewardedAdClosed() {
this.rewardedAd = createAndLoadRewardedAd();
}
,
现在应改为使用新的RewardedAd类。参见the Google API docs here。