monetization_kit 0.0.2 copy "monetization_kit: ^0.0.2" to clipboard
monetization_kit: ^0.0.2 copied to clipboard

A complete Flutter monetization toolkit with AdMob ads, Firebase integration, native ads, custom ad widgets, analytics, remote config, and reusable utilities for building production-ready apps.

Monetization Kit #

A complete production-ready Flutter monetization toolkit with AdMob ads, Firebase integration, native ads, remote config, force updates, analytics, preload systems, frequency management, and reusable monetization utilities.


Features #

Ads #

  • Banner Ads

  • Collapsible Banner Ads

  • Native Ads

    • Small
    • Medium
    • Fullscreen
    • Custom Factory Support
  • Native Popup Ads

  • Interstitial Ads

  • Rewarded Ads

  • App Open Ads

  • App Resume Ads


Smart Ad Systems #

  • Global Ad Controller
  • Premium User Ad Disable
  • Remote Ad Enable/Disable
  • Ad Frequency Manager
  • Placement-based Ad Logic
  • Cooldown Management
  • Retry System
  • Auto Reload After Dismiss
  • Ad Preload Manager
  • Native Ad Cache System
  • Default Shimmer Loading UI

Firebase #

  • Firebase Core
  • Firebase Analytics
  • Firebase Crashlytics
  • Firebase Remote Config

Updates #

  • Android In-App Update
  • iOS App Store Update
  • Force Update System
  • Dynamic Custom Update Dialog

Installation #

dependencies:
  monetization_kit:
    path: ../

Initialize #

await MonetizationKit.initialize(
  config: const MonetizationConfig(
    iosStoreId: 'YOUR_IOS_APP_STORE_ID',

    adUnitIds: AdUnitIds(
      androidBanner: 'ANDROID_BANNER_ID',
      iosBanner: 'IOS_BANNER_ID',

      androidInterstitial: 'ANDROID_INTERSTITIAL_ID',
      iosInterstitial: 'IOS_INTERSTITIAL_ID',

      androidRewarded: 'ANDROID_REWARDED_ID',
      iosRewarded: 'IOS_REWARDED_ID',

      androidAppOpen: 'ANDROID_APP_OPEN_ID',
      iosAppOpen: 'IOS_APP_OPEN_ID',

      androidNativeSmall: 'ANDROID_NATIVE_ID',
      iosNativeSmall: 'IOS_NATIVE_ID',

      androidNativeMedium: 'ANDROID_NATIVE_ID',
      iosNativeMedium: 'IOS_NATIVE_ID',

      androidNativeFull: 'ANDROID_NATIVE_ID',
      iosNativeFull: 'IOS_NATIVE_ID',
    ),
  ),
);

Banner Ads #

Basic Banner #

const BannerAdWidget()

Collapsible Banner #

const BannerAdWidget(
  collapsible: true,
  collapsiblePosition: 'bottom',
)

Native Ads #

Small Native #

const NativeAdWidget(
  type: NativeAdType.small,
  useCache: true,
)

Medium Native #

const NativeAdWidget(
  type: NativeAdType.medium,
  useCache: true,
)

Fullscreen Native #

const NativeAdWidget(
  type: NativeAdType.full,
  useCache: true,
)

Custom Native #

const NativeAdWidget(
  type: NativeAdType.custom,
  factoryId: 'myCustomFactory',
  height: 250,
)

Native Popup Ads #

await NativePopupAd.show(
  context,
  type: NativeAdType.full,
);

Interstitial Ads #

await InterstitialAdService.show(
  context: context,
);

Rewarded Ads #

await RewardedAdService.show(
  onRewardEarned: (reward) {
    debugPrint(
      'Reward: ${reward.amount}'
    );
  },
);

Tap Counter Ads #

final shouldShow =
    AdFrequencyManager.shouldShow(
  placement: 'home_generate_button',
  showEvery: 5,
  cooldown: const Duration(
    seconds: 30,
  ),
);

if (shouldShow) {
  await InterstitialAdService.show(
    context: context,
  );

  AdFrequencyManager.markShown(
    placement: 'home_generate_button',
  );
}

Premium User Disable Ads #

AdController.setPremiumUser(true);

Disable Ads Manually #

AdController.disableAds();

Enable again:

AdController.enableAds();

Force Update #

await ForceUpdateService.checkForUpdate(
  context: context,
);

Analytics #

Screen Tracking #

await AnalyticsService.logScreenView(
  screenName: 'HomeScreen',
);

Custom Event #

await AnalyticsService.logEvent(
  name: 'generate_image_clicked',
);

Ad Impression #

await AnalyticsService.logAdImpression(
  adType: 'interstitial',
);

Remote Config Keys #

Key Type
ads_enabled bool
banner_enabled bool
interstitial_enabled bool
rewarded_enabled bool
native_enabled bool
app_open_enabled bool
interstitial_click_count int
force_update bool
force_update_android_version int
force_update_ios_version int
maintenance_mode bool

Native Ad Factory IDs #

Default factory IDs used by the package:

customNativeAd
customNativeAdSmall
fullscreenNativeAd

Android Native Setup #

Add native factories inside:

android/app/src/main/kotlin/your/package/name/

Add layouts inside:

android/app/src/main/res/layout/

Register factories in MainActivity.kt.

Reference native files are included inside:

example/native_reference/android/

iOS Native Setup #

Add native factories inside:

ios/Runner/

Register factories inside:

AppDelegate.swift

Reference native files are included inside:

example/native_reference/ios/

Included Systems #

  • Retry Config
  • Auto Preload
  • Auto Reload
  • App Resume Ads
  • Native Cache
  • Global Controllers
  • Frequency Logic
  • Cooldown Logic
  • Dynamic Update Dialog
  • Smart Ad Fallbacks

Ad Flow #

App Start
↓
Preload Ads
↓
Show Ad
↓
Dismiss
↓
Auto Preload Again

Smart Fallback Flow #

Rewarded Fail
↓
Interstitial

Interstitial Fail
↓
Native Popup

Example #

Complete example app included inside:

example/

License #

MIT License

2
likes
0
points
362
downloads

Publisher

unverified uploader

Weekly Downloads

A complete Flutter monetization toolkit with AdMob ads, Firebase integration, native ads, custom ad widgets, analytics, remote config, and reusable utilities for building production-ready apps.

Homepage
Repository

License

unknown (license)

Dependencies

firebase_analytics, firebase_core, firebase_crashlytics, firebase_remote_config, flutter, google_mobile_ads, in_app_update_flutter, package_info_plus, shared_preferences, shimmer_animation

More

Packages that depend on monetization_kit