(EN) Android Rewarded Video - adxcorp/ADXLibrary_Integration GitHub Wiki
Loading Rewarded Video Ads take some time. It is recommended that you pre-load it before using it.
- Call
MobileAds.initialize()
with App ID to initialize - Add
RewardedAdListener
- Create
AdRequest
. If you require GDPR consent, addnpa
data as extra (Setnpa
to '1' only when state isADXConsentStateDenied
) - Call
loadAd
with AD Unit ID to load ad -
onAdLoaded
callback gets called when ad has been successfully loaded - Check if ad is available and then call
show()
to show rewarded video ad - 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();
}
}
Loading Rewarded Video Ads take some time. It is recommended that you pre-load it before using it.
- Initialize
MoPubRewardedAdManager
with current activity - Add
RewardedAdListener
- Load rewarded video by calling
loadRewardedAd()
- When rewarded video is loaded,
onRewardedAdLoadSuccess
callback gets called - Call
hasRewardedAd()
to make sure there is an ad to display then callshowRewardedAd()
to show rewarded video ad - 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);
}
}