Installation #
Add this to your pubspec.yml dependencies:
admob_flutter: "^0.3.1"
Android
Update your AndroidManifest.xml #
Add your AdMob App ID to your app's AndroidManifest.xml file by adding the
You can use this test App ID from Admob for development:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
</manifest>
import 'package:admob_flutter/admob_flutter.dart';
@override
void initState() {
Admob.initialize(getAppId());
super.initState();
bannerSize = AdmobBannerSize.BANNER;
}
getAppId
String getAppId() {
if (Platform.isIOS) {
return 'cca-app-pub-3596109534448842~4370710492';
} else if (Platform.isAndroid) {
return 'cca-app-pub-3596109534448842~4370710492';
}
return null;
}
AdmobBannerSize bannerSize;
getBannerAdUnitId
String getBannerAdUnitId() {
if (Platform.isIOS) {
return 'ca-app-pub-3596109534448842/5339235282';
} else if (Platform.isAndroid) {
return 'ca-app-pub-3596109534448842/53392352812;
}
return null;
}
Widget****
child: Center(
child: AdmobBanner(
adUnitId: getBannerAdUnitId(),
adSize: bannerSize,
listener: (AdmobAdEvent event,
Map<String, dynamic> args) {
handleEvent(event, args, 'Banner');
},
)),
void showSnackBar(String content) {
scaffoldState.currentState.showSnackBar(SnackBar(
content: Text(content),
duration: Duration(milliseconds: 1500),
));
}
GlobalKey<ScaffoldState> scaffoldState = GlobalKey();
void handleEvent(
AdmobAdEvent event, Map<String, dynamic> args, String adType) {
switch (event) {
case AdmobAdEvent.loaded:
showSnackBar('New Admob $adType Ad loaded!');
break;
case AdmobAdEvent.opened:
showSnackBar('Admob $adType Ad opened!');
break;
case AdmobAdEvent.closed:
showSnackBar('Admob $adType Ad closed!');
break;
case AdmobAdEvent.failedToLoad:
showSnackBar('Admob $adType failed to load. :(');
break;
case AdmobAdEvent.rewarded:
showDialog(
context: scaffoldState.currentContext,
builder: (BuildContext context) {
return WillPopScope(
child: AlertDialog(
content: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text('Reward callback fired. Thanks Andrew!'),
Text('Type: ${args['type']}'),
Text('Amount: ${args['amount']}'),
],
),
),
onWillPop: () async {
scaffoldState.currentState.hideCurrentSnackBar();
return true;
},
);
},
);
break;
default:
}
}