flutter_admob_kit 3.0.7 copy "flutter_admob_kit: ^3.0.7" to clipboard
flutter_admob_kit: ^3.0.7 copied to clipboard

AdMob library for Flutter with Banner, Interstitial, Rewarded, App Open, and Native ads support.

flutter_admob_kit #

pub version License: MIT Platform

Same ViewModel pattern. Same callbacks. Same isInProScreen guard. Just Flutter.


✨ Features #

Feature Details
📺 All ad formats Banner, Interstitial, Rewarded, Rewarded Interstitial, App Open, Native
🔄 Auto retry Retries failed loads up to 3 times (2s, 4s, 6s backoff)
⏱️ Expiry handling Discards stale ads automatically — no more black screens
🪙 Coin tracking coins property with onCoinsEarned callback
🛡️ Paywall guard AppOpenAdManager.isInProScreen prevents ads on purchase screens
🔁 Click threshold Show interstitial after N clicks automatically

📦 Installation #

dependencies:
  flutter_admob_kit: ^3.0.6
flutter pub get

🚀 Setup #

Initialize once in main.dart:

import 'package:google_mobile_ads/google_mobile_ads.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await MobileAds.instance.initialize();
  runApp(const MyApp());
}

📱 Usage #

// Swift: BannerAdView(AdUnitID: "...", adLoadFailed: $failed)
BannerAdWidget(
  adUnitId: 'ca-app-pub-XXXX/XXXX',
  onAdLoadFailed: () => setState(() => _showBanner = false),
)

Interstitial Ad #

// Swift: @StateObject var interstitialVM = InterstitialViewModel()
final _vm = InterstitialAdManager();

@override
void initState() {
  super.initState();
  _vm.onAdLoadComplete = () => print('Ad loaded!');
  _vm.onAdDismissed   = () => Navigator.pushNamed(context, '/home');
  _vm.loadAd('ca-app-pub-XXXX/XXXX');
}

// Show immediately
_vm.showAd();

// Show after N clicks (bottom nav, general buttons)
_vm.onClickEvent('ca-app-pub-XXXX/XXXX', threshold: 3);

@override
void dispose() {
  _vm.dispose();
  super.dispose();
}

App Open Ad #

// Swift: @StateObject var appOpenVM = AppOpenAdManager()
final _appOpenVM = AppOpenAdManager();

@override
void initState() {
  super.initState();
  _appOpenVM.onAdDismissed = () => widget.onFinish();
  _appOpenVM.loadAd('ca-app-pub-XXXX/XXXX').then((_) {
    _appOpenVM.showAdIfAvailable('ca-app-pub-XXXX/XXXX');
  });
}

@override
void dispose() {
  _appOpenVM.dispose();
  super.dispose();
}

Prevent on paywall — same as Swift:

@override
void initState() {
  super.initState();
  AppOpenAdManager.isInProScreen = true; // onAppear
}

@override
void dispose() {
  AppOpenAdManager.isInProScreen = false; // onDisappear
  super.dispose();
}

Rewarded Ad #

// Swift: @StateObject var rewardedVM = RewardedViewModel()
final _rewardedVM = RewardedAdManager();

@override
void initState() {
  super.initState();
  _rewardedVM.onAdDismissed = () { };
  _rewardedVM.onCoinsEarned = (coins) => print('Coins: $coins');
  _rewardedVM.loadAd('ca-app-pub-XXXX/XXXX');
}

// Show only when ready
ElevatedButton(
  onPressed: _rewardedVM.isAdReady ? () => _rewardedVM.showAd() : null,
  child: const Text('Watch Ad'),
)

// Listen to coins — Swift: .onChange(of: rewardedVM.coins)
ListenableBuilder(
  listenable: _rewardedVM,
  builder: (_, __) => Text('Coins: ${_rewardedVM.coins}'),
)

Rewarded Interstitial Ad #

// Swift: @StateObject var riVM = RewardedInterstitialViewModel()
final _riVM = RewardedInterstitialAdManager();

@override
void initState() {
  super.initState();
  _riVM.onAdDismissed = () { };
  _riVM.onCoinsEarned = (coins) => print('Coins: $coins');
  _riVM.loadAd('ca-app-pub-XXXX/XXXX');
}

_riVM.showAd();

Native Ad #

// Swift: @StateObject var nativeVM = NativeAdViewModel(adUnitID: "...")
final _nativeVM = NativeAdManager(adUnitId: 'ca-app-pub-XXXX/XXXX');

@override
void initState() {
  super.initState();
  _nativeVM.refreshAd(); // Swift: nativeVM.refreshAd()
}

// In build — Swift: GoogleNativeAdView(nativeViewModel: nativeVM)
ListenableBuilder(
  listenable: _nativeVM,
  builder: (_, __) => NativeAdWidget(manager: _nativeVM, height: 300),
)

@override
void dispose() {
  _nativeVM.dispose();
  super.dispose();
}

📄 License #

MIT © Ameerhamza-tech

1
likes
160
points
304
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

AdMob library for Flutter with Banner, Interstitial, Rewarded, App Open, and Native ads support.

Repository (GitHub)
View/report issues

Topics

#admob #ads #monetization #interstitial #rewarded

License

MIT (license)

Dependencies

flutter, google_mobile_ads

More

Packages that depend on flutter_admob_kit