Flutter广告集成插件adrop_ads_admob的使用
Flutter广告集成插件adrop_ads_admob的使用
Adrop Ads Admob Mediation 插件是一个用于在 Flutter 应用中集成 AdMob 广告的插件。
文档
请参阅我们的集成文档 这里。
示例代码
以下是一个完整的示例代码,展示如何在 Flutter 应用中集成 AdMob 广告。
import 'dart:async';
import 'dart:io';
import 'package:adrop_ads_admob/adrop_ads_admob.dart';
import 'package:flutter/material.dart';
void main() {
// 初始化 Flutter 框架绑定
WidgetsFlutterBinding.ensureInitialized();
// 初始化移动广告
unawaited(MobileAds.instance.initialize());
// 运行应用
runApp(const MyApp());
// 初始化 Adrop SDK
Adrop.initialize(false);
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 定义广告单元 ID
final adUnitId = Platform.isAndroid
? 'ca-app-pub-3141837772329875/5738237096'
: 'ca-app-pub-3141837772329875/5227710010';
// 广告初始化状态
InitializationStatus? status;
// Banner 广告对象
BannerAd? _bannerAd;
// 是否已加载广告
bool _isLoaded = false;
// 加载广告的方法
void loadAd() {
// 创建 Banner 广告对象
_bannerAd = BannerAd(
adUnitId: adUnitId, // 使用定义的广告单元 ID
request: const AdRequest(), // 请求配置
size: AdSize.largeBanner, // 广告尺寸
listener: BannerAdListener( // 广告监听器
onAdLoaded: (ad) {
// 当广告加载成功时打印日志并更新 UI 状态
debugPrint('$ad loaded.');
setState(() {
_isLoaded = true;
});
},
onAdFailedToLoad: (ad, err) {
// 当广告加载失败时打印日志并更新 UI 状态
setState(() {
_isLoaded = false;
});
debugPrint('BannerAd failed to load: $err');
ad.dispose(); // 销毁广告对象
},
),
)..load(); // 加载广告
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Center(child: Text('Adrop for Admob mediation')), // 设置应用标题
),
body: Center(
child: Column(
children: [
// 显示按钮,点击后加载广告
TextButton(onPressed: loadAd, child: const Text("Load Ad")),
const SizedBox(height: 32), // 添加间距
// 如果广告已加载,则显示广告
if (_isLoaded && _bannerAd != null)
Align(
alignment: Alignment.bottomCenter, // 对齐方式
child: SafeArea(
child: SizedBox(
width: _bannerAd!.size.width.toDouble(), // 设置宽度
height: _bannerAd!.size.height.toDouble(), // 设置高度
child: AdWidget(ad: _bannerAd!), // 显示广告
),
),
),
],
),
),
),
);
}
}
更多关于Flutter广告集成插件adrop_ads_admob的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件adrop_ads_admob的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中集成并使用adrop_ads_admob
插件的示例代码。这个插件允许你在Flutter应用中集成Google AdMob广告。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加adrop_ads_admob
依赖:
dependencies:
flutter:
sdk: flutter
adrop_ads_admob: ^latest_version # 请替换为最新的版本号
然后运行flutter pub get
来安装依赖。
2. 配置AdMob
在android/app/src/main/AndroidManifest.xml
中添加必要的AdMob配置,包括你的应用ID(通常是ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx
的一部分):
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx"/>
3. 初始化AdMob
在你的Flutter应用的入口文件(通常是main.dart
)中初始化AdMob:
import 'package:flutter/material.dart';
import 'package:adrop_ads_admob/adrop_ads_admob.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化AdMob
AdropAdmob.instance.init(
appId: 'ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx', // 替换为你的AdMob应用ID
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter AdMob Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
4. 显示Banner广告
在你的主页面或其他页面中显示Banner广告:
import 'package:flutter/material.dart';
import 'package:adrop_ads_admob/adrop_ads_admob.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
BannerAd? _bannerAd;
@override
void initState() {
super.initState();
// 创建Banner广告
_bannerAd = BannerAd(
adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx', // 替换为你的Banner广告单元ID
size: AdSize.banner,
listener: BannerAdListener(
onAdLoaded: () {
print('Banner Ad Loaded');
},
onAdFailedToLoad: (AdLoadError error) {
print('Banner Ad Failed to Load: ${error.message}');
},
onAdOpened: () {
print('Banner Ad Opened');
},
onAdClosed: () {
print('Banner Ad Closed');
},
onAdLeftApplication: () {
print('Banner Ad Left Application');
},
),
);
// 加载广告
_bannerAd?.load();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter AdMob Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// 显示Banner广告
Container(
height: 50,
child: AdWidget(ad: _bannerAd!),
),
],
),
),
);
}
@override
void dispose() {
_bannerAd?.dispose();
super.dispose();
}
}
5. 显示Interstitial广告
如果你还想显示Interstitial广告,可以类似地创建和显示:
import 'package:adrop_ads_admob/adrop_ads_admob.dart';
// 在需要显示Interstitial广告的地方
void _showInterstitialAd() {
InterstitialAd _interstitialAd = InterstitialAd(
adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx', // 替换为你的Interstitial广告单元ID
listener: InterstitialAdListener(
onAdLoaded: () {
_interstitialAd.show();
},
onAdFailedToLoad: (AdLoadError error) {
print('Interstitial Ad Failed to Load: ${error.message}');
},
onAdOpened: () {
print('Interstitial Ad Opened');
},
onAdClosed: () {
print('Interstitial Ad Closed');
},
),
);
// 加载广告
_interstitialAd.load();
}
你可以根据需要在适当的地方调用_showInterstitialAd()
函数来显示Interstitial广告。
这些代码示例展示了如何在Flutter应用中集成和使用adrop_ads_admob
插件来显示Banner和Interstitial广告。请确保你已经替换了所有示例代码中的AdMob广告单元ID为你的实际ID。