Flutter广告集成插件gtads_ks的使用
Flutter广告集成插件gtads_ks的使用
GTAds快手广告支持插件
相关插件
使用
pubspec.yaml
dependencies:
// 广告基础库 必须引入
gtads: ^1.5.0
// 快手广告支持
gtads_ks: ^1.5.x
引入
import 'package:gtads_ks/gtads_ks.dart';
注意事项:
如果Android出现 NoClassDefFoundError
闪退错误:
java.lang.NoClassDefFoundError: Failed resolution of:Landroidx/localbroadcastmanager/content/LocalBroadcastManager
则在 app
下的 build.gradle
中引入库:
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
使用
仅需通过以下方法插入广告至聚合插件,无需关注具体广告的调用:
// 参数依次为 别名、Android app Id、iOS app Id
GTAds.addProvider(GTAdsKSProvider(_alias, "613400004", "613400004"));
广告位使用参考:
广告位使用参考 GTAds
示例代码
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:gtads/gtads.dart';
import 'package:gtads_ks/gtads_ks.dart';
import 'package:gtads_ks_example/native_page.dart';
import 'package:gtads_ks_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 = "ksad";
[@override](/user/override)
void initState() {
super.initState();
init();
}
Future<void> init() async {
GTAds.addProvider(GTAdsKSProvider(_alias, "2296000003", "2296000003"));
initAd = await GTAds.init(isDebug: true);
setState(() {});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('GTAds快手广告'),
),
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: "22960000015",
iosId: "22960000015")
],
// 奖励名称
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: "22960000019",
iosId: "22960000020")
],
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_ks的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件gtads_ks的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
gtads_ks
是一个用于在 Flutter 应用中集成广告的插件。它支持多种广告类型,如开屏广告、横幅广告、插屏广告等。这个插件通常用于帮助开发者在应用中轻松地展示广告并实现盈利。
以下是如何在 Flutter 项目中使用 gtads_ks
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 gtads_ks
插件的依赖。
dependencies:
flutter:
sdk: flutter
gtads_ks: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
以获取依赖。
2. 初始化插件
在使用插件的任何功能之前,你需要在应用的入口(通常是 main.dart
)中初始化插件。你需要提供广告平台的 App ID。
import 'package:gtads_ks/gtads_ks.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 GTAds
await GTAds.init(
appId: 'your_app_id', // 替换为你的广告平台的 App ID
);
runApp(MyApp());
}
3. 加载和展示广告
gtads_ks
支持多种广告类型。以下是如何加载和展示开屏广告、横幅广告和插屏广告的示例。
开屏广告
开屏广告通常在应用启动时展示。
import 'package:gtads_ks/gtads_ks.dart';
GTAdsSplashAd splashAd = GTAdsSplashAd(
adUnitId: 'your_splash_ad_unit_id', // 替换为你的开屏广告单元 ID
callback: GTAdsSplashCallback(
onAdLoad: () {
print('开屏广告加载成功');
},
onAdShow: () {
print('开屏广告展示');
},
onAdClick: () {
print('开屏广告被点击');
},
onAdSkip: () {
print('开屏广告被跳过');
},
onAdClose: () {
print('开屏广告关闭');
},
onAdError: (error) {
print('开屏广告加载失败: $error');
},
),
);
splashAd.load(); // 加载开屏广告
横幅广告
横幅广告通常在页面的顶部或底部展示。
import 'package:gtads_ks/gtads_ks.dart';
GTAdsBannerAd bannerAd = GTAdsBannerAd(
adUnitId: 'your_banner_ad_unit_id', // 替换为你的横幅广告单元 ID
callback: GTAdsBannerCallback(
onAdLoad: () {
print('横幅广告加载成功');
},
onAdShow: () {
print('横幅广告展示');
},
onAdClick: () {
print('横幅广告被点击');
},
onAdClose: () {
print('横幅广告关闭');
},
onAdError: (error) {
print('横幅广告加载失败: $error');
},
),
);
bannerAd.load(); // 加载横幅广告
// 在 Widget 中使用
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Banner Ad Example'),
),
body: Center(
child: bannerAd.getAdWidget(), // 展示横幅广告
),
);
}
插屏广告
插屏广告通常在全屏页面中展示。
import 'package:gtads_ks/gtads_ks.dart';
GTAdsInterstitialAd interstitialAd = GTAdsInterstitialAd(
adUnitId: 'your_interstitial_ad_unit_id', // 替换为你的插屏广告单元 ID
callback: GTAdsInterstitialCallback(
onAdLoad: () {
print('插屏广告加载成功');
},
onAdShow: () {
print('插屏广告展示');
},
onAdClick: () {
print('插屏广告被点击');
},
onAdClose: () {
print('插屏广告关闭');
},
onAdError: (error) {
print('插屏广告加载失败: $error');
},
),
);
interstitialAd.load(); // 加载插屏广告
// 在需要展示插屏广告的地方调用
interstitialAd.show();
4. 处理生命周期
确保在应用的生命周期中正确处理广告的加载和销毁。
[@override](/user/override)
void dispose() {
bannerAd.dispose(); // 销毁横幅广告
interstitialAd.dispose(); // 销毁插屏广告
super.dispose();
}