Flutter广告集成插件pangle_global_flutter的使用
Flutter广告集成插件pangle_global_flutter的使用
pangle_global_flutter
Pangle Global Ads by flutter。
项目结构参考 google_mobile_ads。
注意:这不是官方插件。
支持
Android:
- InterstitialAd
- AppOpenAd
iOS:
- 即将推出
开始使用
1. 初始化SDK
在应用启动时调用 initialize
方法初始化SDK。
PangleGlobalFlutter.instance.initialize("8025677");
2. 加载广告
PAGInterstitialAd(插屏广告)
加载插屏广告并监听加载状态。
PAGInterstitialAd.load(
adUnitId: "980088188", // 替换为您的广告单元ID
adLoadCallback: PAGInterstitialAdLoadListener(
onError: (code, message) {
// 广告加载失败时的回调
print("广告加载失败,错误码: $code, 错误信息: $message");
},
onAdLoaded: (ad) {
// 广告成功加载后的回调
print("广告加载成功,可以展示");
ad.show(); // 展示广告
}));
PAGAppOpenAd(开屏广告)
加载开屏广告并监听加载状态。
PAGAppOpenAd.load(
adUnitId: "890000078", // 替换为您的广告单元ID
adLoadCallback: PAGAppOpenAdLoadListener(
onError: (code, message) {
// 广告加载失败时的回调
print("广告加载失败,错误码: $code, 错误信息: $message");
},
onAdLoaded: (ad) {
// 广告成功加载后的回调
print("广告加载成功,可以展示");
ad.show(); // 展示广告
}));
3. 展示广告
广告加载完成后,通过调用 show()
方法展示广告。
ad.show();
完整示例
以下是一个完整的示例代码,展示了如何集成插屏广告和开屏广告。
示例代码
import 'package:flutter/material.dart';
import 'package:pangle_global_flutter/ad_containers.dart';
import 'package:pangle_global_flutter/ad_listeners.dart';
import 'package:pangle_global_flutter/pangle_global_flutter.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
// 初始化SDK
PangleGlobalFlutter.instance.initialize("8025677");
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Pangle广告示例'),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
// 插屏广告按钮
ElevatedButton(
onPressed: () {
// 加载插屏广告
PAGInterstitialAd.load(
adUnitId: "980088188", // 替换为您的插屏广告单元ID
adLoadCallback: PAGInterstitialAdLoadListener(
onError: (code, message) {
print("插屏广告加载失败,错误码: $code, 错误信息: $message");
},
onAdLoaded: (ad) {
print("插屏广告加载成功");
ad.show(); // 展示插屏广告
}));
},
child: const Text('展示插屏广告'),
),
// 开屏广告按钮
ElevatedButton(
onPressed: () {
// 加载开屏广告
PAGAppOpenAd.load(
adUnitId: "890000078", // 替换为您的开屏广告单元ID
adLoadCallback: PAGAppOpenAdLoadListener(
onError: (code, message) {
print("开屏广告加载失败,错误码: $code, 错误信息: $message");
},
onAdLoaded: (ad) {
print("开屏广告加载成功");
ad.show(); // 展示开屏广告
}));
},
child: const Text('展示开屏广告'),
),
],
),
),
),
);
}
}
更多关于Flutter广告集成插件pangle_global_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件pangle_global_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
pangle_global_flutter
是一个用于在 Flutter 应用中集成 Pangle(穿山甲)广告 的插件。Pangle 是字节跳动旗下的广告平台,支持多种广告格式,如 Banner 广告、插屏广告、激励视频广告等。
以下是使用 pangle_global_flutter
插件的基本步骤:
1. 安装插件
首先,在 pubspec.yaml
文件中添加 pangle_global_flutter
插件的依赖:
dependencies:
flutter:
sdk: flutter
pangle_global_flutter: ^latest_version
然后运行 flutter pub get
来安装插件。
2. 初始化 Pangle SDK
在应用启动时,需要初始化 Pangle SDK。通常可以在 main.dart
中进行初始化:
import 'package:flutter/material.dart';
import 'package:pangle_global_flutter/pangle_global_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Pangle SDK
await PangleGlobalFlutter.init(
appId: 'YOUR_APP_ID', // 替换为你的 Pangle App ID
useTextureView: true, // 是否使用 TextureView
appName: 'Your App Name', // 应用名称
allowShowNotify: true, // 是否允许显示通知
debugLog: true, // 是否启用调试日志
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Pangle Demo',
home: HomeScreen(),
);
}
}
3. 加载和显示广告
根据你需要的广告类型,可以使用不同的方法来加载和显示广告。以下是几种常见广告类型的示例:
Banner 广告
import 'package:flutter/material.dart';
import 'package:pangle_global_flutter/pangle_global_flutter.dart';
class BannerAdWidget extends StatefulWidget {
[@override](/user/override)
_BannerAdWidgetState createState() => _BannerAdWidgetState();
}
class _BannerAdWidgetState extends State<BannerAdWidget> {
late BannerAdController _bannerAdController;
[@override](/user/override)
void initState() {
super.initState();
_bannerAdController = BannerAdController(
adUnitId: 'YOUR_BANNER_AD_UNIT_ID', // 替换为你的 Banner Ad Unit ID
adSize: AdSize.banner,
listener: (AdEvent event, {int? code, String? message}) {
print('Banner Ad Event: $event, code: $code, message: $message');
},
);
_bannerAdController.load();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Container(
alignment: Alignment.center,
child: AdWidget(controller: _bannerAdController),
);
}
[@override](/user/override)
void dispose() {
_bannerAdController.dispose();
super.dispose();
}
}
插屏广告
import 'package:flutter/material.dart';
import 'package:pangle_global_flutter/pangle_global_flutter.dart';
class InterstitialAdWidget extends StatelessWidget {
final InterstitialAdController _interstitialAdController = InterstitialAdController(
adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID', // 替换为你的插屏 Ad Unit ID
listener: (AdEvent event, {int? code, String? message}) {
print('Interstitial Ad Event: $event, code: $code, message: $message');
},
);
[@override](/user/override)
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: () {
_interstitialAdController.load();
_interstitialAdController.show();
},
child: Text('Show Interstitial Ad'),
);
}
}
激励视频广告
import 'package:flutter/material.dart';
import 'package:pangle_global_flutter/pangle_global_flutter.dart';
class RewardedVideoAdWidget extends StatelessWidget {
final RewardedVideoAdController _rewardedVideoAdController = RewardedVideoAdController(
adUnitId: 'YOUR_REWARDED_VIDEO_AD_UNIT_ID', // 替换为你的激励视频 Ad Unit ID
listener: (AdEvent event, {int? code, String? message}) {
print('Rewarded Video Ad Event: $event, code: $code, message: $message');
if (event == AdEvent.rewarded) {
// 用户获得了奖励
print('User earned reward!');
}
},
);
[@override](/user/override)
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: () {
_rewardedVideoAdController.load();
_rewardedVideoAdController.show();
},
child: Text('Show Rewarded Video Ad'),
);
}
}