Stay organized with collections
Save and categorize content based on your preferences.
Rewarded interstitial is a type
of incentivized ad format that lets you offer rewards for ads that appear
automatically during natural app transitions. Unlike rewarded ads, users aren't
required to opt in to view a rewarded interstitial.
When building and testing your apps, make sure you use test ads rather than
live, production ads. Failure to do so can lead to suspension of your account.
The easiest way to load test ads is to use our dedicated test ad unit ID for
Android rewarded interstitial ads:
/21775744923/example/rewarded-interstitial
It's been specially configured to return test ads for every request, and you're
free to use it in your own apps while coding, testing, and debugging. Just make
sure you replace it with your own ad unit ID before publishing your app.
For more information about how Next Gen Mobile Ads SDK test ads work, see Test
Ads.
Load an ad
To load a rewarded interstitial ad, call the RewardedInterstitialAd static
load() method and pass in an AdLoadCallback<RewardedInterstitialAd> to
receive the loaded ad or any possible errors.
Kotlin
importcom.google.android.libraries.ads.mobile.sdk.common.AdLoadCallbackimportcom.google.android.libraries.ads.mobile.sdk.common.AdRequestimportcom.google.android.libraries.ads.mobile.sdk.common.FullScreenContentErrorimportcom.google.android.libraries.ads.mobile.sdk.common.LoadAdErrorimportcom.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdimportcom.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallbackimportcom.google.android.libraries.ads.mobile.sdk.MobileAdsclassRewardedInterstitialActivity:Activity(){privatevarrewardedInterstitialAd:RewardedInterstitialAd? =nulloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)// Load ads after you initialize Next Gen Mobile Ads SDK.RewardedInterstitialAd.load(AdRequest.Builder(AD_UNIT_ID).build(),object:AdLoadCallback<RewardedInterstitialAd>{overridefunonAdLoaded(ad:RewardedInterstitialAd){// Rewarded interstitial ad loaded.rewardedInterstitialAd=ad}overridefunonAdFailedToLoad(adError:LoadAdError){// Rewarded interstitial ad failed to load.rewardedInterstitialAd=null}},)}companionobject{// Sample rewarded interstitial ad unit ID.constvalAD_UNIT_ID="/21775744923/example/rewarded-interstitial"}}
Java
importcom.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;importcom.google.android.libraries.ads.mobile.sdk.common.AdRequest;importcom.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;importcom.google.android.libraries.ads.mobile.sdk.common.LoadAdError;importcom.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd;importcom.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallback;importcom.google.android.libraries.ads.mobile.sdk.MobileAds;classRewardedActivityextendsActivity{// Sample rewarded interstitial ad unit ID.privatestaticfinalStringAD_UNIT_ID="/21775744923/example/rewarded-interstitial";privateRewardedInterstitialAdrewardedInterstitialAd;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);// Load ads after you initialize Next Gen Mobile Ads SDK.RewardedInterstitialAd.load(newAdRequest.Builder(AD_UNIT_ID).build(),newAdLoadCallback<RewardedInterstitialAd>(){@OverridepublicvoidonAdLoaded(@NonNullRewardedInterstitialAdrewardedInterstitialAd){// Rewarded interstitial ad loaded.AdLoadCallback.super.onAdLoaded(rewardedInterstitialAd);RewardedActivity.this.rewardedInterstitialAd=rewardedInterstitialAd;}@OverridepublicvoidonAdFailedToLoad(@NonNullLoadAdErroradError){// Rewarded interstitial ad failed to load.AdLoadCallback.super.onAdFailedToLoad(adError);rewardedInterstitialAd=null;}});}}
Set the RewardedInterstitialAdEventCallback
The RewardedInterstitialAdEventCallback handles events related to displaying
your RewardedInterstitialAd. Before showing the rewarded interstitial ad, make
sure to set the callback:
Kotlin
// Listen for ad events.rewardedInterstitialAd?.adEventCallback=object:RewardedInterstitialAdEventCallback{overridefunonAdShowedFullScreenContent(){// Rewarded interstitial ad did show.}overridefunonAdDismissedFullScreenContent(){// Rewarded interstitial ad did dismiss.rewardedInterstitialAd=null}overridefunonAdFailedToShowFullScreenContent(fullScreenContentError:FullScreenContentError){// Rewarded interstitial ad failed to show.rewardedInterstitialAd=null}overridefunonAdImpression(){// Rewarded interstitial ad did record an impression.}overridefunonAdClicked(){// Rewarded interstitial ad did record a click.}}
Java
// Listen for ad events.rewardedInterstitialAd.setAdEventCallback(newRewardedInterstitialAdEventCallback(){@OverridepublicvoidonAdShowedFullScreenContent(){// Rewarded interstitial ad did show.RewardedInterstitialAdEventCallback.super.onAdShowedFullScreenContent();}@OverridepublicvoidonAdDismissedFullScreenContent(){// Rewarded interstitial ad did dismiss.RewardedInterstitialAdEventCallback.super.onAdDismissedFullScreenContent();rewardedInterstitialAd=null;}@OverridepublicvoidonAdFailedToShowFullScreenContent(@NonNullFullScreenContentErrorfullScreenContentError){// Rewarded interstitial ad failed to show.RewardedInterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(fullScreenContentError);rewardedInterstitialAd=null;}@OverridepublicvoidonAdImpression(){// Rewarded interstitial ad did record an impression.RewardedInterstitialAdEventCallback.super.onAdImpression();}@OverridepublicvoidonAdClicked(){// Rewarded interstitial ad did record a click.RewardedInterstitialAdEventCallback.super.onAdClicked();}});
Show the ad
To show a rewarded interstitial ad, use the show() method. Use an
OnUserEarnedRewardListener object to handle reward events.
Kotlin
// Show the ad.rewardedInterstitialAd?.show(this@RewardedActivity,object:OnUserEarnedRewardListener{overridefunonUserEarnedReward(rewardItem:RewardItem){// User earned the reward.valrewardAmount=rewardItem.amountvalrewardType=rewardItem.type}},)
Java
// Show the ad.rewardedInterstitialAd.show(RewardedActivity.this,newOnUserEarnedRewardListener(){@OverridepublicvoidonUserEarnedReward(@NonNullRewardItemrewardItem){// User earned the reward.intrewardAmount=rewardItem.getAmount();StringrewardType=rewardItem.getType();}});
Example
Download and run the
example app
that demonstrates the use of the Next Gen Mobile Ads SDK.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eRewarded interstitial ads are incentivized and appear automatically during natural app transitions, without requiring user opt-in.\u003c/p\u003e\n"],["\u003cp\u003eBefore publishing, replace the test ad unit ID \u003ccode\u003e/21775744923/example/rewarded-interstitial\u003c/code\u003e with your own ad unit ID to avoid account suspension.\u003c/p\u003e\n"],["\u003cp\u003eTo load a rewarded interstitial ad, call the \u003ccode\u003eRewardedInterstitialAd\u003c/code\u003e static \u003ccode\u003eload()\u003c/code\u003e method after initializing the Google Mobile Ads SDK.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRewardedInterstitialAdEventCallback\u003c/code\u003e handles events related to displaying the ad and should be set before showing it.\u003c/p\u003e\n"],["\u003cp\u003eUse the \u003ccode\u003eshow()\u003c/code\u003e method to display the rewarded interstitial ad and an \u003ccode\u003eOnUserEarnedRewardListener\u003c/code\u003e to handle reward events.\u003c/p\u003e\n"]]],[],null,["[Rewarded interstitial](//support.google.com/admanager/answer/7386053) is a type\nof incentivized ad format that lets you offer rewards for ads that appear\nautomatically during natural app transitions. Unlike rewarded ads, users aren't\nrequired to opt in to view a rewarded interstitial.\n\nPrerequisites\n\n- Complete the [Get started guide](/ad-manager/mobile-ads-sdk/android/early-access/nextgen/quick-start).\n\nAlways test with test ads\n\nWhen building and testing your apps, make sure you use test ads rather than\nlive, production ads. Failure to do so can lead to suspension of your account.\n\nThe easiest way to load test ads is to use our dedicated test ad unit ID for\nAndroid rewarded interstitial ads:\n\n`/21775744923/example/rewarded-interstitial`\n\nIt's been specially configured to return test ads for every request, and you're\nfree to use it in your own apps while coding, testing, and debugging. Just make\nsure you replace it with your own ad unit ID before publishing your app.\n\nFor more information about how Next Gen Mobile Ads SDK test ads work, see [Test\nAds](/ad-manager/mobile-ads-sdk/android/early-access/nextgen/test-ads).\n\nLoad an ad\n\nTo load a rewarded interstitial ad, call the `RewardedInterstitialAd` static\n`load()` method and pass in an `AdLoadCallback\u003cRewardedInterstitialAd\u003e` to\nreceive the loaded ad or any possible errors.\n**Warning:** Before loading ads, you must initialize Next Gen Mobile Ads SDK. \n\nKotlin \n\n import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback\n import com.google.android.libraries.ads.mobile.sdk.common.AdRequest\n import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError\n import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError\n import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd\n import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallback\n import com.google.android.libraries.ads.mobile.sdk.MobileAds\n\n class RewardedInterstitialActivity : Activity() {\n private var rewardedInterstitialAd: RewardedInterstitialAd? = null\n\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n\n // Load ads after you initialize Next Gen Mobile Ads SDK.\n RewardedInterstitialAd.load(\n AdRequest.Builder(AD_UNIT_ID).build(),\n object : AdLoadCallback\u003cRewardedInterstitialAd\u003e {\n override fun onAdLoaded(ad: RewardedInterstitialAd) {\n // Rewarded interstitial ad loaded.\n rewardedInterstitialAd = ad\n }\n\n override fun onAdFailedToLoad(adError: LoadAdError) {\n // Rewarded interstitial ad failed to load.\n rewardedInterstitialAd = null\n }\n },\n )\n }\n\n companion object {\n // Sample rewarded interstitial ad unit ID.\n const val AD_UNIT_ID = \"/21775744923/example/rewarded-interstitial\"\n }\n }\n\nJava \n\n import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;\n import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;\n import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;\n import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;\n import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd;\n import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallback;\n import com.google.android.libraries.ads.mobile.sdk.MobileAds;\n\n class RewardedActivity extends Activity {\n // Sample rewarded interstitial ad unit ID.\n private static final String AD_UNIT_ID = \"/21775744923/example/rewarded-interstitial\";\n private RewardedInterstitialAd rewardedInterstitialAd;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n\n // Load ads after you initialize Next Gen Mobile Ads SDK.\n RewardedInterstitialAd.load(\n new AdRequest.Builder(AD_UNIT_ID).build(),\n new AdLoadCallback\u003cRewardedInterstitialAd\u003e() {\n @Override\n public void onAdLoaded(@NonNull RewardedInterstitialAd rewardedInterstitialAd) {\n // Rewarded interstitial ad loaded.\n AdLoadCallback.super.onAdLoaded(rewardedInterstitialAd);\n RewardedActivity.this.rewardedInterstitialAd = rewardedInterstitialAd;\n }\n\n @Override\n public void onAdFailedToLoad(@NonNull LoadAdError adError) {\n // Rewarded interstitial ad failed to load.\n AdLoadCallback.super.onAdFailedToLoad(adError);\n rewardedInterstitialAd = null;\n }\n }\n );\n }\n }\n\nSet the RewardedInterstitialAdEventCallback\n\nThe `RewardedInterstitialAdEventCallback` handles events related to displaying\nyour `RewardedInterstitialAd`. Before showing the rewarded interstitial ad, make\nsure to set the callback: \n\nKotlin \n\n // Listen for ad events.\n rewardedInterstitialAd?.adEventCallback =\n object : RewardedInterstitialAdEventCallback {\n override fun onAdShowedFullScreenContent() {\n // Rewarded interstitial ad did show.\n }\n\n override fun onAdDismissedFullScreenContent() {\n // Rewarded interstitial ad did dismiss.\n rewardedInterstitialAd = null\n }\n\n override fun onAdFailedToShowFullScreenContent(\n fullScreenContentError: FullScreenContentError\n ) {\n // Rewarded interstitial ad failed to show.\n rewardedInterstitialAd = null\n }\n\n override fun onAdImpression() {\n // Rewarded interstitial ad did record an impression.\n }\n\n override fun onAdClicked() {\n // Rewarded interstitial ad did record a click.\n }\n }\n\nJava \n\n // Listen for ad events.\n rewardedInterstitialAd.setAdEventCallback(\n new RewardedInterstitialAdEventCallback() {\n @Override\n public void onAdShowedFullScreenContent() {\n // Rewarded interstitial ad did show.\n RewardedInterstitialAdEventCallback.super.onAdShowedFullScreenContent();\n }\n\n @Override\n public void onAdDismissedFullScreenContent() {\n // Rewarded interstitial ad did dismiss.\n RewardedInterstitialAdEventCallback.super.onAdDismissedFullScreenContent();\n rewardedInterstitialAd = null;\n }\n\n @Override\n public void onAdFailedToShowFullScreenContent(\n @NonNull FullScreenContentError fullScreenContentError) {\n // Rewarded interstitial ad failed to show.\n RewardedInterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(\n fullScreenContentError);\n rewardedInterstitialAd = null;\n }\n\n @Override\n public void onAdImpression() {\n // Rewarded interstitial ad did record an impression.\n RewardedInterstitialAdEventCallback.super.onAdImpression();\n }\n\n @Override\n public void onAdClicked() {\n // Rewarded interstitial ad did record a click.\n RewardedInterstitialAdEventCallback.super.onAdClicked();\n }\n }\n );\n\nShow the ad\n\nTo show a rewarded interstitial ad, use the `show()` method. Use an\n`OnUserEarnedRewardListener` object to handle reward events. \n\nKotlin \n\n // Show the ad.\n rewardedInterstitialAd?.show(\n this@RewardedActivity,\n object : OnUserEarnedRewardListener {\n override fun onUserEarnedReward(rewardItem: RewardItem) {\n // User earned the reward.\n val rewardAmount = rewardItem.amount\n val rewardType = rewardItem.type\n }\n },\n )\n\nJava \n\n // Show the ad.\n rewardedInterstitialAd.show(\n RewardedActivity.this,\n new OnUserEarnedRewardListener() {\n @Override\n public void onUserEarnedReward(@NonNull RewardItem rewardItem) {\n // User earned the reward.\n int rewardAmount = rewardItem.getAmount();\n String rewardType = rewardItem.getType();\n }\n });\n\nExample\n\nDownload and run the\n[example app](//drive.google.com/drive/folders/1Akdh63mFZUZU456t-rvNxBBzL6guNtYj?usp=sharing)\nthat demonstrates the use of the Next Gen Mobile Ads SDK."]]