Flutter广告展示插件display_ads的使用
Flutter广告展示插件display_ads的使用
display_ads
插件是一个用于在 Flutter 应用中轻松展示 Google 移动广告的封装。以下是该插件的基本使用方法。
特性
- 显示横幅广告(Banner Ads)
- 显示插屏广告(Interstitial Ads)
开始使用
平台特定设置
Android
确保你的应用使用的最小 SDK 版本为 19 或更高,并且编译 SDK 版本为 33 或更高。
在 AndroidManifest.xml
文件中添加 AdMob 应用 ID:
<manifest>
<application>
<!-- Sample AdMob app ID for testing : ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
iOS
在 Info.plist
文件中添加 AdMob 应用 ID 和 SKAdNetwork 信息:
<!-- Sample AdMob app ID for testing : ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-################~##########</string>
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<!-- 更多 SKAdNetworkIdentifier -->
</array>
使用插件
初始化插件
首先需要初始化插件,并提供相应的广告单元 ID。
import 'package:display_ads/display_ads.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
DisplayAds.instance.initialize(
isShowAds: true,
interstitialAdUnitIdIOS: "Put your interstitial AdUnitId for iOS here",
interstitialAdUnitIdAndroid: "Put your interstitial AdUnitId for Android here",
bannerAdUnitIdIOS: "Put your banner AdUnitId for iOS here",
bannerAdUnitIdAndroid: "Put your banner AdUnitId for Android here",
);
runApp(const MyApp());
}
显示横幅广告
你可以通过以下方法来显示横幅广告:
DisplayAds.instance.bannerAd()
这个方法返回一个 Widget
,可以将其插入到你的 Flutter 界面中。
显示插屏广告
你可以通过以下方法来加载并显示插屏广告:
DisplayAds.instance.loadInterstitialAds();
此方法将加载插屏广告,并可以在任何你希望展示插屏广告的地方调用它。
完整示例代码
import 'package:display_ads/display_ads.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await DisplayAds.instance.initialize(
isShowAds: true,
interstitialAdUnitIdIOS: 'ca-app-pub-3940256099942544/4411468910',
interstitialAdUnitIdAndroid: 'ca-app-pub-3940256099942544/1033173712',
bannerAdUnitIdIOS: 'ca-app-pub-3940256099942544/2934735716',
bannerAdUnitIdAndroid: 'ca-app-pub-3940256099942544/6300978111',
);
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
void _showInterstitialAds() {
DisplayAds.instance.loadInterstitialAds();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text("Example of Display Ads"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
DisplayAds.instance.bannerAd(), // 显示横幅广告
ElevatedButton(
onPressed: _showInterstitialAds,
child: const Text('Show Interstitial Ads'), // 按钮点击时显示插屏广告
),
],
),
),
),
);
}
}
更多关于Flutter广告展示插件display_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告展示插件display_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成并使用display_ads
插件来展示广告的示例代码。这个示例将涵盖基本的集成步骤和展示横幅广告(Banner Ad)的代码。
1. 添加依赖
首先,在你的Flutter项目的pubspec.yaml
文件中添加display_ads
插件的依赖:
dependencies:
flutter:
sdk: flutter
display_ads: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
2. 配置Android平台
在android/app/src/main/AndroidManifest.xml
中添加必要的权限和广告配置。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourapp">
<!-- 添加必要的权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- 配置广告 -->
<application
...>
<!-- AdMob应用ID -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx"/>
<!-- 其他配置 -->
...
</application>
</manifest>
3. 配置iOS平台
在ios/Runner/Info.plist
中添加必要的广告配置。
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
4. 初始化并展示广告
在你的Flutter代码中,初始化并展示横幅广告。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:display_ads/display_ads.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Ad Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
BannerAd? _bannerAd;
@override
void initState() {
super.initState();
createBannerAd();
}
void createBannerAd() {
BannerAd.createBannerAd(
adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx', // 替换为你的横幅广告单元ID
adSize: AdSize.banner,
request: AdRequest()
..addTestDevice('YOUR_TEST_DEVICE_ID') // 可选:添加测试设备ID进行调试
..targetInfo = targetingInfo,
)
.then((bannerAd) {
_bannerAd = bannerAd;
// 加载广告
_bannerAd!.load();
// 展示广告
_bannerAd!.show(
anchorType: AnchorType.bottom,
anchorOffset: 0.0,
horizontalAlignment: HorizontalAlignment.center,
);
})
.catchError((error) {
print('Failed to load banner ad: $error');
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Ad Demo'),
),
body: Center(
child: Text('Check the bottom for the banner ad!'),
),
);
}
@override
void dispose() {
// 释放广告资源
_bannerAd?.dispose();
super.dispose();
}
}
注意事项
- 广告单元ID:确保使用你自己的AdMob广告单元ID。
- 测试设备ID:在开发过程中,你可以添加测试设备ID来确保广告请求不会计入实际展示次数。你可以通过日志输出找到设备ID。
- 权限和配置:确保在
AndroidManifest.xml
和Info.plist
中正确配置了广告所需的权限和配置。
这只是一个基本的示例,实际项目中你可能需要处理更多的错误处理和广告生命周期管理。希望这个示例能帮助你快速集成并展示广告!