ErosLove
ErosLove

Reputation: 41

libgdx how to implement admob rewarded video since RewardedVideoAdListener became deprecated

Can someone tell how to implement admob rewarded video in libgdx since RewardedVideoAdListener became depricated, please?

AndroidLauncher:

public class AndroidLauncher extends AndroidApplication implements AdsController {


@Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    
        game = new MyGame(this);
        View gameView = initializeForView(game, config);

        layout = new RelativeLayout(this);
        layout.addView(gameView, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);

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

and show() method as admob docs:

@Override
    public void showRewardedVideo() {
        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);
        }
    }

enter image description here

How to get that Activity to pass it in ad.show() method or what the other ways to show ad?

Upvotes: 1

Views: 299

Answers (1)

ErosLove
ErosLove

Reputation: 41

Problem solved

@Override
    public void showRewardedVideo() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (rewardedAd.isLoaded()) {
                    Activity activityContext = getParent();
                    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 {
                    loadRewardedVideoAd();
                }
            }
        });
    }

Upvotes: 1

Related Questions