Stay organized with collections
Save and categorize content based on your preferences.
Interstitial ads are full-screen ads that cover the interface of their host app.
They're typically displayed at natural transition points in the flow of an app,
such as between activities or during the pause between levels in a game.
When an app shows an interstitial ad, the user has the choice to either tap on
the ad and continue to its destination or close it and return to the app.
This guide explains how to integrate interstitial ads into an Android
app.
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 interstitials:
/21775744923/example/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 an interstitial ad, call the InterstitialAd static load() method and
pass in an AdLoadCallback<InterstitialAd> 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.interstitial.InterstitialAdimportcom.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallbackimportcom.google.android.libraries.ads.mobile.sdk.MobileAdsclassInterstitialActivity:Activity(){privatevarinterstitialAd:InterstitialAd? =nulloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)// Load ads after you initialize Next Gen Mobile Ads SDK.InterstitialAd.load(AdRequest.Builder(AD_UNIT_ID).build(),object:AdLoadCallback<InterstitialAd>{overridefunonAdLoaded(ad:InterstitialAd){// Interstitial ad loaded.interstitialAd=ad}overridefunonAdFailedToLoad(adError:LoadAdError){// Interstitial ad failed to load.interstitialAd=null}},)}companionobject{// Sample interstitial ad unit ID.constvalAD_UNIT_ID="/21775744923/example/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.interstitial.InterstitialAd;importcom.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback;importcom.google.android.libraries.ads.mobile.sdk.MobileAds;classInterstitialActivityextendsActivity{// Sample interstitial ad unit ID.privatestaticfinalStringAD_UNIT_ID="/21775744923/example/interstitial";privateInterstitialAdinterstitialAd;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);// Load ads after you initialize Next Gen Mobile Ads SDK.InterstitialAd.load(newAdRequest.Builder(AD_UNIT_ID).build(),newAdLoadCallback<InterstitialAd>(){@OverridepublicvoidonAdLoaded(@NonNullInterstitialAdinterstitialAd){// Interstitial ad loaded.AdLoadCallback.super.onAdLoaded(interstitialAd);InterstitialActivity.this.interstitialAd=interstitialAd;}@OverridepublicvoidonAdFailedToLoad(@NonNullLoadAdErroradError){// Interstitial ad failed to load.AdLoadCallback.super.onAdFailedToLoad(adError);interstitialAd=null;}});}}
Set the InterstitialAdEventCallback
The InterstitialAdEventCallback handles events related to displaying your
InterstitialAd. Before showing the interstitial ad, make sure to set the
callback:
Kotlin
// Listen for ad events.interstitialAd?.adEventCallback=object:InterstitialAdEventCallback{overridefunonAdShowedFullScreenContent(){// Interstitial ad did show.}overridefunonAdDismissedFullScreenContent(){// Interstitial ad did dismiss.interstitialAd=null}overridefunonAdFailedToShowFullScreenContent(fullScreenContentError:FullScreenContentError){// Interstitial ad failed to show.interstitialAd=null}overridefunonAdImpression(){// Interstitial ad did record an impression.}overridefunonAdClicked(){// Interstitial ad did record a click.}}
Java
// Listen for ad events.interstitialAd.setAdEventCallback(newInterstitialAdEventCallback(){@OverridepublicvoidonAdShowedFullScreenContent(){// Interstitial ad did show.InterstitialAdEventCallback.super.onAdShowedFullScreenContent();}@OverridepublicvoidonAdDismissedFullScreenContent(){// Interstitial ad did dismiss.InterstitialAdEventCallback.super.onAdDismissedFullScreenContent();interstitialAd=null;}@OverridepublicvoidonAdFailedToShowFullScreenContent(@NonNullFullScreenContentErrorfullScreenContentError){// Interstitial ad failed to show.InterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(fullScreenContentError);initerstitialAd=null;}@OverridepublicvoidonAdImpression(){// Interstitial ad did record an impression.InterstitialAdEventCallback.super.onAdImpression();}@OverridepublicvoidonAdClicked(){// Interstitial ad did record a click.InterstitialAdEventCallback.super.onAdClicked();}});
Show the ad
To show an interstitial ad, use the show() method.
Kotlin
// Show the ad.interstitialAd?.show(this@InterstitialActivity)
Java
// Show the ad.interstitialAd.show(InterstitialActivity.this);
Some best practices
Consider whether interstitial ads are the right type of ad for your app.
Interstitial ads work best in apps with natural transition points.
The conclusion of a task within an app, like sharing an image or completing a
game level, creates such a point. Make sure you consider at which points in your
app's workflow you'll display interstitial ads and how the user is likely to
respond.
Remember to pause the action when displaying an interstitial ad.
There are a number of different types of interstitial ads: text, image,
video, and more. It's important to make sure that when your app displays an
interstitial ad, it also suspends its use of some resources to allow the ad to
take advantage of them. For example, when you make the call to display an
interstitial ad, be sure to pause any audio output being produced by your app.
Allow for adequate loading time.
Just as it's important to make sure you display interstitial ads at an
appropriate time, it's also important to make sure the user doesn't have to
wait for them to load. Loading the ad in advance by calling
load() before you intend to call
show() can ensure that your app has a fully loaded interstitial ad at the
ready when the time comes to display one.
Don't flood the user with ads.
While increasing the frequency of interstitial ads in your app might seem
like a great way to increase revenue, it can also degrade the user experience
and lower clickthrough rates. Make sure that users aren't so frequently
interrupted that they're no longer able to enjoy the use of your app.
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-09 UTC."],[[["\u003cp\u003eInterstitial ads are full-screen ads that appear at natural transition points within an app, giving users the option to engage or dismiss them.\u003c/p\u003e\n"],["\u003cp\u003eThis guide provides instructions on integrating interstitial ads into Android apps using the Google Mobile Ads SDK, including loading, displaying, and handling ad events.\u003c/p\u003e\n"],["\u003cp\u003eBest practices for implementation include strategic ad placement, resource management during ad display, pre-loading for seamless transitions, and avoiding excessive ad frequency to maintain a positive user experience.\u003c/p\u003e\n"],["\u003cp\u003eWhen building and testing, utilize test ads to prevent account suspension and ensure smooth integration before publishing your app with live ads.\u003c/p\u003e\n"]]],["Interstitial ads are full-screen ads shown at natural transition points in an app. To integrate them, first complete the setup guide and use the test ad unit ID `/21775744923/example/interstitial`. Use `InterstitialAd.load()` with an `AdLoadCallback` to load ads, after the SDK is initialized. Set `InterstitialAdEventCallback` to manage ad events and finally, use `show()` to display the ad. Remember best practices like considering natural transition points and adequate loading time.\n"],null,["Interstitial ads are full-screen ads that cover the interface of their host app.\nThey're typically displayed at natural transition points in the flow of an app,\nsuch as between activities or during the pause between levels in a game.\nWhen an app shows an interstitial ad, the user has the choice to either tap on\nthe ad and continue to its destination or close it and return to the app.\n\n\nThis guide explains how to integrate interstitial ads into an Android\napp.\n\nPrerequisites\n- Complete the [Get started guide](/ad-manager/mobile-ads-sdk/android/early-access/nextgen/quick-start).\n\nAlways test with test ads\n- 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.\n- The easiest way to load test ads is to use our dedicated test ad unit ID for Android interstitials:\n- `/21775744923/example/interstitial`\n- 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.\n- For more information about how Next Gen Mobile Ads SDK test ads work, see [Test Ads](/ad-manager/mobile-ads-sdk/android/early-access/nextgen/test-ads).\n\nLoad an ad\n- To load an interstitial ad, call the `InterstitialAd` static `load()` method and pass in an `AdLoadCallback\u003cInterstitialAd\u003e` to receive 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.interstitial.InterstitialAd\n import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback\n import com.google.android.libraries.ads.mobile.sdk.MobileAds\n\n class InterstitialActivity : Activity() {\n private var interstitialAd: InterstitialAd? = 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 InterstitialAd.load(\n AdRequest.Builder(AD_UNIT_ID).build(),\n object : AdLoadCallback\u003cInterstitialAd\u003e {\n override fun onAdLoaded(ad: InterstitialAd) {\n // Interstitial ad loaded.\n interstitialAd = ad\n }\n\n override fun onAdFailedToLoad(adError: LoadAdError) {\n // Interstitial ad failed to load.\n interstitialAd = null\n }\n },\n )\n }\n\n companion object {\n // Sample interstitial ad unit ID.\n const val AD_UNIT_ID = \"/21775744923/example/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.interstitial.InterstitialAd;\n import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback;\n import com.google.android.libraries.ads.mobile.sdk.MobileAds;\n\n class InterstitialActivity extends Activity {\n // Sample interstitial ad unit ID.\n private static final String AD_UNIT_ID = \"/21775744923/example/interstitial\";\n private InterstitialAd interstitialAd;\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 InterstitialAd.load(\n new AdRequest.Builder(AD_UNIT_ID).build(),\n new AdLoadCallback\u003cInterstitialAd\u003e() {\n @Override\n public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {\n // Interstitial ad loaded.\n AdLoadCallback.super.onAdLoaded(interstitialAd);\n InterstitialActivity.this.interstitialAd = interstitialAd;\n }\n\n @Override\n public void onAdFailedToLoad(@NonNull LoadAdError adError) {\n // Interstitial ad failed to load.\n AdLoadCallback.super.onAdFailedToLoad(adError);\n interstitialAd = null;\n }\n }\n );\n }\n }\n\nSet the InterstitialAdEventCallback\n- The `InterstitialAdEventCallback` handles events related to displaying your `InterstitialAd`. Before showing the interstitial ad, make sure to set the callback: \n\nKotlin \n\n // Listen for ad events.\n interstitialAd?.adEventCallback =\n object : InterstitialAdEventCallback {\n override fun onAdShowedFullScreenContent() {\n // Interstitial ad did show.\n }\n\n override fun onAdDismissedFullScreenContent() {\n // Interstitial ad did dismiss.\n interstitialAd = null\n }\n\n override fun onAdFailedToShowFullScreenContent(\n fullScreenContentError: FullScreenContentError\n ) {\n // Interstitial ad failed to show.\n interstitialAd = null\n }\n\n override fun onAdImpression() {\n // Interstitial ad did record an impression.\n }\n\n override fun onAdClicked() {\n // Interstitial ad did record a click.\n }\n }\n\nJava \n\n // Listen for ad events.\n interstitialAd.setAdEventCallback(\n new InterstitialAdEventCallback() {\n @Override\n public void onAdShowedFullScreenContent() {\n // Interstitial ad did show.\n InterstitialAdEventCallback.super.onAdShowedFullScreenContent();\n }\n\n @Override\n public void onAdDismissedFullScreenContent() {\n // Interstitial ad did dismiss.\n InterstitialAdEventCallback.super.onAdDismissedFullScreenContent();\n interstitialAd = null;\n }\n\n @Override\n public void onAdFailedToShowFullScreenContent(\n @NonNull FullScreenContentError fullScreenContentError) {\n // Interstitial ad failed to show.\n InterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(\n fullScreenContentError);\n initerstitialAd = null;\n }\n\n @Override\n public void onAdImpression() {\n // Interstitial ad did record an impression.\n InterstitialAdEventCallback.super.onAdImpression();\n }\n\n @Override\n public void onAdClicked() {\n // Interstitial ad did record a click.\n InterstitialAdEventCallback.super.onAdClicked();\n }\n }\n );\n\nShow the ad\n- To show an interstitial ad, use the `show()` method. \n\nKotlin \n\n // Show the ad.\n interstitialAd?.show(this@InterstitialActivity)\n\nJava \n\n // Show the ad.\n interstitialAd.show(InterstitialActivity.this);\n\nSome best practices\n\nConsider whether interstitial ads are the right type of ad for your app.\n: Interstitial ads work best in apps with natural transition points.\n The conclusion of a task within an app, like sharing an image or completing a\n game level, creates such a point. Make sure you consider at which points in your\n app's workflow you'll display interstitial ads and how the user is likely to\n respond.\n\nRemember to pause the action when displaying an interstitial ad.\n: There are a number of different types of interstitial ads: text, image,\n video, and more. It's important to make sure that when your app displays an\n interstitial ad, it also suspends its use of some resources to allow the ad to\n take advantage of them. For example, when you make the call to display an\n interstitial ad, be sure to pause any audio output being produced by your app.\n\nAllow for adequate loading time.\n: Just as it's important to make sure you display interstitial ads at an\n appropriate time, it's also important to make sure the user doesn't have to\n wait for them to load. Loading the ad in advance by calling\n [`load()`](/ad-manager/mobile-ads-sdk/android/early-access/nextgen/reference/kotlin/com/google/android/libraries/ads/mobile/sdk/interstitial/InterstitialAd#load(com.google.android.libraries.ads.mobile.sdk.common.AdRequest,com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback)) before you intend to call\n `show()` can ensure that your app has a fully loaded interstitial ad at the\n ready when the time comes to display one.\n\nDon't flood the user with ads.\n: While increasing the frequency of interstitial ads in your app might seem\n like a great way to increase revenue, it can also degrade the user experience\n and lower clickthrough rates. Make sure that users aren't so frequently\n interrupted that they're no longer able to enjoy the use of your app.\n\nExample\n- Download and run the [example app](//drive.google.com/drive/folders/1Akdh63mFZUZU456t-rvNxBBzL6guNtYj?usp=sharing) that demonstrates the use of the Next Gen Mobile Ads SDK."]]