ads_core_flutter
ads_core_flutter is a mobile-first Flutter ads toolkit for Android and iOS. It wraps google_mobile_ads with a cleaner setup for banner, interstitial, rewarded, app open, and native templates.
Features
- Android and iOS support
- Google test IDs included for fast local testing
AdsControllerfor preload/show flowsAdsBannerwidget for pinned banner layoutsNativeAdPoolandAdsNativeFeedItemfor list/feed insertion- Example app included under
example/
Installation
dependencies:
ads_core_flutter: ^0.1.0
Native setup
Add your AdMob app IDs before release.
Android AndroidManifest.xml
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy" />
iOS Info.plist
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
Quick start
import 'package:ads_core_flutter/ads_core_flutter.dart';
final ads = AdsController(
unitIds: const AdsPlatformUnitIds.googleTest(),
);
await ads.initialize();
await ads.preloadInterstitial();
await ads.preloadRewarded();
await ads.preloadAppOpen();
Banner:
Scaffold(
bottomNavigationBar: AdsBanner(controller: ads),
);
Rewarded:
final shown = await ads.showRewardedIfReady(
onRewarded: (reward) {
debugPrint('Reward: ${reward.amount} ${reward.type}');
},
);
Native feed:
final pool = ads.createNativeAdPool(
layout: AdsNativeLayout.small(),
);
AdsNativeFeedItem(
pool: pool,
position: 3,
)
Native layout presets:
final smallPool = ads.createNativeAdPool(
layout: AdsNativeLayout.small(),
);
final mediumPool = ads.createNativeAdPool(
layout: AdsNativeLayout.medium(),
);
small uses a tighter default content height to avoid extra empty space.
Production IDs
Replace AdsPlatformUnitIds.googleTest() with your own IDs:
const ids = AdsPlatformUnitIds(
android: AdsUnitIds(
banner: 'ca-app-pub-xxx/xxx',
interstitial: 'ca-app-pub-xxx/xxx',
native: 'ca-app-pub-xxx/xxx',
appOpen: 'ca-app-pub-xxx/xxx',
rewarded: 'ca-app-pub-xxx/xxx',
),
ios: AdsUnitIds(
banner: 'ca-app-pub-xxx/xxx',
interstitial: 'ca-app-pub-xxx/xxx',
native: 'ca-app-pub-xxx/xxx',
appOpen: 'ca-app-pub-xxx/xxx',
rewarded: 'ca-app-pub-xxx/xxx',
),
);
Example
Run the included demo:
cd example
flutter run