Collapsible banner ads
Stay organized with collections
Save and categorize content based on your preferences.
Collapsible banner ads are banner ads that are initially presented as a larger
overlay, with a button to collapse them to the originally requested banner size.
Collapsible banner ads are intended to improve performance of anchored ads that
are otherwise a smaller size. This guide shows how to turn on collapsible banner
ads for existing banner placements.

Prerequisites
Implementation
Make sure your banner view is defined with the size you would like users to see
in the regular (collapsed) banner state. Include an extras parameter in the ad
request with collapsible
as the key and the placement of the ad as the value.
The collapsible placement defines how the expanded region anchors to the banner
ad.
Placement value
|
Behavior |
Intended use case |
top |
The top of the expanded ad aligns to the top of the collapsed ad. |
The ad is placed at the top of the screen. |
bottom |
The bottom of the expanded ad aligns to the bottom of the collapsed
ad. |
The ad is placed at the bottom of the screen. |
If the loaded ad is a collapsible banner, the banner shows the collapsible
overlay immediately once it's placed in the view hierarchy.
Java
private void loadCollapsibleBanner() {
// Create an extra parameter that aligns the bottom of the expanded ad to
// the bottom of the bannerView.
Bundle extras = new Bundle();
extras.putString("collapsible", "bottom");
// Create an ad request.
AdRequest adRequest =
new AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, extras).build();
// ...
// Start loading a collapsible banner ad.
adView.loadAd(adRequest);
}
Kotlin
private fun loadCollapsibleBanner() {
// Create an extra parameter that aligns the bottom of the expanded ad to
// the bottom of the bannerView.
val extras = Bundle()
extras.putString("collapsible", "bottom")
// Create an ad request.
val adRequest =
AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()
// ...
// Start loading a collapsible banner ad.
adView.loadAd(adRequest)
}
Ads refreshing behavior
For apps that configure auto-refresh for banner ads in the
AdMob web interface, when a collapsible banner ad
is requested for a banner slot, subsequent ad refreshes won't request
collapsible banner ads. This is because showing a collapsible banner on every
refresh could have a negative impact on user experience.
If you want to load another collapsible banner ad later in the session, you can
load an ad manually with a request containing the collapsible parameter.
Check if a loaded ad is collapsible
Non-collapsible banner ads are eligible to return for collapsible banner
requests to maximize performance. Call isCollapsible
to check if the last
banner loaded is collapsible. If the request fails to load and the previous
banner is collapsible, the API returns true.
Java
public void onAdLoaded() {
Log.i(
MainActivity.LOG_TAG,
String.format("Ad loaded. adView.isCollapsible() is %b.", adView.isCollapsible()));
}
Kotlin
override fun onAdLoaded() {
Log.i(
MainActivity.LOG_TAG,
"Ad loaded. adView.isCollapsible() is ${adView.isCollapsible}.",
)
}
Collapsible banner ads are only available for Google demand. Ads served through
mediation show as normal, non-collapsible banner ads.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-04 UTC.
[[["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\u003eCollapsible banner ads start as larger overlays and can be collapsed to a standard banner size, improving the performance of smaller anchored ads.\u003c/p\u003e\n"],["\u003cp\u003eTo implement, define the collapsed banner size and include an extra parameter in the ad request specifying the \u003ccode\u003ecollapsible\u003c/code\u003e placement (\u003ccode\u003etop\u003c/code\u003e or \u003ccode\u003ebottom\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eAuto-refresh is disabled for collapsible banners after the initial load to avoid negative user experiences; manual ad requests are needed for subsequent collapsible banners.\u003c/p\u003e\n"],["\u003cp\u003eYou can check if a loaded banner is collapsible using the \u003ccode\u003eisCollapsible\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eDuring the beta period, collapsible banners are only available for Google demand; mediated ads will display as standard banners.\u003c/p\u003e\n"]]],[],null,["Select platform: [Android](/admob/android/banner/collapsible \"View this page for the Android platform docs.\") [iOS](/admob/ios/banner/collapsible \"View this page for the iOS platform docs.\") [Unity](/admob/unity/banner/collapsible \"View this page for the Unity platform docs.\") [Flutter](/admob/flutter/banner/collapsible \"View this page for the Flutter platform docs.\")\n\n\u003cbr /\u003e\n\nCollapsible banner ads are banner ads that are initially presented as a larger\noverlay, with a button to collapse them to the originally requested banner size.\nCollapsible banner ads are intended to improve performance of anchored ads that\nare otherwise a smaller size. This guide shows how to turn on collapsible banner\nads for existing banner placements.\n\nPrerequisites\n\n- Complete the [banner ads get started guide](/admob/android/banner).\n\nImplementation\n\nMake sure your banner view is defined with the size you would like users to see\nin the regular (collapsed) banner state. Include an extras parameter in the ad\nrequest with `collapsible` as the key and the placement of the ad as the value.\n\nThe collapsible placement defines how the expanded region anchors to the banner\nad.\n\n| `Placement` value | Behavior | Intended use case |\n|-------------------|-------------------------------------------------------------------------|-----------------------------------------------|\n| `top` | The top of the expanded ad aligns to the top of the collapsed ad. | The ad is placed at the top of the screen. |\n| `bottom` | The bottom of the expanded ad aligns to the bottom of the collapsed ad. | The ad is placed at the bottom of the screen. |\n\nIf the loaded ad is a collapsible banner, the banner shows the collapsible\noverlay immediately once it's placed in the view hierarchy.\n\nJava \n\n private void loadCollapsibleBanner() {\n // Create an extra parameter that aligns the bottom of the expanded ad to\n // the bottom of the bannerView.\n Bundle extras = new Bundle();\n extras.putString(\"collapsible\", \"bottom\");\n\n // Create an ad request.\n AdRequest adRequest =\n new AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, extras).build();\n\n // ...\n\n // Start loading a collapsible banner ad.\n adView.loadAd(adRequest);\n } \n https://github.com/googleads/googleads-mobile-android-examples/blob/ccc290a583d7f552bdcf81ea76adc05beaa43f0b/java/advanced/APIDemo/app/src/main/java/com/google/android/gms/example/apidemo/CollapsibleBannerFragment.java#L63-L91\n\nKotlin \n\n private fun loadCollapsibleBanner() {\n // Create an extra parameter that aligns the bottom of the expanded ad to\n // the bottom of the bannerView.\n val extras = Bundle()\n extras.putString(\"collapsible\", \"bottom\")\n\n // Create an ad request.\n val adRequest =\n AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()\n\n // ...\n\n // Start loading a collapsible banner ad.\n adView.loadAd(adRequest)\n } \n https://github.com/googleads/googleads-mobile-android-examples/blob/ccc290a583d7f552bdcf81ea76adc05beaa43f0b/kotlin/advanced/APIDemo/app/src/main/java/com/google/android/gms/example/apidemo/CollapsibleBannerFragment.kt#L58-L86\n\n\u003cbr /\u003e\n\nAds refreshing behavior\n\nFor apps that configure auto-refresh for banner ads in the\nAdMob web interface, when a collapsible banner ad\nis requested for a banner slot, subsequent ad refreshes won't request\ncollapsible banner ads. This is because showing a collapsible banner on every\nrefresh could have a negative impact on user experience.\n\nIf you want to load another collapsible banner ad later in the session, you can\nload an ad manually with a request containing the collapsible parameter.\n\nCheck if a loaded ad is collapsible\n\nNon-collapsible banner ads are eligible to return for collapsible banner\nrequests to maximize performance. Call `isCollapsible` to check if the last\nbanner loaded is collapsible. If the request fails to load and the previous\nbanner is collapsible, the API returns true. \n\nJava \n\n public void onAdLoaded() {\n Log.i(\n MainActivity.LOG_TAG,\n String.format(\"Ad loaded. adView.isCollapsible() is %b.\", adView.isCollapsible()));\n } \n https://github.com/googleads/googleads-mobile-android-examples/blob/ccc290a583d7f552bdcf81ea76adc05beaa43f0b/java/advanced/APIDemo/app/src/main/java/com/google/android/gms/example/apidemo/CollapsibleBannerFragment.java#L79-L83\n\nKotlin \n\n override fun onAdLoaded() {\n Log.i(\n MainActivity.LOG_TAG,\n \"Ad loaded. adView.isCollapsible() is ${adView.isCollapsible}.\",\n )\n } \n https://github.com/googleads/googleads-mobile-android-examples/blob/ccc290a583d7f552bdcf81ea76adc05beaa43f0b/kotlin/advanced/APIDemo/app/src/main/java/com/google/android/gms/example/apidemo/CollapsibleBannerFragment.kt#L73-L78\n\n\u003cbr /\u003e\n\nMediation\n\nCollapsible banner ads are only available for Google demand. Ads served through\nmediation show as normal, non-collapsible banner ads."]]