Rewarded ads may only be served after a user affirmatively opts to view a rewarded ad.
-> Below is sample code. Show an Popup to user to view Rewarded Ad with Cancel option on click of button in your workflow
private void ShowRewardVideoDialog() {
new AlertDialog.Builder(this)
.setTitle("App Title")
.setMessage("Free version of this app, allows you to view game without any purchase. You just need reward points to view more games. For that, click on \"Watch Video\" button to earn reward points and play game for free. OR click on \"purchase\" for just one time payment to access any level without any advertisement ")
.setPositiveButton("Purchase"),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
showUpgradeDialog();
}
})
.setNegativeButton("Watch Video"),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
if (mRewardedVideoAd.isLoaded()) {
mRewardedVideoAd.show();
} else {
loadRewardedVideoAd();
Toast.makeText(mctx, "Fail to Load Reward Video : Please try again", Toast.LENGTH_LONG).show();
}
}
})
.setNeutralButton("cancel"), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create().show();
}
Additionally, a user must opt to view each rewarded ad individually and cannot opt-in to automatically seeing rewarded ads.
-> If you are loading multiple Rewarded at the same time. You need to ask user confirmation for showing each Rewarded every time.