You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何管理带免费试用期的Google Billing订阅并隐藏冗余基础方案

Google Play 订阅冗余优惠隐藏实现方案

一、Play Console 端标签配置

offerTags是官方支持的最稳定实现方案,不需要额外硬编码映射,完全支持远程配置优惠的需求,配置规则如下:

  • 为每个无额外权益的纯基础方案设置唯一关联标识标签,格式建议统一为base_plan:[自定义基计划标识]:比如1个月纯基计划(对应Offer1)打标签base_plan:p1m,6个月纯基计划(对应Offer3)打标签base_plan:p6m
  • 所有挂载在对应基础方案下的优惠(比如带1周免费试用的Offer2,后续新增的首单折扣、升级折扣等优惠都算),必须打上和所属基础方案完全一致的关联标签:比如Offer2属于6个月基计划下的优惠,就同样打base_plan:p6m标签,可额外增加offer_type:free_trial这类标签做优惠类型区分
  • 标签配置后不要随意修改,同属一个基计划的纯基计划条目、其下所有挂载的优惠条目,关联标签必须完全一致

二、端侧过滤逻辑

核心逻辑完全基于Billing接口返回的结果做本地处理,不需要额外接口请求,也不需要自己实现用户资格判断:

  • 调用queryProductDetailsAsync拿到对应订阅产品的所有offer列表后,先遍历每个offer的getOfferTags()返回值,提取出base_plan:开头的关联标签,按标签值对所有offer做分组,同一个标签下的offer归属同一基础方案
  • 给同组内的offer做优先级排序,排序规则按优惠吸引力从高到低设定:
    • 最高优先级:带免费试用期的offer
    • 次优先级:带限期折扣(比如首月半价)的offer
    • 最低优先级:无任何额外权益的纯基础方案offer
  • 每个分组仅保留优先级最高的1个offer用于前端展示,同组其余低优先级offer直接过滤不展示:
    • 当用户符合免费试用资格时,接口会返回Offer2和Offer3,二者同属base_plan:p6m分组,Offer2优先级更高,Offer3会被自动过滤隐藏
    • 当用户不符合免费试用资格(比如已经试用过、试用期内取消过订阅),Google Billing会自动过滤掉Offer2不返回,此时分组内仅存在Offer3,就正常展示6个月纯基础方案,完全符合预期
  • 不需要额外实现用户资格校验逻辑,Billing库本身已经完成了资格判断,不会给无资格用户返回不可用的优惠

三、兼容扩展

  • 后续如果需要在某个基础方案下新增优惠类型,只需要在Play Console给新优惠打上对应基计划的关联标签,同时在端侧排序规则里补充新优惠类型的优先级即可,不需要修改核心分组过滤逻辑,完全支持远程管理优惠配置的需求
  • 标签匹配时建议做大小写不敏感处理,避免因为Console端标签输入的大小写差异导致分组匹配失败
  • 如果某个基础方案没有配置任何额外优惠,分组内仅存在纯基计划offer,会正常展示不会遗漏

内容的提问来源于stack exchange,提问作者Manuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 05:36:25