Flutter广告集成插件google_ads_plus的使用
Flutter广告集成插件google_ads_plus的使用
本README描述了该包的功能。如果您将此包发布到pub.dev,则此README的内容将出现在您的包的首页上。
使用此包,开发者只需提供自己的Google广告ID,即可将广告无缝集成到应用中。
特性
- 显示横幅广告
- 显示插屏广告
开始使用
安装
要使用此包,请在pubspec.yaml
文件中添加google_ads_plus
作为依赖项:
dependencies:
google_ads_plus: # 替换为最新版本
然后,在Dart代码中导入该包:
import 'package:google_ads_plus/google_ads_plus.dart';
额外信息
想要了解更多关于如何在应用中实现此包的信息,请查看以下仓库:
时间允许时,我会更新此包以确保其顺畅且高效地使用。
示例代码
以下是一个完整的示例,展示了如何使用google_ads_plus
插件来集成横幅广告和插屏广告。
import 'package:flutter/material.dart';
import 'package:google_ads_plus/google_ads_plus.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'demo.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized(); // 确保Flutter绑定初始化
await MobileAds.instance.initialize(); // 初始化移动广告
runApp(const MyApp()); // 运行应用
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 此小部件是应用的根
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo', // 应用标题
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), // 颜色方案
useMaterial3: true, // 使用Material 3设计
),
home: const MyHomePage(), // 主页面
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, // 垂直居中对齐
children: [
SizedBox(
height: 80, // 横幅广告的高度
child: BannerAdPlus(
unitID: "ca-app-pub-3940256099942544/6300978111", // 添加Google横幅广告ID
adSize: AdSize.fullBanner, // 横幅广告大小
),
),
ElevatedButton( // 按钮用于触发插屏广告
onPressed: () async {
Navigator.push(context, MaterialPageRoute(
builder: (context) {
return demo(); // 跳转到另一个页面
},
));
InterAdPlus().loadAndShowInterstitialAd(
unitID: "ca-app-pub-3940256099942544/1033173712"); // 添加Google插屏广告ID
},
child: Text("点击我展示插屏广告"), // 按钮文本
)
],
),
);
}
}
更多关于Flutter广告集成插件google_ads_plus的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件google_ads_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
google_ads_plus
是一个Flutter插件,用于在Flutter应用中集成Google广告。它提供了对Google Ads的简化访问和集成,支持横幅广告、插页式广告、激励广告等多种广告类型。以下是如何在Flutter项目中集成和使用 google_ads_plus
插件的步骤。
1. 添加依赖
首先,在你的Flutter项目的 pubspec.yaml
文件中添加 google_ads_plus
插件的依赖:
dependencies:
flutter:
sdk: flutter
google_ads_plus: ^latest_version
替换 latest_version
为最新的版本号。你可以在 pub.dev 上查找最新的版本。
然后运行 flutter pub get
来安装依赖。
2. 配置Google Ads
确保你已经在 Google AdMob 上创建了应用,并且获取到了广告单元ID(Ad Unit ID)。
3. 初始化插件
在你的Flutter应用启动时,初始化 google_ads_plus
插件。通常可以在 main.dart
文件中进行初始化。
import 'package:google_ads_plus/google_ads_plus.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await GoogleAdsPlus.initialize(
appId: 'your_app_id', // 你的AdMob App ID
testDeviceIds: ['your_test_device_id'], // 测试设备ID
);
runApp(MyApp());
}
替换 your_app_id
和 your_test_device_id
为实际的值。your_test_device_id
可以在运行应用时从日志中获取。
4. 显示横幅广告
要在应用中显示横幅广告,可以使用 BannerAdWidget
。
import 'package:flutter/material.dart';
import 'package:google_ads_plus/google_ads_plus.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Ads Plus Example'),
),
body: Column(
children: [
Expanded(
child: Center(
child: Text('Hello, World!'),
),
),
BannerAdWidget(
adUnitId: 'your_banner_ad_unit_id', // 你的横幅广告单元ID
adSize: AdSize.banner,
),
],
),
);
}
}
替换 your_banner_ad_unit_id
为你的横幅广告单元ID。
5. 显示插页式广告
要在应用中显示插页式广告,可以使用 InterstitialAd
。
import 'package:flutter/material.dart';
import 'package:google_ads_plus/google_ads_plus.dart';
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
InterstitialAd? _interstitialAd;
[@override](/user/override)
void initState() {
super.initState();
_loadInterstitialAd();
}
Future<void> _loadInterstitialAd() async {
_interstitialAd = InterstitialAd(
adUnitId: 'your_interstitial_ad_unit_id', // 你的插页式广告单元ID
request: AdRequest(),
listener: AdListener(
onAdLoaded: (Ad ad) {
print('Ad loaded.');
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
ad.dispose();
print('Ad failed to load: $error');
},
onAdClosed: (Ad ad) {
ad.dispose();
_loadInterstitialAd();
},
),
);
await _interstitialAd?.load();
}
void _showInterstitialAd() {
_interstitialAd?.show();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Ads Plus Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showInterstitialAd,
child: Text('Show Interstitial Ad'),
),
),
);
}
}
替换 your_interstitial_ad_unit_id
为你的插页式广告单元ID。
6. 显示激励广告
要在应用中显示激励广告,可以使用 RewardedAd
。
import 'package:flutter/material.dart';
import 'package:google_ads_plus/google_ads_plus.dart';
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
RewardedAd? _rewardedAd;
[@override](/user/override)
void initState() {
super.initState();
_loadRewardedAd();
}
Future<void> _loadRewardedAd() async {
_rewardedAd = RewardedAd(
adUnitId: 'your_rewarded_ad_unit_id', // 你的激励广告单元ID
request: AdRequest(),
listener: AdListener(
onAdLoaded: (Ad ad) {
print('Ad loaded.');
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
ad.dispose();
print('Ad failed to load: $error');
},
onAdClosed: (Ad ad) {
ad.dispose();
_loadRewardedAd();
},
onRewardedAdUserEarnedReward: (RewardedAd ad, RewardItem reward) {
print('User earned reward: ${reward.amount} ${reward.type}');
},
),
);
await _rewardedAd?.load();
}
void _showRewardedAd() {
_rewardedAd?.show();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Ads Plus Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showRewardedAd,
child: Text('Show Rewarded Ad'),
),
),
);
}
}
替换 your_rewarded_ad_unit_id
为你的激励广告单元ID。
7. 处理生命周期
确保在应用的生命周期中正确处理广告的加载、显示和释放。可以在 dispose
方法中释放广告资源。
[@override](/user/override)
void dispose() {
_interstitialAd?.dispose();
_rewardedAd?.dispose();
super.dispose();
}