(EN) Android Rewarded Video - adxcorp/ADXLibrary_Integration GitHub Wiki

AdMob Rewarded Video Ad Integration

Loading Rewarded Video Ads take some time. It is recommended that you pre-load it before using it.

  1. Call MobileAds.initialize() with App ID to initialize
  2. Add RewardedAdListener
  3. Create AdRequest. If you require GDPR consent, add npa data as extra (Set npa to '1' only when state is ADXConsentStateDenied)
  4. Call loadAd with AD Unit ID to load ad
  5. onAdLoaded callback gets called when ad has been successfully loaded
  6. Check if ad is available and then call show() to show rewarded video ad
  7. When rewarded video ad has finished playing, onUserEarnedReward callback gets called. Once the callback gets called, then you may proceed to reward the user.
public class RewardedVideoAdMobActivity extends AppCompatActivity {
    private RewardedAd rewardedAd;
    private Button mButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rewarded_video_ad_mob);

        mButton = (Button) findViewById(R.id.buttonAdMob);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showAd();
            }
        });

        loadAd();
    }

    public void loadAd() {
        Bundle extras = new Bundle();

        if (ADXGDPR.ADXConsentState.values()[ADXGDPR.getResultGDPR(this)] == ADXGDPR.ADXConsentState.ADXConsentStateDenied) {
            extras.putString("npa", "1");
        }
        AdRequest adRequest = new AdRequest.Builder()
                .addNetworkExtrasBundle(AdMobAdapter.class, extras)
                .build();

        RewardedAd.load(this, "<YOUR APP ID>", adRequest, new RewardedAdLoadCallback() {
            @Override
            public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
                // Ad successfully loaded.
                Log.d(TAG, "onAdLoaded");
                Toast.makeText(RewardedVideoAdMobActivity.this, "onRewardedVideoAdLoaded", Toast.LENGTH_LONG).show();

                mRewardedAd = rewardedAd;

                mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                    @Override
                    public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
                        // Ad failed to display.
                        Log.d(TAG, "onRewardedAdFailedToShow : " + adError.getCode());
                    }

                    @Override
                    public void onAdShowedFullScreenContent() {
                        // Ad opened.
                        mRewardedAd = null;
                        Log.d(TAG, "onAdShowedFullScreenContent");
                    }

                    @Override
                    public void onAdDismissedFullScreenContent() {
                        // Ad closed.
                        Log.d(TAG, "onAdDismissedFullScreenContent");
                        loadAd();
                    }

                    @Override
                    public void onAdImpression() {
                        // Ad Impression
                        Log.d(TAG, "onAdImpression");
                    }
                });
            }

            @Override
            public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                // Ad failed to load.
                Log.d(TAG, "onRewardedAdFailedToLoad : " + loadAdError.getCode());
                Toast.makeText(RewardedVideoAdMobActivity.this, "onRewardedAdFailedToLoad : " + loadAdError.getCode(), Toast.LENGTH_LONG).show();
            }
        });
    }

    public void showAd() {

        if (mRewardedAd != null) {
            mRewardedAd.show(this, new OnUserEarnedRewardListener() {
                @Override
                public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
                    // User earned reward.
                    Log.d(TAG, "onUserEarnedReward");
                }
            });
        } else {
            Log.d(TAG, "The rewarded ad wasn't loaded yet.");
            loadAd();
        }
    }

    @Override
    protected void onDestroy() {
        mRewardedAd = null;

        super.onDestroy();
    }
}

MoPub Rewarded Video Ad Integration

Loading Rewarded Video Ads take some time. It is recommended that you pre-load it before using it.

  1. Initialize MoPubRewardedAdManager with current activity
  2. Add RewardedAdListener
  3. Load rewarded video by calling loadRewardedAd()
  4. When rewarded video is loaded, onRewardedAdLoadSuccess callback gets called
  5. Call hasRewardedAd() to make sure there is an ad to display then call showRewardedAd() to show rewarded video ad
  6. When rewarded video ad has finished playing, onRewardedAdCompleted callback gets called. Once the callback gets called, then you may proceed to reward the user.
public class RewardedVideoActivity extends AppCompatActivity {
    private Button mButton;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rewarded_video);

        MoPubRewardedAdManager.init(this);
        MoPubRewardedAdManager.updateActivity(this);
    
        loadRewardedVideo();
            
        mButton = (Button) findViewById(R.id.button);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (MoPubRewardedVideos.hasRewardedAd("<YOUT AD UNIT ID HERE>")) {
                    MoPubRewardedVideos.showRewardedAd("<YOUT AD UNIT ID HERE>");
                } else {
                    loadRewardedVideo();
                }
            }
        });
        
        MoPubRewardedAds.setRewardedAdListener(new MoPubRewardedAdListener() {
            @Override
            public void onRewardedAdLoadSuccess(String adUnitId) {
                Log.d(TAG, "onRewardedAdLoadSuccess");
                Toast.makeText(RewardedVideoActivity.this, "onRewardedAdLoadSuccess", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onRewardedAdLoadFailure(String adUnitId, MoPubErrorCode moPubErrorCode) {
                Log.d(TAG, "onRewardedVideoLoadFailure : " + moPubErrorCode.toString());
                Toast.makeText(RewardedVideoActivity.this, "onRewardedVideoLoadFailure", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onRewardedAdStarted(String adUnitId) {
                Log.d(TAG, "onRewardedVideoStarted");
            }

            @Override
            public void onRewardedAdShowError(String adUnitId, MoPubErrorCode moPubErrorCode) {
                Log.d(TAG, "onRewardedAdShowError");
            }

            @Override
            public void onRewardedAdClicked(String adUnitId) {
                Log.d(TAG, "onRewardedAdClicked");
            }

            @Override
            public void onRewardedAdClosed(String adUnitId) {
                Log.d(TAG, "onRewardedAdClosed");
            }

            @Override
            public void onRewardedAdCompleted(Set<String> set, MoPubReward moPubReward) {
                Log.d(TAG, "onRewardedAdCompleted");
            }
        });
    }
    
    private void loadRewardedVideo() {
        MoPubRewardedAds.loadRewardedAd("<YOUT AD UNIT ID HERE>");
    }
    
    @Override
    public void onPause() {
        super.onPause();
        MoPub.onPause(this);
    }
    
    @Override
    public void onResume() {
        super.onResume();
        MoPub.onResume(this);
    }
    
    @Override
    public void onStart() {
        super.onStart();
        MoPub.onStart(this);
    }
    
    @Override
    public void onRestart() {
        super.onRestart();
        MoPub.onRestart(this);
    }
    
    @Override
    public void onStop() {
        super.onStop();
        MoPub.onStop(this);
    }
    
    @Override
    public void onDestroy() {
        super.onDestroy();
        MoPub.onDestroy(this);
    }
    
    @Override
    public void onBackPressed() {
        super.onBackPressed();
        MoPub.onBackPressed(this);
    }
}
⚠️ **GitHub.com Fallback** ⚠️