Flutter广告集成插件gtads_sigmob的使用
Flutter广告集成插件gtads_sigmob的使用
GTAds Sigmob广告支持插件
相关插件
使用
pubspec.yaml
// 广告基础库 必须引入
gtads: ^1.5.0
// Sigmob广告
gtads_sigmob: ^1.5.x
引入
import 'package:gtads_sigmob/gtads_sigmob.dart';
使用
仅需通过以下方法插入广告至聚合插件,无需关注具体广告的调用
// 参数依次为 别名、andorid app Id、ios app Id
GTAds.addProvider([
GTAdsSigmobProvider(
// 广告别名 唯一
alias: _alias,
// andorid app id
androidId: '6878',
// ios app id
iosId: '6877',
// andorid app key
androidAppKey: '8ebc1fd1c27e650c',
// ios app key
iosAppKey: 'eccdcdbd9adbd4a7')
]);
设置userid
GTAdsSigmobProvider? provider =
GTAds.getProvider(_alias) as GTAdsSigmobProvider?;
provider?.setUserId("123");
完整示例代码
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:gtads/gtads.dart';
import 'package:gtads_sigmob/gtads_sigmob.dart';
import 'package:gtads_sigmob_example/native_page.dart';
import 'package:gtads_sigmob_example/splash_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Index(),
);
}
}
class Index extends StatefulWidget {
[@override](/user/override)
_IndexState createState() => _IndexState();
}
class _IndexState extends State<Index> {
List<Map<String, bool>> initAd = [];
final String _alias = "sigmob";
[@override](/user/override)
void initState() {
super.initState();
init();
}
Future<void> init() async {
GTAds.addProvider(GTAdsSigmobProvider(
alias: _alias,
androidId: '6878',
iosId: '6877',
androidAppKey: '8ebc1fd1c27e650c',
iosAppKey: 'eccdcdbd9adbd4a7'));
initAd = await GTAds.init(isDebug: true);
GTAdsSigmobProvider? provider =
GTAds.getProvider(_alias) as GTAdsSigmobProvider?;
provider?.setUserId("123");
setState(() {});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('SigMob支持插件'),
),
body: Center(
child: SingleChildScrollView(
child: Column(
children: [
Text("初始化结果$initAd"),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
child: const Text('激励广告'),
onPressed: () async {
var b = await GTAds.rewardAd(
codes: [
GTAdsCode(
alias: _alias,
probability: 5,
androidId: "ea1f8ea2d90",
iosId: "ea1f8f7b662")
],
// 奖励名称
rewardName: "100金币",
// 奖励数量
rewardAmount: 100,
// 用户id
userId: "user100",
// 扩展参数
customData: "123",
timeout: 6,
callBack: GTAdsCallBack(onShow: (code) {
print("激励广告显示 ${code.toJson()}");
}, onFail: (code, message) {
print("激励广告失败 ${code?.toJson()} $message");
}, onClick: (code) {
print("激励广告点击 ${code.toJson()}");
}, onClose: (code) {
print("激励广告关闭 ${code.toJson()}");
}, onVerify:
(code, verify, transId, rewardName, rewardAmount) {
print(
"激励广告奖励 ${code.toJson()} $verify $transId $rewardName $rewardAmount");
}, onExpand: (code, param) {
print("激励广告自定义参数 ${code.toJson()} $param");
}),
);
if (b) {
print("激励广告开始请求");
} else {
print("激励广告开始请求失败");
}
},
),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
child: const Text('插屏广告'),
onPressed: () async {
var b = await GTAds.insertAd(
codes: [
GTAdsCode(
alias: _alias,
probability: 5,
androidId: "ea1f8f45d80",
iosId: "ea1f8fb93fb")
],
isFull: false,
timeout: 6,
callBack: GTAdsCallBack(
onShow: (code) {
print("插屏广告显示 ${code.toJson()}");
},
onFail: (code, message) {
print("插屏广告失败 ${code?.toJson()} $message");
},
onClick: (code) {
print("插屏广告点击 ${code.toJson()}");
},
onClose: (code) {
print("插屏广告关闭 ${code.toJson()}");
},
));
if (b) {
print("插屏广告开始请求");
}
},
),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
child: const Text('开屏广告'),
onPressed: () async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const SplashPage(),
),
);
},
),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
child: const Text('信息流广告'),
onPressed: () async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const NativePage(),
),
);
},
),
],
),
),
),
),
);
}
}
更多关于Flutter广告集成插件gtads_sigmob的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter广告集成插件gtads_sigmob的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成并使用gtads_sigmob
广告插件的详细步骤和相关代码示例。
第一步:添加依赖
首先,在你的Flutter项目的pubspec.yaml
文件中添加gtads_sigmob
依赖:
dependencies:
flutter:
sdk: flutter
gtads_sigmob: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
第二步:配置Android平台
2.1 在android/app/build.gradle
中添加以下内容:
android {
...
defaultConfig {
...
// 添加必要的权限
manifestPlaceholders = [
SIGMOB_APP_KEY: "你的Sigmob应用Key",
SIGMOB_APP_SECRET: "你的Sigmob应用Secret"
]
}
}
2.2 在android/app/src/main/AndroidManifest.xml
中添加以下权限(如果还没有):
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
第三步:配置iOS平台
3.1 在ios/Runner/Info.plist
中添加必要的权限(如果还没有):
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
3.2 在ios/Podfile
中添加以下代码(如果需要):
platform :ios, '10.0'
target 'Runner' do
use_frameworks!
...
# 如果需要处理其他依赖,可以在这里添加
end
第四步:初始化并使用gtads_sigmob
插件
4.1 在你的Dart文件中导入插件:
import 'package:gtads_sigmob/gtads_sigmob.dart';
4.2 初始化插件并加载广告:
void main() {
runApp(MyApp());
// 初始化插件
GtAdsSigmob.instance.init();
// 加载广告示例(如横幅广告)
GtAdsSigmob.instance.loadBannerAd(
unitId: "你的横幅广告Unit ID",
success: (ad) {
print("横幅广告加载成功: $ad");
// 在这里显示广告
},
fail: (error) {
print("横幅广告加载失败: $error");
}
);
}
4.3 显示广告(例如横幅广告):
import 'package:flutter/material.dart';
import 'package:gtads_sigmob/gtads_sigmob.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Sigmob广告集成示例'),
),
body: Center(
child: BannerAdWidget(
adId: "你的横幅广告ID", // 你可以在这里传递广告实例的ID,如果适用
// 或者你可以根据广告加载的状态动态显示或隐藏广告
),
),
),
);
}
}
class BannerAdWidget extends StatefulWidget {
final String adId;
BannerAdWidget({required this.adId});
@override
_BannerAdWidgetState createState() => _BannerAdWidgetState();
}
class _BannerAdWidgetState extends State<BannerAdWidget> {
bool _adLoaded = false;
@override
Widget build(BuildContext context) {
if (!_adLoaded) {
// 广告未加载时显示占位符
return Container(
height: 50, // 根据你的广告尺寸调整
color: Colors.grey,
child: Center(child: Text('广告加载中...')),
);
} else {
// 广告加载成功后显示广告
// 这里假设你已经有了广告实例,可以通过插件的API获取并显示
// 例如: GtAdsSigmob.instance.showBannerAd(adInstance);
// 但由于插件API可能不同,请参考具体文档实现
return Container(
height: 50, // 根据你的广告尺寸调整
child: Text('这里是广告位'), // 占位,实际应为广告视图
);
}
}
// 注意:这里应该有一个方法来监听广告加载状态并更新_adLoaded
// 由于具体API实现可能不同,请参考插件的官方文档
}
注意
- 由于
gtads_sigmob
插件的具体API和实现可能有所不同,上面的代码只是一个示例,你可能需要根据插件的官方文档进行调整。 - 请确保你已经在Sigmob平台上正确配置了应用信息,并获取了必要的Unit ID和Key。
- 广告加载和显示可能会涉及异步操作,请确保正确处理异步逻辑。
希望这些步骤和代码示例能帮助你在Flutter项目中成功集成并使用gtads_sigmob
插件。