Flutter广告集成插件adivery_ads的使用
Flutter广告集成插件adivery_ads的使用
我
moein kasa .@@=> mkasaii16@gmail.com
https://mfuzzy.com
开始
Adivery Ads 是一个 Flutter 插件,它允许你在 Flutter 应用程序中无缝集成 Adivery 广告服务。
特性
- 支持横幅广告、插屏广告和激励视频广告。
- 易于集成,并且可以自定义广告位置。
- 轻量级且高效。
安装
在 pubspec.yaml
文件中添加以下依赖项:
dependencies:
adivery_ads: ^0.0.3
然后运行 flutter pub get
来安装该插件。
使用指南
初始化插件
首先,导入插件:
import 'package:adivery_ads/adivery.dart';
import 'package:adivery_ads/adivery_ads.dart';
在 initState
方法中初始化插件,并开始使用:
void initState() {
initPlatformState();
super.initState();
}
初始化方法如下:
void initPlatformState() {
// 初始化插件并设置日志记录功能
AdiveryPlugin.initialize("7e27fb38-5aff-473a-998f-437b89426f66");
AdiveryPlugin.setLoggingEnabled(true);
// 准备插屏广告和激励视频广告
AdiveryPlugin.prepareInterstitialAd("de5db046-765d-478f-bb2e-30dc2eaf3f51");
AdiveryPlugin.prepareRewardedAd("3f97dc4d-3e09-4024-acaf-931862c03ba8");
// 添加事件监听器
AdiveryPlugin.addListener(
onError: onError,
onInterstitialLoaded: onInterstitialLoaded,
onRewardedClosed: onRewardedClosed,
onRewardedLoaded: (placement) {},
);
}
事件监听器
以下是事件监听器的实现:
static void onInterstitialLoaded(String placement) {
debugPrint("interstitial loaded");
}
static void onRewardedClosed(String placement, bool isRewarded) {
debugPrint("ad rewarded: $isRewarded");
}
static void onError(String placement, String error) {
debugPrint("onError$error");
}
static void _onAdLoaded(Ad ad) {
debugPrint("banner loaded");
}
static void _onAdClicked(Ad ad) {
debugPrint("banner clicked");
}
static void _onError(Ad ad, String error) {
debugPrint("banner load failed $error");
}
主页面
在主页面中展示横幅广告和其他组件:
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
[@override](/user/override)
void initState() {
initPlatformState();
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('你已经按下了按钮多少次:'),
// 展示横幅广告
BannerAd(
"2f71ec44-f30a-4043-9cc1-f32347a07f8b",
BannerAdSize.BANNER,
onAdLoaded: _onAdLoaded,
onAdClicked: _onAdClicked,
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
_incrementCounter();
},
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
void _incrementCounter() {
setState(() {
_counter++;
});
}
}
更多关于Flutter广告集成插件adivery_ads的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件adivery_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用adivery_ads
插件的详细步骤和代码示例。假设你已经有一个Flutter项目并且已经设置好了基本的开发环境。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加adivery_ads
插件的依赖。
dependencies:
flutter:
sdk: flutter
adivery_ads: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
2. 配置Android平台
2.1 在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" />
<!-- 其他配置 -->
</manifest>
2.2 在android/app/build.gradle
中添加ProGuard规则(如果需要)
android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
在proguard-rules.pro
文件中添加:
-keep class com.adivery.** { *; }
3. 配置iOS平台
3.1 在ios/Runner/Info.plist
中添加必要的配置(如果需要)
通常广告SDK不需要特殊的Info.plist
配置,但确保你的应用有网络访问权限。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
4. 初始化Adivery Ads
在你的Flutter项目的main.dart
或任何合适的位置初始化Adivery Ads。
import 'package:flutter/material.dart';
import 'package:adivery_ads/adivery_ads.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化Adivery Ads
AdiveryAds.instance.initialize(
appId: '你的Adivery App ID', // 替换为你的Adivery App ID
testMode: kDebugMode, // 在开发模式下启用测试模式
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
BannerAd? _bannerAd;
@override
void initState() {
super.initState();
// 加载横幅广告
_loadBannerAd();
}
void _loadBannerAd() {
BannerAd.createBannerAd(
adUnitId: '你的横幅广告单元ID', // 替换为你的横幅广告单元ID
adSize: AdSize.banner,
listener: (AdEvent event, Map<String, dynamic>? info) {
print('BannerAd event is $event');
if (event == AdEvent.loaded) {
_bannerAd?.show();
}
},
).then((bannerAd) {
setState(() {
_bannerAd = bannerAd;
});
}).catchError((error) {
print('Failed to load banner ad: $error');
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Adivery Ads Example'),
),
body: Center(
child: _bannerAd != null ? Container() : CircularProgressIndicator(),
),
);
}
@override
void dispose() {
_bannerAd?.dispose();
super.dispose();
}
}
5. 显示广告
在上面的代码中,当横幅广告加载完成时,它会自动显示。你也可以在需要显示广告的地方手动调用_bannerAd?.show()
。
注意事项
- 测试ID与实际ID:确保在发布应用前将测试广告单元ID替换为实际的广告单元ID。
- 错误处理:在生产环境中,添加更详细的错误处理逻辑以确保用户体验。
- 隐私政策:确保你的应用包含隐私政策,并告知用户广告的使用情况。
这样,你就完成了在Flutter项目中集成和使用adivery_ads
插件的基本步骤。希望这些代码示例对你有帮助!