NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Community Flutter plugin for Google Mobile Ads Next-Gen SDK (Android): banners, interstitials, rewarded, native templates, picture-in-picture, preloaders, UMP, app open.
Last release 10 days ago
27 Sep 2026
Ships on a steady schedule
a new release about every 5 weeks
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
2 months old
7 releases · first in 2026
One column per month.
Native, banner, and preloaded banner slots use the placeholder until an ad is showing. With no placeholder, the slot is SizedBox.shrink(). Custom or t
SizedBox.shrink(). Custom or
template height applies only while an ad is on screen. Loading, no fill, and
load errors do not keep that height.chore: release 0.2.1 with consent-gated preloads and no second load w…
chore: release 0.2.1 with consent-gated preloads and no second load w…
AdManager.initialize onConsentDismissed. It runs when the consent form
closes, or when no form was required. true means enabled preloaders and
resume app-open load on their own. false means no ad request was sent.onUnavailable and does not load again.interstitial / reward / rewardInterstitial load once only when that
unit's preloader is off or the caller uses a different ad unit.loadAd when the buffer is empty
or register fails. It reports onAdFailedToLoad instead.canRequestAds is true,
including after setAdsEnabled(true). A consent error no longer counts as
permission to request ads.Full Changelog : v0.1.4...v0.2.0
Full Changelog: v0.1.4...v0.2.0
AdManager convenience helper (lib/src/manager/):
initialize — UMP consent (show if required), Mobile Ads init, optional
preloaders via preAdUnitIds, optional resume app-open (never on cold
start), adsEnabled kill-switch, test devices. Never throws.banner / showPreLoadedBanner / native (required
NativeTemplate: .banner / .small / .large or
NativeTemplate.asset(path)).interstitial / reward / rewardInterstitial (poll then
load if needed).showPreLoadedInterstitial / showPreLoadedReward /
showPreLoadedRewardInterstitial (poll buffer; if empty, one
load-then-show — no retry loop).showAppOpen(adUnitId:) and PiP showPopAd / hidePopAd.BannerAdPreloader (start requires AdSize; isAvailable / count /
destroy). BannerAdView.usePreload polls the buffer natively and falls
back to loadAd when empty. AdManager preloadBanner +
preloadBannerSize start that buffer; showPreLoadedBanner attaches with
usePreload: true.lib/src/sdk/ (public API names unchanged).AdManager.native takes a required template only; templateAsset was
removed in favor of NativeTemplate.asset(path).showAppOpen(adUnitId:) is always on-demand load-then-show, even when
showAppOpenOnResume is false. Resume cache is separate and is not consumed
by showAppOpen.Full Changelog : v0.1.3...v0.1.4
Full Changelog: v0.1.3...v0.1.4
PictureInPictureAd
with load / show / hide / dispose, PictureInPictureAdOptions
(position + presentation scope), and PictureInPictureAdListener
(onAdShown / onAdHidden plus shared impression/click/fullscreen callbacks).ca-app-pub-3940256099942544/9657123429.ads-mobile-sdk:1.4.0.Full Changelog : v0.1.1...v0.1.3
Full Changelog: v0.1.1...v0.1.3
play-services-ads / play-services-ads-lite, and
MobileAds.initialize() now returns InitializationStatus with per-adapter
AdapterStatus (AdapterInitializationState: complete, failed,
initializing, notStarted, timedOut, plus isComplete) and
description/latency. Documented Next-Gen adapter setup (Maven
com.google.ads.mediation:* in the host app — not gma_mediation_* /
google_mobile_ads).RequestConfiguration.ageRestrictedTreatment (child / teen /
unspecified) matching GMA Next-Gen setAgeRestrictedTreatment.ConsentDebugGeography.other and regulatedUsState (UMP debug geography).MobileAds.initialize(disableSdkCrashReporting: …)Ad.getAdUnitId() exposed as adUnitId on full-screen ads,
NativeAd.resolvedAdUnitId, and BannerAdController.adUnitIdDISABLE_AD_INSPECTOR manifest flagads-mobile-sdk:1.3.0,
lifecycle-process:2.11.0, kotlinx-coroutines-android:1.11.0 (UMP
remains 4.0.0). Plugin AGP stays on Flutter-ecosystem 8.13.1 (not
host AGP — apps keep their own Gradle/AGP).TagForChildDirectedTreatment / TagForUnderAgeOfConsent — use
AgeRestrictedTreatment.ConsentDebugGeography.notEea — use ConsentDebugGeography.other.scaledDensity and redundant
MarginLayoutParams type check.Full Changelog : https://github.com/Detekfit/admob_flutter_plus/commits/v0.1.1
Full Changelog: https://github.com/Detekfit/admob_flutter_plus/commits/v0.1.1
Initial release. Android-only, built on the Google Mobile Ads Next-Gen SDK (ads-mobile-sdk:1.2.1).
Initial release. Android-only, built on the Google Mobile Ads Next-Gen SDK
(ads-mobile-sdk:1.2.1).
MobileAds.initialize, getVersion, openAdInspector,
setRequestConfiguration, AdRequest, AdError types, and an adId-based
callback channel.ConsentInformation and ConsentForm bridge.AppStateEventNotifier backed by ProcessLifecycleOwner.BannerAdView, BannerAdController (refresh()), full AdSize
surface. AdSize.anchored() maps to getLargeAnchoredAdaptiveBannerAdSize.AdRequest.extras.InterstitialAdPreloader, RewardedAdPreloader,
RewardedInterstitialAdPreloader) — the formats documented by Google's
Next-Gen preloading guides.NativeCustomAdView (android:tag binding). Throws
NativeTemplateException when the asset is missing or required tags are
absent. Optional asset tags include advertiser, price, store, stars, and
media.NativeAdViewStyle.fontFamily (optional). When omitted, template
widgets inherit the host app font from ThemeData / DefaultTextStyle.AdSize, banner retry policy, request/config serialization.TabBarView with single-section navigation so AdMob
PlatformViews are fully disposed before another section mounts.LayoutInflater on a raw
XmlPullParser (which crashed with XmlPullAttributes cannot be cast to XmlBlock$Parser). Templates are inflated programmatically from the asset
XML instead.Your coding agent can read these notes before it upgrades. Set up the MCP server →