Idea To Business / App 怎么把内购、订阅、广告与会员权益接起来?← 返回专题

App 与多平台 · 实践指南

App 怎么把内购、订阅、广告与会员权益接起来?

将商店商品、用户身份、有效期、恢复购买和广告奖励接成可核对的权益记录。

本页目录
收藏与勾选保存在此浏览器。

直接回答

先分清实物、线下服务与 App 内数字功能,再按商店、店面地区和具体项目核对规则。内购、广告和外部网页支付有不同适用条件,某地区的例外不能推广给所有用户。实现核心是把交易状态可靠映射为账户权益,对取消、退款、重装、换设备分别处理。SDK 连接能力,不代替业务规则和验收;固定费率与广告保底都不是通用事实,共享账户也不自动允许在任意店面放网页付款入口。

适用场景

  • 准备在手机 App 中收费。
  • 网页已有订阅,想让 App 共享会员或增加广告额度。

一步一步做

先核对商店、店面地区与商品

区分消耗次数、永久功能、期限订阅与实物/线下服务,记录商店、店面地区、适用规则和需要加入的项目,不仅按 IP 或设备语言判断。报价、续费、额度、取消和支持说明应对应真实商品;确认适用条件后才加入外部支付,不假设免除全部费用。

分清商品、付费墙和有效权益

采用 RevenueCat 时,先在商店建商品,再导入并映射 Entitlement,最后配置 Offering/Paywall。商品定义买什么,付费墙决定展示组合,权益决定当前能用什么。月付和年付可对应相同会员能力,但有效期、赠送额度和发放周期应各自写清。

统一站内身份并保留交易来源

使用稳定用户标识,购买前处理匿名转登录、账号切换与已有网页会员。保存商店来源和交易标识,防止同交易在两个站内账号重复生效。已有有效订阅时显示来源和管理入口,避免同一用户误订阅同种权益两次;跨平台共享仍需符合商店规则。

取消、扣款问题、到期与退款分别处理

接收可信通知并按订单或周期去重。RevenueCat 官方区分 BILLING_ISSUE 与 EXPIRATION,扣款失败不必然立即到期;CANCELLATION 也可能含退款,需结合原因和有效期判断。退款完成、历史周期退款、宽限、撤销与恢复分别验收,客户端成功弹窗不能永久解锁。

恢复购买不等于重新赠送额度

提供用户主动恢复的入口,再读取确认后的有效权益。已消费的一次性购买不能假设仅靠商店恢复按钮找回;用稳定账户和服务器消费账本处理余额,并规定账号转移或合并规则。用开发构建及对应商店测试环境验证重装、换设备、切换账号、断网和通知延迟;Expo Go 不足以验证真实原生内购。

广告奖励单独记账并测成本

记录加载、可展示、满足奖励条件、确认和已发放状态,无填充、跳过或加载失败应有正常返回。高价值奖励可用 AdMob 服务端验证和唯一交易标识防伪造、去重,客户端与服务端不能各发一次。以已确认广告收入减模型与运营成本确定奖励数量,eCPM 估计不构成收益保证。

把广告SDK接入拆成配置、加载、展示与奖励事件

分清 AdMob App ID 和 Ad Unit ID,必要时重建包含原生配置的开发包,使用测试广告。先注册加载、错误、奖励与关闭监听再加载,只在已加载且用户主动触发时展示,不在 load 后无条件立即 show。依据奖励事件发奖,关闭事件只表示界面关闭。页面销毁时清理监听,关闭后按策略准备下一条,高价值奖励仍由可信服务端确认与幂等账本处理。

联调时把会员、额度和广告奖励放在同一张账户账本里核对

用一名测试用户串联未付费基线、购买生效、消耗一次、取消续费但未到期、到期、恢复、切账号、广告完成与重复回调,分别对照客户端、可信服务端权益和余额来源。付费墙关闭不等于已授予会员,恢复购买也不能重发已消费额度。预发布只用测试商品和广告,不将测试收入作为正式收入预测;资格和费率按适用协议核对。

案例拆解

假设示例:会员和广告奖励分开计算

假设会员每有效周期获 100 次生成,完成一条合格激励广告另获 1 次。续费重复通知只能发一次 100 次;重装恢复只找回有效权益和既有余额,不再赠 100 次。广告回调重复也只能加 1 次。若实际确认平均每次合格广告收入 0.02 元,奖励一次生成却需 0.05 元,每次平均亏 0.03 元,还未含其他成本,不能继续称广告保底。金额、额度均为假设,未发生真实交易。

行动检查

可复制模板

App 商业化验收表

产品卖什么:
商店/地区/适用规则来源:
商品与权益:
用户标识与交易标识:
购买/续费/取消/退款状态:
恢复购买与换设备:
重复与乱序通知:
广告失败/奖励防重复:
模型调用成本与额度:
测试交易证据及未验证项:

商店商品到权益映射

商店/店面地区/商品类型/规则链接/日期:
商店商品 ID → RevenueCat 商品及 Entitlement → 站内用户 → 能力与有效期
Offering/Paywall 展示方案与真实报价来源:
订阅赠送、额外购买、广告奖励:来源、发放周期、有效期
登录、匿名合并、切换、恢复及转移规则:
已有网页或其他商店订阅时怎样展示和管理:
首购、续费、取消、欠费、宽限、到期、退款、撤销:原因与有效权益对应
同交易/周期去重依据:
恢复哪些能力与余额,不重新赠送哪些已消费额度:

真机商业化验收与广告算账

构建/设备/商店测试环境/测试账号:
购买、付款取消、待确认、通知延迟、续费、取消到期、退款、重装、跨设备、账户切换、重复通知
每项:预期权益与余额/实际结果/商店与服务端证据/未通过原因
广告:无填充、加载失败、提前关闭、完成、重复、延迟、两端同时确认
唯一奖励标识/预期次数/实际次数:
广告收入统计期、币种与确认口径:
每次合格奖励收入___-奖励导致模型与运营成本___=净贡献___
未验证:正式审核/真实交易/结算/退款分别列明
测试购买和测试广告不计入真实收入。

广告状态与账户联合验收

应用ID/广告位ID(不附密钥)、构建与SDK版本:
测试广告环境、监听注册和清理位置:
未加载→加载中→已加载→用户请求展示→奖励确认→关闭:
无填充、加载失败、用户提前关闭、切后台、重复事件:
事件ID | 用户ID | 交易/奖励来源 | 会员有效期 | 额度增减 | 幂等结果
购买、消耗、取消、到期、恢复、切账号后:UI/服务器权益/余额是否一致:
客户端与SSV谁负责最终发放、另一路如何避免重复:
真实成本来源与尚未得到的收益证据:

易错点

  • “已经接入 RevenueCat”不等于全部订阅状态都正确。
  • 外部网页付款的适用性与成本要按当前商店规则和协议确认。
  • 某次引用的费率不能直接视为所有开发者的实际费率。
  • 恢复时将所有历史消耗型购买重新赠送一遍。
  • 取消续费、扣款失败和到期合并成立即禁用。
  • 只信客户端奖励回调,或两端同时发放。
  • 把测试广告或估算收入当作可提现收入。

官方参考

← 返回专题,继续查阅
© Rowan Huang

保持好奇,慢慢构建。