Flutter广告预加载插件setupad_prebid_flutter的使用
Flutter广告预加载插件setupad_prebid_flutter的使用
本文档将指导你如何在Flutter应用中使用Setupad的Prebid插件来显示广告。
Setupad Prebid插件
这是Setupad为Flutter开发的一款插件,它允许用户在其Flutter移动应用中展示由Prebid Mobile SDK支持的横幅广告和插屏广告。
插件集成
前置条件
Flutter版本
确保你的Flutter版本至少为2.10.5
。
Android
minSdkVersion
至少为24
compileSdkVersion
至少为33
iOS
- 最低部署目标至少为
12.0
在pubspec.yaml
文件中添加依赖
在你的pubspec.yaml
文件中添加Setupad的Prebid插件,并运行flutter pub get
命令:
dependencies:
setupad_prebid_flutter: 0.0.1
添加应用ID
在添加了插件之后,下一步是在项目中添加Google Ad Manager的应用ID。
Android
在AndroidManifest.xml
文件中添加以下<meta-data>
标签:
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-################~##########"/>
<!--...-->
</application>
iOS
在Info.plist
文件中添加以下键值对:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-################~##########</string>
可选地,你可以添加[SKAdNetworkItems]
项到Info.plist
文件中。
SDK初始化
Prebid Mobile SDK只需初始化一次,并且建议尽早进行初始化。首先,在你的Dart文件中包含以下导入语句:
import 'package:setupad_prebid_flutter/prebid_mobile.dart';
然后,调用initializeSDK()
方法:
const PrebidMobile().initializeSDK(ACCOUNT_ID, TIMEOUT, PBSDEBUG);
ACCOUNT_ID
是你的Prebid账户ID。TIMEOUT
设置竞拍时间(毫秒),竞拍时间过短可能会导致竞拍失败,过长则可能导致广告加载延迟。PBSDEBUG
是一个布尔类型的参数,如果设置为true
,则会在竞拍请求中添加调试标志,用于显示测试广告和查看完整的竞拍响应。如果不需要调试功能,则可以将其设置为false
。
广告集成
目前该插件支持两种广告格式:横幅广告和插屏广告。在创建广告对象时,需要指定广告类型。广告类型可以是小写(“banner”)、大写(“BANNER”)或首字母大写(“Banner”)。
导入广告库
import 'package:setupad_prebid_flutter/prebid_ads.dart';
横幅广告
要显示一个横幅广告,首先需要创建一个PrebidAd
类的对象,然后将其添加到你的widget中:
PrebidAd prebidBanner = const PrebidAd(
adType: 'banner',
configId: 'CONFIG_ID',
adUnitId: 'AD_UNIT_ID',
width: 300,
height: 250,
refreshInterval: 30,
);
//...
@override
Widget build(BuildContext context) {
//...
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
prebidBanner, // 添加横幅广告对象
//...
],
),
),
);
}
AD_UNIT_ID
和CONFIG_ID
是占位符,分别代表广告单元ID和配置ID。- 最小刷新间隔为30秒,最大为120秒。
控制横幅广告拍卖
离开展示横幅广告的页面时,应停止拍卖以避免不必要的竞拍。使用PrebidAd
类的pauseAuction()
和resumeAuction()
方法控制拍卖:
prebidBanner.pauseAuction(); // 暂停拍卖
prebidBanner.resumeAuction(); // 重新开始拍卖
prebidBanner.destroy(); // 销毁拍卖对象
插屏广告
要显示一个插屏广告,首先需要创建一个PrebidAd
类的对象:
PrebidAd prebidInterstitial = const PrebidAd(
adType: 'interstitial',
configId: 'CONFIG_ID',
adUnitId: 'AD_UNIT_ID',
width: 80,
height: 60,
refreshInterval: 0,
);
AD_UNIT_ID
和CONFIG_ID
是占位符。- 刷新间隔设为0,因为插屏广告不会刷新。
- 宽度和高度变量表示插屏广告的最小屏幕宽度和高度百分比。例如,80x60表示插屏广告的最小宽度为屏幕宽度的80%,最小高度为屏幕高度的60%。
如果希望在按钮点击时显示插屏广告,可以使用setState()
方法:
bool _showInterstitial = false;
//...
ElevatedButton(
child: const Text('Press me!'),
onPressed: () {
setState(() {
_showInterstitial = true;
});
},
),
if (_showInterstitial)
prebidInterstitial,
更多关于Flutter广告预加载插件setupad_prebid_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告预加载插件setupad_prebid_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
setupad_prebid_flutter
是一个用于在 Flutter 应用中集成 Prebid 广告预加载功能的插件。以下是使用该插件的详细步骤:
1. 添加依赖项
首先,你需要在 pubspec.yaml
文件中添加 setupad_prebid_flutter
插件的依赖项:
dependencies:
flutter:
sdk: flutter
setupad_prebid_flutter: ^版本号 # 替换为最新版本号
然后运行 flutter pub get
命令来获取依赖项。
2. 初始化插件
在你的 Flutter 应用中,通常是在 main.dart
文件中,初始化 setupad_prebid_flutter
插件:
import 'package:setupad_prebid_flutter/setupad_prebid_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Prebid
await PrebidFlutter.initialize(
accountId: '你的Prebid账户ID',
configId: '你的Prebid配置ID',
);
runApp(MyApp());
}
3. 配置广告请求
在你的应用中,你可以使用 PrebidFlutter
来配置和发起广告请求。以下是一个示例:
import 'package:setupad_prebid_flutter/setupad_prebid_flutter.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Future<void> loadAd() async {
try {
// 配置广告请求
PrebidAdRequest request = PrebidAdRequest(
adUnitId: '你的广告单元ID',
adSize: PrebidAdSize.banner(),
);
// 发起广告请求
PrebidAdResponse response = await PrebidFlutter.loadAd(request);
// 处理广告响应
if (response.isSuccessful) {
// 广告加载成功,可以展示广告
print('广告加载成功: ${response.adContent}');
} else {
// 广告加载失败
print('广告加载失败: ${response.errorMessage}');
}
} catch (e) {
print('广告加载异常: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Prebid Flutter 示例'),
),
body: Center(
child: ElevatedButton(
onPressed: loadAd,
child: Text('加载广告'),
),
),
);
}
}
4. 展示广告
在广告加载成功后,你可以根据广告的类型(如横幅广告、插页式广告等)在适当的位置展示广告内容。例如,如果你加载的是横幅广告,可以在 response.adContent
中获取广告内容,并将其展示在 Container
或 AdWidget
中。
Container(
width: response.adSize.width,
height: response.adSize.height,
child: AdWidget(ad: response.adContent),
)
5. 处理广告生命周期
为了确保广告的正常加载和展示,你还需要处理广告的生命周期事件,如广告展示、点击、关闭等。通常,这些事件可以通过监听 PrebidAdResponse
的相应回调来处理。
6. 调试和测试
在开发和测试阶段,建议启用调试日志以方便排查问题。你可以在初始化时通过 PrebidFlutter.setDebugEnabled(true)
来启用调试日志。
await PrebidFlutter.setDebugEnabled(true);