Flutter广告集成插件gtads_csj的使用
Flutter广告集成插件gtads_csj的使用
1. 整理后的内容中关于“Flutter广告集成插件gtads_csj的使用”的完整示例demo
import 'package:flutter/material.dart';
import 'package:gtads/gtads_manager.dart';
import 'package:gtads_csj/gtads_csj.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Index(),
);
}
}
class Index extends StatefulWidget {
@override
_IndexState createState() => _IndexState();
}
class _IndexState extends State<Index> {
List<Map<String, bool>> initAd = [];
@override
void initState() {
super.initState();
init();
}
Future<void> init() async {
GTAds.addProvider(GTAdsCsjProvider(
"csj",
"5098580",
"5098580",
ohosId: "",
appName: "unionad",
useMediation: true,
androidPrivacy: AndroidPrivacy(),
iosPrivacy: IOSPrivacy(),
));
initAd = await GTAds.init(isDebug: true);
print(initAd);
setState(() {});
var version = await FlutterUnionad.getSDKVersion();
print("version -> $version");
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: SingleChildScrollView(
child: Column(
children: [
Text("初始化结果$initAd"),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
child: const Text('横幅广告'),
onPressed: () async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const BannerPage(),
),
);
},
),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
child: const Text('激励广告'),
onPressed: () async {
var b = await GTAds.rewardAd(
codes: [
GTAdsCode(
alias: "csj",
probability: 5,
androidId: "945418088",
iosId: "945418088")
],
// 奖励名称
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: "csj",
probability: 5,
androidId: "946201351",
iosId: "946201351")
],
issFull: 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("插屏广告开始请求");
} else {
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(),
),
);
},
),
],
),
),
),
),
);
}
}
2. 参考我提供的内容和示例代码回答“Flutter广告集成插件gtads_csj的使用”对应的内容
更多关于Flutter广告集成插件gtads_csj的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter广告集成插件gtads_csj的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中集成广告插件 gtads_csj
可以帮助你在应用中显示广告。以下是一个简单的代码案例,展示如何使用 gtads_csj
插件来集成广告。
首先,确保你已经在 pubspec.yaml
文件中添加了 gtads_csj
插件的依赖:
dependencies:
flutter:
sdk: flutter
gtads_csj: ^最新版本号 # 请替换为实际的最新版本号
然后,运行 flutter pub get
来获取依赖。
接下来,你需要按照广告平台的要求进行初始化配置。假设你已经获得了广告平台的 appId
和其他必要的配置信息,下面是如何在 Flutter 应用中使用这些信息的示例代码。
1. 初始化广告 SDK
在你的主文件(例如 main.dart
)中,进行 SDK 的初始化:
import 'package:flutter/material.dart';
import 'package:gtads_csj/gtads_csj.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
// 初始化广告 SDK
GtAds.instance.init(
appId: '你的AppId', // 替换为你的AppId
// 其他初始化参数(根据广告平台的要求添加)
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
2. 显示广告(例如横幅广告)
在你的 MyHomePage
或其他页面中,添加代码来显示横幅广告:
import 'package:flutter/material.dart';
import 'package:gtads_csj/gtads_csj.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
BannerAd? _bannerAd;
@override
void initState() {
super.initState();
// 创建横幅广告实例
_bannerAd = BannerAd(
adUnitId: '你的横幅广告单元ID', // 替换为你的横幅广告单元ID
adSize: AdSize.banner, // 或使用其他尺寸,如 AdSize.largeBanner, AdSize.fullBanner
listener: BannerAdListener(
onAdLoaded: () {
print('Banner Ad Loaded');
},
onAdFailedToLoad: (AdError error) {
print('Banner Ad Failed to Load: ${error.message}');
},
onAdOpened: () {
print('Banner Ad Opened');
},
onAdClosed: () {
print('Banner Ad Closed');
_bannerAd?.dispose();
},
),
)..load();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Demo'),
),
body: Center(
child: _bannerAd == null || !_bannerAd!.isLoaded()
? CircularProgressIndicator()
: Container(
height: _bannerAd!.size.height.toDouble(),
child: AdWidget(ad: _bannerAd!),
),
),
);
}
@override
void dispose() {
_bannerAd?.dispose();
super.dispose();
}
}
3. 显示插屏广告(可选)
如果你还需要显示插屏广告,可以类似地创建和显示插屏广告:
import 'package:gtads_csj/gtads_csj.dart';
// 在某个按钮点击事件中显示插屏广告
void _showInterstitialAd() {
InterstitialAd? _interstitialAd = InterstitialAd(
adUnitId: '你的插屏广告单元ID', // 替换为你的插屏广告单元ID
listener: InterstitialAdListener(
onAdLoaded: () {
_interstitialAd!.show();
},
onAdFailedToLoad: (AdError error) {
print('Interstitial Ad Failed to Load: ${error.message}');
},
onAdOpened: () {
print('Interstitial Ad Opened');
},
onAdClosed: () {
print('Interstitial Ad Closed');
_interstitialAd?.dispose();
},
),
)..load();
}
将 _showInterstitialAd
方法绑定到某个按钮的点击事件即可。
注意事项
- 确保你已经正确配置了广告平台的
AndroidManifest.xml
和Info.plist
文件。 - 根据广告平台的要求,可能需要添加网络权限和其他必要的配置。
- 测试广告和实际广告的单元 ID 是不同的,确保在发布应用时使用正确的广告单元 ID。
通过上述步骤,你应该能够在 Flutter 应用中成功集成并使用 gtads_csj
插件来显示广告。