Flutter全球广告集成插件flutter_pangle_global_ads的使用
Flutter全球广告集成插件flutter_pangle_global_ads的使用
📱 Flutter Pangle Global Ads
一款专业的Flutter广告插件(Pangle Global)
♻️ 持续更新 ♻️
🚀 特性 #
🎯 广告演示 #
开屏广告 | 插屏广告 | 奖励视频 | 原生广告 | 横幅广告 |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
📃 文档 #
📌 FlutterAds 插件系列 #
插件 | 描述 |
---|---|
flutter_gromore_ads | 字节跳动、Pangle、GroMore聚合Flutter广告开源插件 ~ 🚀 Pro |
flutter_pangle_ads | 字节跳动、Pangle Flutter广告插件 ~ 🚀 Pro |
flutter_pangle_global_ads | 字节跳动、Pangle Global Flutter广告插件 ~ 🚀 Pro |
flutter_qq_ads | 腾讯广告、GDT、YLH Flutter广告插件 |
flutter_adspark | Ocean Engine/Pangle广告追踪、增长分析、归因报告、事件管理Flutter插件 ~ 🚀 Pro |
flutter_adcontent | Pangle内容输出Flutter插件,支持短视频和短片 ~ 🚀 Pro |
示例代码
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:io' show Platform;
import 'package:flutter_pangle_global_ads/flutter_pangle_global_ads.dart';
import 'theme/style.dart';
import 'ads_config.dart';
void main() async {
// 初始化引擎
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
/// 初始化广告
Future<bool> initAds() async {
bool result = await FlutterPangleGlobalAds.initAd(
appId: AdsConfig.appId,
);
debugPrint("initAd ===> $result");
return result;
}
/// 显示开屏广告
Future<void> showSplashAd() async {
bool result = await FlutterPangleGlobalAds.showSplashAd(
AdsConfig.posIdOpenVertical,
);
debugPrint("showSplashAd ===> $result");
}
/// 请求IDFA权限
Future<void> requestIDFA() async {
bool result = await FlutterPangleGlobalAds.requestIDFA();
debugPrint("requestIDFA ===> $result");
}
/// 设置广告事件监听器
Future<void> setAdEvent() async {
FlutterPangleGlobalAds.onEventListener((event) {
debugPrint('onEventListener posId:${event.posId} action:${event.action}');
if (event is AdErrorEvent) {
debugPrint(
'onEventListener onAdError posId:${event.posId} errCode:${event.errCode} errMsg:${event.errMsg}');
}
});
}
@override
void initState() {
super.initState();
// 设置广告事件监听器
setAdEvent();
// 在初始化成功后显示开屏广告
initAds().then((value) {
if (value) {
showSplashAd();
}
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Pangle Global (FlutterAds)'),
),
body: Column(
children: [
const Padding(
padding: EdgeInsets.all(8.0),
child: Text('Flutter Ads'),
),
kDivider,
if (Platform.isIOS) ...[
kDivider,
ListTile(
title: const Text('请求IDFA权限'),
onTap: () {
requestIDFA();
},
),
],
kDivider,
ListTile(
title: const Text('初始化'),
onTap: () {
initAds();
},
),
kDivider,
ListTile(
title: const Text('开屏广告'),
onTap: () {
showSplashAd();
},
),
],
),
),
);
}
}
说明
上述代码展示了如何在Flutter应用中集成flutter_pangle_global_ads
插件。主要步骤包括:
- 初始化插件。
- 设置广告事件监听器。
- 请求IDFA权限(仅限iOS)。
- 显示开屏广告。
请确保你已经在pubspec.yaml
文件中添加了以下依赖项:
dependencies:
flutter_pangle_global_ads: ^版本号
更多关于Flutter全球广告集成插件flutter_pangle_global_ads的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter全球广告集成插件flutter_pangle_global_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_pangle_global_ads
是一个用于在 Flutter 应用中集成 Pangle(穿山甲)全球广告的插件。Pangle 是字节跳动旗下的广告平台,支持全球范围内的广告展示。通过 flutter_pangle_global_ads
,你可以在 Flutter 应用中轻松集成横幅广告、插屏广告、激励视频广告等。
以下是 flutter_pangle_global_ads
的基本使用步骤:
1. 安装插件
在 pubspec.yaml
文件中添加依赖:
dependencies:
flutter_pangle_global_ads: ^版本号 # 请替换为最新版本
运行 flutter pub get
安装插件。
2. 初始化 Pangle SDK
在应用启动时初始化 Pangle SDK。通常可以在 main.dart
中进行初始化操作。
import 'package:flutter_pangle_global_ads/flutter_pangle_global_ads.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Pangle SDK
await FlutterPangleGlobalAds.init(
appId: 'Your_App_ID', // 替换为你的 Pangle App ID
);
runApp(MyApp());
}
3. 使用广告类型
flutter_pangle_global_ads
支持多种广告类型。以下是常见广告的使用示例:
3.1 横幅广告
import 'package:flutter_pangle_global_ads/flutter_pangle_global_ads.dart';
class BannerAdExample extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Banner Ad')),
body: Column(
children: [
Expanded(
child: Container(),
),
// 加载横幅广告
PangleBannerAdWidget(
adUnitId: 'Your_Banner_Ad_Unit_ID', // 替换为你的横幅广告位 ID
adSize: AdSize.banner, // 广告尺寸
),
],
),
);
}
}
3.2 插屏广告
import 'package:flutter_pangle_global_ads/flutter_pangle_global_ads.dart';
class InterstitialAdExample extends StatefulWidget {
[@override](/user/override)
_InterstitialAdExampleState createState() => _InterstitialAdExampleState();
}
class _InterstitialAdExampleState extends State<InterstitialAdExample> {
PangleInterstitialAd? _interstitialAd;
[@override](/user/override)
void initState() {
super.initState();
_loadInterstitialAd();
}
void _loadInterstitialAd() {
PangleInterstitialAd.load(
adUnitId: 'Your_Interstitial_Ad_Unit_ID', // 替换为你的插屏广告位 ID
onAdLoaded: (ad) {
setState(() {
_interstitialAd = ad;
});
},
onAdFailedToLoad: (error) {
print('Interstitial ad failed to load: $error');
},
);
}
void _showInterstitialAd() {
if (_interstitialAd != null) {
_interstitialAd!.show();
} else {
print('Interstitial ad not ready.');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Interstitial Ad')),
body: Center(
child: ElevatedButton(
onPressed: _showInterstitialAd,
child: Text('Show Interstitial Ad'),
),
),
);
}
}
3.3 激励视频广告
import 'package:flutter_pangle_global_ads/flutter_pangle_global_ads.dart';
class RewardedAdExample extends StatefulWidget {
[@override](/user/override)
_RewardedAdExampleState createState() => _RewardedAdExampleState();
}
class _RewardedAdExampleState extends State<RewardedAdExample> {
PangleRewardedAd? _rewardedAd;
[@override](/user/override)
void initState() {
super.initState();
_loadRewardedAd();
}
void _loadRewardedAd() {
PangleRewardedAd.load(
adUnitId: 'Your_Rewarded_Ad_Unit_ID', // 替换为你的激励视频广告位 ID
onAdLoaded: (ad) {
setState(() {
_rewardedAd = ad;
});
},
onAdFailedToLoad: (error) {
print('Rewarded ad failed to load: $error');
},
);
}
void _showRewardedAd() {
if (_rewardedAd != null) {
_rewardedAd!.show(
onRewarded: (reward) {
print('User earned reward: ${reward.amount} ${reward.type}');
},
);
} else {
print('Rewarded ad not ready.');
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Rewarded Ad')),
body: Center(
child: ElevatedButton(
onPressed: _showRewardedAd,
child: Text('Show Rewarded Ad'),
),
),
);
}
}
4. 处理广告生命周期
确保在页面销毁时释放广告资源,例如在 dispose
方法中调用销毁方法。
[@override](/user/override)
void dispose() {
_interstitialAd?.dispose();
_rewardedAd?.dispose();
super.dispose();
}