preload_google_ads 1.0.6
preload_google_ads: ^1.0.6 copied to clipboard
A high-performance Flutter plugin to preload AdMob ads for instant display. Supports App Open, Interstitial, Rewarded, Native, and Banner ads with efficient background loading.
Preload Google Ads #
A high-performance Flutter plugin for background preloading of Google Mobile Ads (AdMob). Deliver a seamless, zero-latency experience by fetching ads before your users even need them.
Key Features #
- Zero Latency: Preload ads during app startup for immediate display.
- All Formats Supported: App Open, Interstitial, Rewarded, Native (Small/Medium), and Banner.
- Auto-Reloading: Automatically fetches fresh ads after display or failure.
- Click Counter Logic: Customizable frequency control (e.g., show every 3rd click).
- Deep Customization: Style native ads via Kotlin (Android) or Flutter views.
- Developer Friendly: Built-in Ad Counter for real-time tracking and debugging.
- Fallback Ready: Defaults to test ad IDs for safe and easy development.
Preview #
Below are some previews showing ad preloading in action. Notice the instant display!
Getting Started #
1. Installation #
Add this to your pubspec.yaml:
dependencies:
preload_google_ads: ^1.0.3
Or run:
flutter pub add preload_google_ads
2. Platform Setup #
Important: Configure your AdMob App ID in both Android and iOS projects to avoid crashes.
Android
Update android/app/src/main/AndroidManifest.xml:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
iOS
Update ios/Runner/Info.plist:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Basic Usage #
Initialize the plugin in your main() function. This kicks off the background preloading immediately.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialize and start preloading
await PreloadGoogleAds.instance.initialize(
adConfigData: AdConfigData(
adIDs: AdIDS(
appOpenId: AdTestIds.appOpen,
bannerId: AdTestIds.banner,
nativeId: AdTestIds.native,
interstitialId: AdTestIds.interstitial,
rewardedId: AdTestIds.rewarded,
),
),
);
runApp(const MyApp());
}
Advanced Configuration #
Click Counters & AD Flags #
Control specifically which ads to show and how frequently they appear.
PreloadGoogleAds.instance.initialize(
adConfigData: AdConfigData(
adCounter: AdCounter(
interstitialCounter: 2, // Show every 2 clicks
nativeCounter: 0, // Show every time
rewardedCounter: 1, // Show every click
),
adFlag: AdFlag(
showAd: true,
showBanner: true,
showInterstitial: true,
showNative: true,
showOpenApp: true,
showRewarded: true,
showSplashAd: false,
),
),
);
Native Ad Styling #
Customize the appearance of native ads to match your branding perfectly.
NativeADLayout(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.grey.withOpacity(0.5)),
borderRadius: BorderRadius.circular(12),
),
adLayout: AdLayout.nativeLayout, // Uses Kotlin layout on Android
customNativeADStyle: CustomNativeADStyle(
buttonBackground: Colors.blueAccent,
titleColor: Colors.black,
),
)
Showing Ads #
| Format | Method |
|---|---|
| Native | PreloadGoogleAds.instance.showNativeAd(nativeADType: NativeADType.medium) |
| Banner | PreloadGoogleAds.instance.showBannerAd() |
| Interstitial | PreloadGoogleAds.instance.showInterstitialAd(callBack: (ad, error) => ...) |
| Rewarded | PreloadGoogleAds.instance.showRewardedAd(callBack: (ad, error) => ..., onReward: (ad, item) => ...) |
| App Open | PreloadGoogleAds.instance.showOpenApp() |
Tip
Pro Tip: To show an ad during navigation, place your navigation logic inside the callBack. This ensures the transition happens exactly when the ad is closed or fails to load.
Splash Ad Callback #
Show an app open ad immediately on splash and navigate when ready.
PreloadGoogleAds.instance.setSplashAdCallback((ad, error) {
// Navigate to Home after splash ad completes
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => const HomeView()));
});
Diagnostic Counter #
Enable the built-in counter to track ad status in real-time during development.
PreloadGoogleAds.instance.showAdCounter(showCounter: true);
Important
Ad IDs: Always replace the test IDs with your production AdMob IDs before publishing. Using test IDs in production may result in no ads being served or policy violations.
Support & Contributions #
We welcome contributions!
- Bugs: Open an issue on GitHub.
- Feature Request: Open a discussion.
- Starred: If this package helps you, give it a ⭐ on pub.dev.
License & Contact #
- License: MIT License
- Author: CoddyNet Infotech
- Email: coddynet@gmail.com
- GitHub: https://github.com/coddyNet
Built with passion for Flutter Developers seeking top-tier performance.