applovin_admob_sdk 1.0.4 copy "applovin_admob_sdk: ^1.0.4" to clipboard
applovin_admob_sdk: ^1.0.4 copied to clipboard

Dual-provider ad SDK for Flutter (AdMob + AppLovin MAX) with built-in safety throttle, VIP bypass, RouteAware banner lifecycle management, and animated TopToast feedback.

applovin_admob_sdk #

pub.dev Flutter License: MIT

Dual-provider Flutter Ad SDK — switch between AdMob and AppLovin MAX with a single line of config. Built-in anti-fraud safety layer, route-aware banner, animated top-center toast feedback, and VIP device bypass.


Features #

Feature Description
Dual Provider Switch AdMob ↔ AppLovin with AdProvider.admob / AdProvider.appLovin
Ad Types App Open, Banner, Interstitial, Rewarded
Safety Layer Throttle, session/hourly/daily caps, CTR fraud detection, progressive cooldown
RouteAware Banner Banner automatically pauses/resumes on navigation
VIP Bypass Specific devices (by GAID) never see ads — for owners/testers
Shimmer Placeholder Beautiful loading state while banner fills
TopToast Animated glassmorphism toast at top-center — auto-shown when rewarded ad unavailable
Localizable Strings adNotReadyMessage + adLoadingMessage in config — no hardcoded English

Installation #

dependencies:
  applovin_admob_sdk: ^1.0.2

Android Setup (required) #

android/app/src/main/AndroidManifest.xml:

<!-- AdMob -->
<meta-data
  android:name="com.google.android.gms.ads.APPLICATION_ID"
  android:value="ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx"/>

<!-- AppLovin -->
<meta-data
  android:name="applovin.sdk.key"
  android:value="YOUR_APPLOVIN_SDK_KEY"/>

<!-- GAID permission (required for VIP bypass + test device detection) -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

Quick Start #

1. Initialize in SplashScreen #

import 'package:applovin_admob_sdk/applovin_admob_sdk.dart';

AdManager().initialize(
  config: AdConfig(
    provider: AdProvider.appLovin,          // or AdProvider.admob
    appLovin: AppLovinConfig(
      sdkKey: 'YOUR_86_CHAR_SDK_KEY',
      bannerId: 'YOUR_BANNER_ID',
      interstitialId: 'YOUR_INTER_ID',
      appOpenId: 'YOUR_APP_OPEN_ID',
      rewardedId: 'YOUR_REWARDED_ID',
    ),
    vipDeviceGaids: ['your-device-gaid'],   // never show ads on these devices
    // Localizable UI strings (override with your i18n solution):
    adNotReadyMessage: 'ad_not_ready'.tr,   // shown in TopToast when ad unavailable
    adLoadingMessage: 'loading'.tr,          // shown in AdLoadingDialog spinner
  ),
  onComplete: (success, gaid) {
    SafeLogger.d('App', 'Ad SDK ready. GAID: \$gaid');
  },
);

2. Add observers to your app #

MaterialApp(
  navigatorObservers: [adRouteObserver, AdScreenRouteLogger()],
  // ...
)

3. Extend AdScreen on screens with ads #

class HomeScreen extends AdScreen {
  const HomeScreen({super.key});

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends AdScreenState<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          buildBanner(),          // ← banner at top or bottom
          Expanded(child: /* ... your content */),
        ],
      ),
    );
  }
}

4. Show Interstitial #

showInterstitialAd(onDone: (wasShown) {
  // navigate or do action here
});

5. Show Rewarded #

showRewardedAd(onEarnedReward: (earned) {
  if (earned) unlockPremiumFeature();
  // else: SDK already showed TopToast "Ad not ready" automatically
});

6. Show App Open (splash) #

AdManager().showAppOpenAd(
  bypassSafety: true,     // true on splash, false on resume
  onAdDismiss: (shown) => navigateToHome(),
);

7. TopToast (manual use) #

TopToast.show(
  context,
  icon: Icons.info_outline,
  message: 'Your message here',
  iconColor: Colors.blue,     // optional, default amber
);

Advanced Configuration #

AdMob Provider #

AdConfig(
  provider: AdProvider.admob,
  admob: AdMobConfig(
    bannerId: kDebugMode
      ? 'ca-app-pub-3940256099942544/6300978111'
      : 'ca-app-pub-xxxxxxxx/xxxxxxxx',
    interstitialId: '...',
    appOpenId: '...',
    rewardedId: '...',
    testDeviceIds: ['YOUR_TEST_DEVICE_HASH'],
  ),
)

Custom Safety Parameters #

// AdSafetyParams currently use defaults — customizable via AdSafetyConfig.init()

License #

MIT © 2026 — see LICENSE

3
likes
0
points
349
downloads

Publisher

unverified uploader

Weekly Downloads

Dual-provider ad SDK for Flutter (AdMob + AppLovin MAX) with built-in safety throttle, VIP bypass, RouteAware banner lifecycle management, and animated TopToast feedback.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

advertising_id, applovin_max, connection_notifier, flutter, google_mobile_ads, shared_preferences

More

Packages that depend on applovin_admob_sdk