flutter - Flutter admob 通过 IAP 移除广告
问题描述
嗨,我正在用这种方式展示 firebase admob 横幅和插页式广告。它显示来自 firebase admob 的广告。它已签署到 firebase
import 'package:firebase_admob/firebase_admob.dart';
import 'dart:io';
class AdvertService {
static final AdvertService _instance = AdvertService._internal();
factory AdvertService() => _instance;
MobileAdTargetingInfo _targetingInfo;
final String _bannerAd = Platform.isAndroid
? 'ca-app-pub-xxxxxxx1/5xxxxxxxx'
: 'ca-app-pub-xxxxxxx1/2xxxxxxxx';
final String _interAd = Platform.isAndroid
? 'ca-app-pub-xxxxxxx1/1xxxxxxxx'
: 'ca-app-pub-xxxxxxx1/6xxxxxxxx';
// FirebaseAdMob.instance.initialize(appId: appId);
AdvertService._internal() {
//_targetingInfo = MobileAdTargetingInfo( testDevices: <String>["54a0a4f2"]);
_targetingInfo = MobileAdTargetingInfo();
}
showBanner() {
print(_bannerAd);
BannerAd banner = BannerAd(
adUnitId: _bannerAd,
size: AdSize.smartBanner,
targetingInfo: _targetingInfo);
banner
..load()
..show();
banner.dispose();
}
showIntersitial() {
InterstitialAd interstitialAd =
InterstitialAd(adUnitId: _interAd, targetingInfo: _targetingInfo);
interstitialAd
..load()
..show();
interstitialAd.dispose();
}
}
并展示广告
final AdvertService _advertService = AdvertService();
_advertService.showBanner();
or
_advertService.showIntersitial();
我想做的是做一个 IAP 并从这个用户那里删除广告。我该怎么做
解决方案
有几种方法可以完成您的要求。
我建议您遵循本教程:
https://fireship.io/lessons/flutter-inapp-purchases/
并安装此软件包:
https://pub.dev/packages/in_app_purchase
您必须在 Google Play 控制台和/或 AppStoreConnect 上启用 IAP。请记住,在应用程序中使用 IAP 需要遵守 Google 和/或 Apple 的使用条款,因此请注意这些条款。
此外,如果您想使用“消耗品”(可以购买超过 1 次的物品),您必须将用户是否已购买此物品存储在您的后端(例如在 Firebase Cloud Firestore 中),因为两者Apple 和 Google 只能存储有关用户是否购买了某件商品的信息,而不是他购买了多少次的信息。
让我考虑一下:
管理 IAP 可能会非常痛苦,因为这不是最简单的事情,尤其是在 Flutter 中,原生功能不是由开发人员直接管理的。如果您的目标是仅在用户想要支付少量费用(例如 0.99 欧元或 1.20 美元)时删除广告,我建议您创建 2 个版本的应用程序,一个有广告,一个没有广告,将第二个版本在商店上架,当用户点击“删除广告”时,打开相应的商店并提示他下载您的应用程序的“高级版”。您将节省大量时间和心理健康!
快乐编码!
推荐阅读
- python - 重新分配商家 ID 列表,以便每个用户收到不同的商家集,但数量相同 - Python
- android - 分组推送通知再次调用 MainActivity 的 OnCreate()。如何处理?
- spring-boot - 具有不存在字段的 Springboot 重新调用
- javascript - Pentaho 6.1 - 如何在字段中搜索时显示可能结果的下拉列表?
- php - android使用php将空图像上传到主机
- c# - 在单元测试中启动 docker 容器
- android - 添加页脚视图后仅在回收站视图中显示一项
- java - 无法通过 intellij 和 quarkus 访问 docker postgres 图像?
- jersey - 当有多个 REST 服务器时附加 @Path
- css-selectors - Microsoft Edge 中的伪选择器颜色更改为蓝色