flutter_ads_kit 1.2.0
flutter_ads_kit: ^1.2.0 copied to clipboard
Production-ready Google AdMob for Flutter. Zero-config widgets for Banner, Native, Interstitial, Rewarded, Rewarded Interstitial, and App Open ads. Built-in iOS ATT and GDPR/UMP consent. Handles all e [...]
1.2.0 #
New feature — Ad.Plus / Google Ad Manager (GAM) auto-detection #
- The SDK now automatically detects whether an ad unit ID is AdMob format
(
ca-app-pub-...) or GAM / Ad.Plus format (/networkCode/unitPath) and uses the correct ad class with zero changes in calling code. - Banner: uses
AdManagerBannerAdfor GAM IDs,BannerAdfor AdMob IDs. - Interstitial: uses
AdManagerInterstitialAdfor GAM IDs,InterstitialAdfor AdMob IDs. - Rewarded, Rewarded Interstitial, App Open, Native: these ad types accept
both ID formats natively; upgraded to
AdManagerAdRequest(which extendsAdRequest) so GAM targeting options are available when needed. - New helper
AdUnits.isGamId(String id)— returnstruefor GAM IDs. AdManagerAdRequestis now re-exported from the library for consumers that need to pass custom GAM targeting parameters.- Backwards compatible — existing AdMob-format IDs continue to work with no changes.
1.1.0 #
Bug fixes #
- BannerAdWidget — critical fix:
_adwas never nulled after a load failure, permanently blocking all future reload attempts. AddedsetState(() => _ad = null)inonAdFailedToLoadso the guard condition resets correctly. - BannerAdWidget — added
didChangeAppLifecycleStateoverride: resets the retry counter and retries loading when the app returns to the foreground without an ad. - NativeAdWidget — same app-resume recovery added via
WidgetsBindingObserver. - All full-screen managers —
_isShowing/_isShowingAdnow set immediately before callingshow()instead of inside theonAdShowedFullScreenContentcallback, closing a race window that could allow concurrent double-shows. - All managers — retry cycle no longer stops permanently after
_maxRetries. After exhausting retries the counter resets and loading is rescheduled after a 2-minute back-off (5 minutes for App Open), repeating until the network recovers. - AppOpenAdManager — retry counter is reset on every foreground event so a network-stalled launch can always recover when the user brings the app back.
- AdsManager — now registers as a
WidgetsBindingObserverand calls_preloadAll()on every app-resume event, keeping interstitial and rewarded ads warm without waiting for ashow()call to trigger a reload.
1.0.0 #
- Initial release.
- Banner ads — adaptive and fixed sizes, orientation-reload, exponential retry.
- Native ads — Google Native Templates (zero platform setup) and custom factory mode.
- Interstitial ads — preloading, cooldown, exponential retry.
- Rewarded ads — preloading, exact-once reward callback guarantee.
- Rewarded Interstitial ads — same pattern as rewarded, skippable.
- App Open ads — lifecycle observer, 4 h expiry check, suppress/unsuppress API.
- iOS App Tracking Transparency (ATT) — prompted before first ad request.
- GDPR/UMP consent —
loadAndShowConsentFormIfRequiredwith 10 s safety timeout. - COPPA support —
tagForChildDirectedTreatmentandtagForUnderAgeOfConsent. - Automatic test-ID switching in
kDebugMode. - All ad unit IDs centralised in
AdUnits.