Flutter广告集成插件bit_ads_package的使用
Flutter广告集成插件bit_ads_package的使用
在本教程中,我们将介绍如何使用bit_ads_package
插件来集成UnityAds和Admob广告到您的Flutter应用程序中。该插件允许您轻松加载和展示插屏广告(Interstitial Ads)、奖励视频广告(Rewarded Ads)以及横幅广告(Banner Ads)。以下是完整的步骤和代码示例。
Getting Started
初始化插件
在main()
函数中初始化插件:
void main() {
// 初始化 UnityAds 和 Google Ads 插件
Unityads.initUnit(); // 初始化 UnityAds
Googleads.init(); // 初始化 Google Ads
runApp(MyApp());
}
UnityAds 使用
加载插屏广告
加载UnityAds插屏广告:
Unityads.unityIntraLoad();
展示插屏广告
展示插屏广告时,您可以监听广告的生命周期事件:
UnityAds.showVideoAd(
placementId: 'PLACEMENT_ID', // 替换为您的广告位ID
onStart: (placementId) => print('Video Ad $placementId started'), // 广告开始播放
onClick: (placementId) => print('Video Ad $placementId click'), // 用户点击广告
onSkipped: (placementId) => print('Video Ad $placementId skipped'), // 用户跳过广告
onComplete: (placementId) => print('Video Ad $placementId completed'), // 广告播放完成
onFailed: (placementId, error, message) =>
print('Video Ad $placementId failed: $error $message'), // 广告加载失败
);
显示横幅广告
在布局中添加横幅广告:
// 在布局中调用 unityBannerShow 方法
Unityads.unityBannerShow;
Admob Ads 使用
添加 Admob 应用 ID
在Android项目的AndroidManifest.xml
文件中添加以下内容:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
</manifest>
加载和展示横幅广告
展示Admob横幅广告:
Googleads.bannerAdsShow();
加载插屏广告和奖励视频广告
加载插屏广告和奖励视频广告:
Googleads.loadReward(); // 加载奖励视频广告
Googleads.loadIntra(); // 加载插屏广告
展示插屏广告
展示插屏广告前检查是否已加载:
final isLoaded = await interstitialAd.isLoaded();
if (isLoaded ?? false) {
interstitialAd.show();
} else {
showSnackBar('Interstitial ad is still loading...');
}
展示奖励视频广告
展示奖励视频广告前检查是否已加载:
if (await rewardAd.isLoaded()) {
rewardAd.show();
} else {
showSnackBar('Reward ad is still loading...');
}
完整示例代码
以下是一个完整的示例代码,展示了如何集成UnityAds和Admob广告:
import 'package:flutter/material.dart';
import 'package:bit_ads_package/bit_ads_package.dart';
void main() {
// 初始化插件
Unityads.initUnit();
Googleads.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
[@override](/user/override)
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool _bannerVisible = false;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bit Ads Package Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
// 展示UnityAds插屏广告
UnityAds.showVideoAd(
placementId: 'PLACEMENT_ID',
onStart: (placementId) => print('Video Ad $placementId started'),
onClick: (placementId) => print('Video Ad $placementId click'),
onSkipped: (placementId) => print('Video Ad $placementId skipped'),
onComplete: (placementId) => print('Video Ad $placementId completed'),
onFailed: (placementId, error, message) =>
print('Video Ad $placementId failed: $error $message'),
);
},
child: Text('Show UnityAds Interstitial'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
// 展示Admob插屏广告
final isLoaded = await interstitialAd.isLoaded();
if (isLoaded ?? false) {
interstitialAd.show();
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Interstitial ad is still loading...')),
);
}
},
child: Text('Show Admob Interstitial'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
// 切换横幅广告的可见性
setState(() {
_bannerVisible = !_bannerVisible;
});
},
child: Text(_bannerVisible ? 'Hide Banner' : 'Show Banner'),
),
if (_bannerVisible) Unityads.unityBannerShow,
],
),
),
);
}
}
更多关于Flutter广告集成插件bit_ads_package的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件bit_ads_package的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
bit_ads_package
是一个用于在 Flutter 应用中集成广告的插件。它支持多种广告类型,如横幅广告、插页式广告、激励视频广告等。以下是如何使用 bit_ads_package
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 bit_ads_package
依赖:
dependencies:
flutter:
sdk: flutter
bit_ads_package: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化广告插件
在应用的 main.dart
文件中初始化广告插件。通常,你需要在 main()
函数中调用初始化方法:
import 'package:bit_ads_package/bit_ads_package.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化广告插件
await BitAdsPackage.initialize(
appId: 'YOUR_APP_ID', // 替换为你的应用ID
testMode: true, // 测试模式,发布时设置为 false
);
runApp(MyApp());
}
3. 显示横幅广告
要在应用中显示横幅广告,可以使用 BannerAdWidget
:
import 'package:bit_ads_package/bit_ads_package.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Banner Ad Example'),
),
body: Column(
children: [
Expanded(
child: Center(
child: Text('Your content here'),
),
),
BannerAdWidget(adUnitId: 'YOUR_BANNER_AD_UNIT_ID'), // 替换为你的横幅广告单元ID
],
),
);
}
}
4. 显示插页式广告
要显示插页式广告,可以使用 InterstitialAd
:
import 'package:bit_ads_package/bit_ads_package.dart';
class MyHomePage extends StatelessWidget {
Future<void> _showInterstitialAd() async {
await InterstitialAd.load(
adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID', // 替换为你的插页式广告单元ID
);
await InterstitialAd.show();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Interstitial Ad Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showInterstitialAd,
child: Text('Show Interstitial Ad'),
),
),
);
}
}
5. 显示激励视频广告
要显示激励视频广告,可以使用 RewardedAd
:
import 'package:bit_ads_package/bit_ads_package.dart';
class MyHomePage extends StatelessWidget {
Future<void> _showRewardedAd() async {
await RewardedAd.load(
adUnitId: 'YOUR_REWARDED_AD_UNIT_ID', // 替换为你的激励视频广告单元ID
);
await RewardedAd.show();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Rewarded Ad Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _showRewardedAd,
child: Text('Show Rewarded Ad'),
),
),
);
}
}
6. 处理广告事件
你可以监听广告事件,例如广告加载成功、广告关闭等:
InterstitialAd.onAdLoaded.listen((event) {
print('Interstitial Ad Loaded');
});
InterstitialAd.onAdClosed.listen((event) {
print('Interstitial Ad Closed');
});
RewardedAd.onAdLoaded.listen((event) {
print('Rewarded Ad Loaded');
});
RewardedAd.onAdClosed.listen((event) {
print('Rewarded Ad Closed');
});