RewardedVideoAd is deprecated. What is the new alternative?

    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");         }         .....         .....     } 

Tag:google-ads-api, android, ads, admob-rewardedvideoad, deprecated

4 comments.

  1. jazzbpn

    This is the new way to implement new RewardVideoAds. Found via this official website.

    Load an ad

    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); } }

    Show the ad

    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."); } } });

    Using RewardedAdCallback to preload the next rewarded ad

    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(); }
    1. Thomas

      This is now deprecated too. The answer should be updated.

  2. Pratik Butani

    Here is the latest way which I have implemented recently [May - 2023]

    Declare a RewardedAd:

    private RewardedAd rewardedAd;

    Inside the onCreate(), load a rewarded ad object:

    AdRequest adRequest = new AdRequest.Builder().build(); RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917", adRequest, new RewardedAdLoadCallback() { @Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { // Handle the error. Log.d(TAG, loadAdError.toString()); rewardedAd = null; } @Override public void onAdLoaded(@NonNull RewardedAd ad) { rewardedAd = ad; Log.d(TAG, "Ad was loaded."); } });

    Show the ad:

    if (rewardedAd != null) { Activity activityContext = MainActivity.this; rewardedAd.show(activityContext, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // Handle the reward. Log.d(TAG, "The user earned the reward."); int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); } else { Log.d(TAG, "The rewarded ad wasn't ready yet."); }

    For more information, you can react out the documentation.

    Rewarded ads example: Java | Kotlin

  3. Ecthelion

    There is a new class RewardedAd that should be used instead now. See the Google API docs here.

Add a new comment.