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
  • AdsController for preload/show flows
  • AdsBanner widget for pinned banner layouts
  • NativeAdPool and AdsNativeFeedItem for 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

Libraries

ads_core_flutter