Flutter广告集成插件flutter_good_ads的使用
Flutter广告集成插件flutter_good_ads的使用
功能特性
Banner广告
- 自动配置和加载
- 安全加载,具有间隔时间
插屏广告
- 安全加载和展示,具有间隔时间
开始使用(更多详情请参阅示例)
导入库
在 pubspec.yaml
文件中添加依赖:
flutter pub add flutter_good_ads
并在你的 Dart 文件中导入:
import 'package:flutter_good_ads/flutter_good_ads.dart';
初始化
确保在应用启动时初始化广告服务:
void main() {
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
runApp(MyApp());
}
使用方法
Banner广告
将以下代码块放置在你希望展示广告的位置:
GoodBanner(
adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 替换为你的广告单元ID
adRequest: AdRequest(),
interval: 60000, // 广告刷新间隔时间(单位:毫秒)
adSize: AdSize.banner,
)
插屏广告
- 声明一个
GoodInterstitial
对象
final interstitialAd = const GoodInterstitial(
adUnitId: 'ca-app-pub-3940256099942544/8691691433', // 替换为你的广告单元ID
adRequest: AdRequest(),
interval: 60000, // 广告刷新间隔时间(单位:毫秒)
);
- 在组件生命周期内调用
load()
方法
[@override](/user/override)
void initState() {
super.initState();
interstitialAd.load();
}
- 在你需要展示广告的地方调用
show()
方法
if (_counter % 5 == 0) {
interstitialAd.show(reloadAfterShow: true);
}
示例代码
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'package:flutter_good_ads/flutter_good_ads.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(useMaterial3: true),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
final interstitialAd = const GoodInterstitial(
adUnitId: 'ca-app-pub-3940256099942544/8691691433', // 替换为你的广告单元ID
adRequest: AdRequest(),
interval: 60000, // 广告刷新间隔时间(单位:毫秒)
);
[@override](/user/override)
void initState() {
super.initState();
interstitialAd.load();
}
void _incrementCounter() {
setState(() {
_counter++;
if (_counter % 5 == 0) {
interstitialAd.show(reloadAfterShow: true);
}
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('你已经点击了按钮这么多次:'),
Text('$_counter', style: Theme.of(context).textTheme.headline4),
const GoodBanner(
adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 替换为你的广告单元ID
adRequest: AdRequest(),
interval: 60000, // 广告刷新间隔时间(单位:毫秒)
adSize: AdSize.banner,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: '增加',
child: const Icon(Icons.add),
),
);
}
}
更多关于Flutter广告集成插件flutter_good_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件flutter_good_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成并使用flutter_good_ads
插件的一个示例代码案例。这个插件通常用于在Flutter应用中集成和管理广告。
首先,确保你已经在pubspec.yaml
文件中添加了flutter_good_ads
依赖:
dependencies:
flutter:
sdk: flutter
flutter_good_ads: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要进行一些初始化工作,包括配置广告平台(如AdMob)的ID。以下是一个基本的示例,展示了如何初始化flutter_good_ads
并在应用中显示一个横幅广告。
1. 初始化插件
在你的主应用文件(通常是main.dart
)中,导入flutter_good_ads
包并进行初始化。
import 'package:flutter/material.dart';
import 'package:flutter_good_ads/flutter_good_ads.dart';
void main() {
// 初始化广告插件
FlutterGoodAds.instance.initialize(
appId: '你的AdMob应用ID', // 替换为你的AdMob应用ID
testDevices: Platform.isAndroid
? ['YOUR_ANDROID_TEST_DEVICE_ID'] // 可选,用于测试设备
: [],
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
2. 显示横幅广告
在你的MyHomePage
类中,你可以使用BannerAd
组件来显示横幅广告。
import 'package:flutter/material.dart';
import 'package:flutter_good_ads/flutter_good_ads.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
BannerAd? _bannerAd;
@override
void initState() {
super.initState();
// 创建横幅广告实例
_bannerAd = BannerAd(
adUnitId: '你的横幅广告单元ID', // 替换为你的横幅广告单元ID
adSize: AdSize.banner,
listener: BannerAdListener(
onAdLoaded: () {
print('Banner Ad Loaded');
},
onAdFailedToLoad: (AdError error) {
print('Banner Ad Failed to Load: ${error.message}');
},
onAdOpened: () {
print('Banner Ad Opened');
},
onAdClosed: () {
print('Banner Ad Closed');
},
),
);
// 加载广告
_bannerAd?.load();
}
@override
void dispose() {
// 释放广告资源
_bannerAd?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Good Ads Example'),
),
body: Center(
child: _bannerAd?.widget ?? CircularProgressIndicator(),
),
);
}
}
在这个示例中,我们创建了一个BannerAd
实例,并在initState
方法中加载广告。如果广告加载成功,_bannerAd?.widget
将被用于显示广告;如果广告尚未加载,则显示一个CircularProgressIndicator
。
注意事项
- 广告单元ID:确保你已经从AdMob或其他广告平台获取了正确的广告单元ID。
- 测试设备:在开发过程中,你可以添加测试设备ID以避免产生不必要的广告点击费用。
- 隐私政策:在实际应用中显示广告时,确保你的应用有一个隐私政策,并告知用户有关广告的使用情况。
这只是一个基本的示例,flutter_good_ads
插件还支持更多类型的广告(如插屏广告和全屏视频广告),你可以根据文档进一步集成和使用这些功能。