不推荐使用RewardedVideoAd MobileAds.getRewardedVideoAdInstancethis新的替代方法是什么?

问题描述

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