monetization_kit 0.0.2
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