Flutter广告中介插件gma_mediation_pangle的使用
Flutter广告中介插件gma_mediation_pangle的使用
简介
此仓库包含用于与Google Mobile Ads插件一起使用的Mediation Pangle Flutter插件的源代码。它通过Google Mobile Ads SDK启用对Pangle广告网络的中介。
文档
有关如何与google_mobile_ads
插件一起使用的说明,请参阅开发者指南。
下载
请访问pub.dev获取插件的最新版本。
建议改进
如果您需要报告错误、提出功能请求或建议其他改进,请使用GitHub的Issue跟踪器。
其他资源
许可证
本项目采用Apache 2.0许可证。
示例代码
以下是一个简单的示例应用,展示了如何在Flutter项目中使用gma_mediation_pangle
插件。
示例代码
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
late BannerAd _bannerAd;
@override
void initState() {
super.initState();
_createBannerAd();
}
void _createBannerAd() {
_bannerAd = BannerAd(
adUnitId: 'YOUR_BANNER_AD_UNIT_ID',
size: AdSize.banner,
request: AdRequest(),
listener: BannerAdListener(
onAdLoaded: (ad) {
print('Banner ad loaded.');
},
onAdFailedToLoad: (ad, error) {
print('Banner ad failed to load: $error');
ad.dispose();
},
),
)..load();
}
@override
void dispose() {
_bannerAd.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('Test app'),
SizedBox(height: 20),
AdWidget(ad: _bannerAd),
],
),
),
),
);
}
}
说明
- 初始化广告:在
main
函数中调用WidgetsFlutterBinding.ensureInitialized()
以确保Flutter绑定已经初始化,然后调用MobileAds.instance.initialize()
来初始化Google Mobile Ads SDK。 - 创建横幅广告:在
_createBannerAd
方法中创建一个横幅广告,并设置广告单元ID、广告大小、广告请求和广告监听器。 - 加载广告:调用
_bannerAd.load()
方法加载广告。 - 显示广告:在
build
方法中使用AdWidget
组件将广告显示在界面上。 - 清理资源:在
dispose
方法中释放广告资源,避免内存泄漏。
请将YOUR_BANNER_AD_UNIT_ID
替换为您在AdMob控制台中创建的横幅广告单元ID。
希望这个示例能帮助您快速上手使用gma_mediation_pangle
插件。如果有任何问题,欢迎随时提问!
更多关于Flutter广告中介插件gma_mediation_pangle的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告中介插件gma_mediation_pangle的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter项目中集成广告中介插件 gma_mediation_pangle
可以帮助你管理和优化来自不同广告网络的广告请求。以下是一个基本的代码案例,展示了如何在Flutter项目中集成和使用 gma_mediation_pangle
插件。
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 gma_mediation_pangle
依赖:
dependencies:
flutter:
sdk: flutter
gma_mediation_pangle: ^最新版本号 # 请替换为实际的最新版本号
然后运行 flutter pub get
来获取依赖。
2. 配置 Android 项目
在 android/app/build.gradle
中添加以下内容:
android {
...
defaultConfig {
...
manifestPlaceholders = [
// 设置你的穿山甲广告 ID
'TTP_PLATFORM_ID': '你的穿山甲平台ID',
'TTP_CHANNEL_ID': '你的渠道ID'
]
}
}
在 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" />
<application
... >
<!-- 穿山甲广告 SDK 所需的元数据 -->
<meta-data
android:name="com.tencent.mm.opensdk.platform"
android:value="${TTP_PLATFORM_ID}" />
<meta-data
android:name="com.tencent.mm.opensdk.appid"
android:value="你的微信开放平台AppID" /> <!-- 如果需要微信登录功能 -->
</application>
</manifest>
3. 初始化并加载广告
在你的 Flutter 项目中,你可以通过以下方式初始化并加载广告。
初始化广告中介(通常在应用启动时):
import 'package:flutter/material.dart';
import 'package:gma_mediation_pangle/gma_mediation_pangle.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化穿山甲广告中介
GmaPangle.init(
appId: '你的穿山甲AppID',
// 其他可选配置参数
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
加载并显示广告(例如,在一个按钮点击事件中):
import 'package:flutter/material.dart';
import 'package:gma_mediation_pangle/gma_mediation_pangle.dart';
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
BannerAd? _bannerAd;
@override
void initState() {
super.initState();
// 可以在这里预加载广告,或者在需要显示广告时再加载
// _loadBannerAd();
}
void _loadBannerAd() {
BannerAd.createAd(
adSlotId: '你的广告位ID',
adSize: AdSize.banner, // 或者其他尺寸
listener: (AdStatus status, {String? errorMsg}) {
if (status == AdStatus.loaded) {
// 广告加载成功
setState(() {}); // 更新UI以显示广告
} else if (status == AdStatus.failedToLoad) {
// 广告加载失败
print('广告加载失败: $errorMsg');
}
},
).then((ad) {
_bannerAd = ad;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('穿山甲广告中介示例'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
// 显示广告
_loadBannerAd();
},
child: Text('加载并显示Banner广告'),
),
// 显示广告组件(当广告加载成功后)
_bannerAd?.widget ?? Container(),
],
),
),
);
}
@override
void dispose() {
// 释放广告资源
_bannerAd?.dispose();
super.dispose();
}
}
请注意,这只是一个基本的示例,实际应用中你可能需要根据具体需求调整广告位ID、广告尺寸以及其他配置参数。同时,确保你已经在穿山甲平台创建了相应的广告位,并获取了正确的广告位ID和AppID。