Flutter GDPR广告合规插件gdpr_ads的使用
Flutter GDPR广告合规插件gdpr_ads的使用
GDPR服务,GDPR中间页面,Admob管理用于加载和展示广告。
特性
- GDPR管理器。
- 广告加载、展示和返回结果。
- GDPR和广告在失败时优雅地处理。
开始使用
此包包含两个组件:GDPR和广告。两者可以单独使用。下面的例子将结合这两个组件。
步骤:
- 在Admob账户中创建一个Ad-ID并设置GDPR消息。
- 更新
AndroidManifest.xml
和build.gradle
文件。 - 配置
MaterialApp(home: GdprScreenManager())
。 - 展示广告。
- 按需更新或重置GDPR。
初始化GDPR和广告
添加一个导航方法,该方法将在GDPR屏幕后导航到下一个屏幕。在下面的例子中,将AfterGdprScreen()
替换为你的自定义小部件。
设置广告单元和测试设备ID。下面的广告单元是Admob演示广告单元,可以安全使用。
如果用户从未与GDPR交互过,则会显示GDPR对话框。
如果用户已经与GDPR交互过,则不会显示GDPR对话框。
void main() async {
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: GdprScreenManager(
(BuildContext context) =>
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) =>
const AfterGdprScreen())),
bannerIds: ["ca-app-pub-3940256099942544/6300978111"],
interstitialIds: ["ca-app-pub-3940256099942544/1033173712"],
interRewardIds: ["ca-app-pub-3940256099942544/5354046379"],
debugTestDeviceIds: ["... YOUR TEST DEVICE ID HERE ..."],
// 测试时强制或取消强制GDPR对话框
debugGeography: GdprDebugGeography.insideEea,
).getInitialGdprScreen(),
);
}
}
重新访问GDPR
如果用户从未与GDPR交互过,则会显示GDPR对话框。
如果用户已经与GDPR交互过,则不会显示GDPR对话框。
if(GdprService.isUserUnderGdpr()) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) =>
GdprScreenManager.initialGdprScreen(),
),
);
}
更新现有的GDPR
无论用户是否已经与GDPR交互过,都会显示GDPR对话框。
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) =>
GdprScreenManager.updateGdprScreen(),
)
)
重置并重新访问GDPR
无论用户是否已经与GDPR交互过,都会重置GDPR对话框并重新显示GDPR对话框。
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) =>
GdprScreenManager.initialResetGdprScreen(),
),
)
展示广告
如果没有提供adUnitId
,则会显示第一个可用的广告单元。
展示横幅广告
在kDebugMode
下,AdBanner
将显示额外信息。
Scaffold(body: AdBanner('... Ad ID ...'));
// 或者
Scaffold(body: AdBanner());
展示插屏广告
final ResponseInterstitial result
= await AdService().showInterstitial('... Ad ID ...');
// 或者
final ResponseInterstitial result
= await AdService().showInterstitial();
展示激励插屏广告
激励插屏广告需要一个带有计时器的对话框。
对话框的外观应与你的应用设计相匹配。
为了方便起见,将类RewardedInterstitialDialog
复制到你的项目中,并根据需要美化AlertDialog
内部。源码可以在这里找到。
然后,使用以下代码调用AdService().showInterstitialRewarded()
,并传递你的对话框作为参数。
final String? adUnitId = null;
final ResponseInterstitialRewarded result
= await AdService().showInterstitialRewarded(
context,
const RewardedInterstitialDialog(
adUnitId: adUnitId,
countdownSeconds:5,
),
adUnitId: adUnitId,
);
响应详情
返回的响应具有详细的状态枚举,描述了结果。
final ResponseInterstitialRewarded result =
await AdService().showInterstitialRewarded(
context,
const RewardedInterstitialDialog(
countdownSeconds: 5,
),
);
if (
result.status == StatusInterstitialRewarded.displaySuccess ||
result.status ==
StatusInterstitialRewarded.displayDeniedProgrammatically ||
result.status ==
StatusInterstitialRewarded.displayFailedUnspecificReasons ||
result.status == StatusInterstitialRewarded.notLoadedInitialized ||
result.status == StatusInterstitialRewarded.notLoadedAdIdNotSet ||
result.status == StatusInterstitialRewarded.notLoadedButTryingTo ||
result.status == StatusInterstitialRewarded.notLoadedGenerally ||
result.status == StatusInterstitialRewarded.notLoadedAdIdNotSet
) {
// 广告已展示或因某些技术原因不可用
} else {
// 用户取消了广告
}
更多关于Flutter GDPR广告合规插件gdpr_ads的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter GDPR广告合规插件gdpr_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter应用中处理GDPR合规性,特别是广告合规性时,gdpr_ads
插件可以帮助你管理用户同意和广告展示。以下是使用gdpr_ads
插件的步骤和注意事项。
1. 添加依赖
首先,在pubspec.yaml
文件中添加gdpr_ads
插件的依赖:
dependencies:
flutter:
sdk: flutter
gdpr_ads: ^1.0.0 # 使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化插件
在使用插件之前,你需要在应用的启动阶段初始化gdpr_ads
插件。通常可以在main.dart
文件中进行初始化。
import 'package:flutter/material.dart';
import 'package:gdpr_ads/gdpr_ads.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化GDPR插件
await GdprAds.initialize();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'GDPR Ads Demo',
home: HomeScreen(),
);
}
}
3. 显示GDPR同意对话框
在用户首次启动应用或需要更新同意时,你需要显示GDPR同意对话框。可以使用GdprAds.showConsentDialog
方法来显示对话框。
import 'package:flutter/material.dart';
import 'package:gdpr_ads/gdpr_ads.dart';
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('GDPR Ads Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 显示GDPR同意对话框
bool consentGiven = await GdprAds.showConsentDialog(context);
if (consentGiven) {
// 用户同意,可以展示广告
} else {
// 用户拒绝,不能展示广告
}
},
child: Text('Show GDPR Consent Dialog'),
),
),
);
}
}
4. 检查用户同意状态
在展示广告之前,你可以检查用户是否已经同意了GDPR条款。
bool hasConsent = await GdprAds.hasConsent();
if (hasConsent) {
// 可以展示广告
} else {
// 不能展示广告
}
5. 重置GDPR同意状态
在某些情况下,你可能需要重置用户的GDPR同意状态。可以使用GdprAds.resetConsent
方法。
await GdprAds.resetConsent();
6. 集成广告SDK
确保你已经按照广告SDK的文档(如AdMob、Facebook Audience Network等)正确集成了广告SDK,并在用户同意后展示广告。
7. 处理用户撤销同意
如果用户撤销了GDPR同意,你需要停止展示广告并处理相关逻辑。可以通过监听同意状态的变化来处理。
GdprAds.onConsentChange.listen((bool hasConsent) {
if (!hasConsent) {
// 用户撤销同意,停止展示广告
}
});