您可以更改订阅基础方案和优惠的价格。例如,您可能有一些数字商品需要每年调整价格,或者您可能更改了商品的受益范围,并希望在价格中体现这些变化。
如需详细了解如何使用 Play 管理中心更改订阅价格,请参阅 Play 管理中心帮助中心的文档。
如需以编程方式更改订阅基础方案价格,请使用 monetization.subscriptions.patch
方法。此方法会接收一个 Subscription
对象,其中包含正在更改的订阅产品配置。在订阅的 basePlans
集合中正确的基础方案下的 RegionalBasePlanConfig
对象中设置新价格。如果您有大量商品目录,需要在短时间内更新所有商品,或者如果您有商品目录管理系统,可以在发生更改时自动更改 Google Play 订阅商品,这将非常有用。
访问您的 Play 管理中心更改日志,查找过去所做价格更改的信息,可能会很有用。您可以在其中找到的信息包括价格更新时间、更改发起人、更新区域等。如果您需要查看过去的价格更改或意外的价格更改以评估后续步骤,这可能会对您有所帮助。
新订阅购买的价格更改
当您更改基础方案或优惠的价格时,新价格将在几小时内对所有新购买生效,无需您采取任何额外措施。
现有订阅者的价格更改
当您更改订阅价格时,现有订阅者默认不受影响;他们会被归入旧价组,续订时会继续按原基础方案价格付费。
如果需要,您可以将现有订阅者转移到当前的基础方案价格。此操作称为终止旧价组。优惠定价阶段的更改无法应用于现有订阅者。对于分期付款订阅,旧价组的价格更改会在当前承诺期结束时发生。您无法更改正在分期付款的用户的当前付款价格。
终止旧价组
您可以随时选择终止旧价组。此操作可以针对每个区域独立进行。如需通过 Play 管理中心终止旧价,请参阅 Play 管理中心帮助中心。
使用 Google Play Developer API 终止旧价组
如需以编程方式终止旧价组,请使用 monetization.subscriptions.basePlans.migratePrices
方法。此方法会将正在享受历史订阅价格的订阅者迁移到指定区域的当前基础方案价格。该方法还会触发价格更改通知,发送给当前享受比提供的时间戳更早的历史价格的用户。发送此请求时,您需要在请求正文中包含一个 RegionalPriceMigrationConfig
对象列表,以配置价格组迁移。
如需详细了解如何使用旧价组,请参阅 Play 管理中心帮助中心。
价格下降
当您终止旧价组,且新价格低于该组用户支付的价格时,Google Play 会通过电子邮件通知用户,这些订阅者会在下次支付基础方案费用时开始支付较低的价格。
许可测试人员也会收到价格下降的电子邮件通知。
价格上涨
终止旧价组且新价格高于该组用户支付的价格时,就会发生价格上涨。虽然价格下降会在现有订阅者下次支付基础方案费用时生效,但价格上涨可能需要用户采取行动,也可能不需要。
默认情况下,价格上涨对于现有订阅者而言是选择加入的更改。用户必须明确接受更高的价格,然后才会首次收费,否则 Google Play 会自动取消其订阅。在 37 天的提前通知期过后,用户下次支付基础方案费用时将按更高的价格收费。在此收费日期的 30 天之前,Play 会通过电子邮件和推送通知的方式通知现有订阅者。
价格组迁移触发后的前七天内,用户不会收到来自 Google Play 的任何通知。这意味着您在发起选择加入价格上涨后的七天内,可以在 Google Play 开始直接通知现有订阅者之前通知他们。在此期间,您可以通过将价格更改回原价来有效取消待处理的价格上涨。
在这七天过后,每位用户会在新价格生效的首次续订日期前 30 天收到来自 Google Play 的自动通知。
在某些情况下,对于现有订阅者价格上涨,您可以选择在不要求用户采取任何行动的情况下提前通知用户。使用此选项,除非用户通过更改订阅方案或取消订阅来选择退出,否则在提前通知期过后,他们下次支付基础方案费用时将按新价格收费。此期限因国家/地区而异,为 30 天或 60 天。在此收费日期之前的指定天数开始,Play 会通过电子邮件和推送通知的方式通知现有订阅者。
选择退出上涨仅在特定地区提供,且对上涨金额和频率有限制,并需满足特定开发者要求。
如果旧价组迁移符合这些条件,您可以将其标记为选择退出上涨,如图 1 所示。

将价格更改告知用户
每当您终止现有订阅者的旧价组时,都应通知他们。
对于选择退出价格上涨,您应该提前通知用户,并且必须向用户显示应用内通知。与选择加入价格上涨不同,Play 不会等到七天后才开始直接通知用户。
对于选择加入价格上涨,请提前通知用户,并告知他们需要接受价格上涨。发起选择加入价格上涨后,您有七天时间通知现有订阅者,然后 Google Play 才会开始直接通知他们。我们建议您在应用中通知受影响的用户,并提供一个深层链接指向 Play 商店订阅屏幕,以帮助他们轻松查看新价格。用户在 Play 商店订阅屏幕上查看选择加入价格上涨时,会显示类似图 2 的对话框。

处理用户对选择加入价格更改的响应
通知现有订阅者价格更改并且是选择加入上涨后,他们可以在新价格生效前采取行动,接受或不接受价格上涨。如果他们采取行动,您将收到一个 RTDN,告知您结果。请参阅购买生命周期指南,了解如何处理这些通知。
如果用户未采取行动,并且到了将应用选择加入价格的首次续订日期,他们的订阅将在该续订日期自动取消并过期。
意外的价格上涨
本部分介绍处理意外价格更改的各种场景。
选择加入上涨 - 如果您意外发起了选择加入价格上涨,请立即将价格更改回原价,以撤销更改。
将基础方案价格改回原价,然后导航到旧价格点页面,发起将价格降至原价的操作。如果价格在七天内改回,现有订阅者不会收到意外价格更改的通知。如果在七天后将价格改回旧价,对于尚未支付新价格的用户,价格更改将被取消。根据续订日期,有些用户可能已收到选择加入的电子邮件通知。
选择退出上涨 - 您可以通过将价格改回原价来取消意外的选择退出上涨。将基础方案价格改回原价,然后导航到旧价格点页面,发起将价格降至原价的操作。根据价格改回的时间,如果用户尚未支付更高的价格,他们的价格上涨将被取消。根据续订日期,有些用户可能已收到价格上涨通知电子邮件。
价格下降 - 您可以使用 Google Play 管理中心将订阅价格改回原价,以取消价格下降。将基础方案价格改回原价,然后导航到旧价格点页面,发起将价格提高到原价的操作。开发者可以发起选择加入或选择退出(如果符合条件)来取消价格下降。如果使用选择退出,这将计入频率。Google Play 会根据价格改回的时间相对于用户个人续订日期,来确定取消是否对特定用户的下次续订有效。
如果将价格改回原价的时间与用户预期按新价格续订的时间之间的间隔超过相关国家/地区特定的通知期(30 天或 60 天),则价格下降取消有效。用户的下次订阅续订将按原先的更高价格发生。
如果将价格改回原价的时间与用户预期按新价格续订的时间之间的间隔短于或等于相关国家/地区特定的通知期(30 天或 60 天),则价格下降取消无效。用户将在下次续订时至少一次按较低价格收费后,转而经历价格上涨流程。然后用户会收到价格上涨的通知。根据价格迁移期间选择的模式,用户需要接受选择加入价格上涨,或者会收到有关选择退出上涨的通知。在这种情况下,将适用选择退出上涨的任何频率和金额限制。
处理重叠的价格更改
请确保一次只进行一项价格更改。但是,如果您多次进行价格更改,受影响的用户只需要同意最新的价格更改。例如,如果您通过选择加入价格上涨终止了旧价组,再次更改了价格,然后又进行了另一次选择加入价格上涨,受影响的用户就不再需要响应第一次价格上涨,因为现在只有第二次价格上涨生效。此行为适用于旧价选择加入和选择退出价格上涨以及价格下降。
当您对正在进行较早价格迁移的项目开始新的价格迁移时,Google Play 会按以下方式处理:
旧价格迁移被取消。
Google Play 会停止旧价格迁移。在
SubscriptionPurchaseV2
API 中,您将看到旧价格更改详细信息被标记为CANCELED
。您还会收到一个SUBSCRIPTION_PRICE_CHANGE_UPDATED
RTDN。新价格迁移接管。
紧接着,Google Play 会开始新的价格迁移。这在
SubscriptionPurchaseV2
中将显示为OUTSTANDING
(针对选择加入上涨)或CONFIRMED
(针对选择退出上涨或价格下降)。您将收到该项目的另一个SUBSCRIPTION_PRICE_CHANGE_UPDATED
RTDN。用户获得新价格。
用户现在将被转移到新的价格迁移,他们将不会完成之前的价格更改。用户会收到新价格的标准通知期。
测试价格更改
不要出于测试目的更改现有订阅者拥有的产品的订阅价格。
您可以使用 Play Billing Lab 应用和许可测试人员来测试订阅价格更改,而不会影响其他现有订阅者。
请参阅测试指南,详细了解如何测试价格更改。
示例
本部分中的示例演示了如何在不同的价格更改场景中应用最佳实践。
示例 1:月度订阅选择加入价格上涨
AltoStrat 于 3 月 3 日通过终止旧价组提高了其高级视频流媒体订阅服务 AltoStrat Pro 的价格。他们将旧价组(原价 1 美元)的用户转移到当前基础方案价格 2 美元。价格更改的生效日期为 4 月 9 日(3 月 3 日之后的第 37 天)。
Alice 是现有订阅者,她的下次续订日期是 3 月 5 日。生效日期后的首次续订日期是 5 月 5 日,因此她在 3 月 5 日和 4 月 5 日按旧价格(1 美元)续订。当她在 5 月 5 日再次续订时,按新价格(2 美元)收费。Google Play 从 4 月 5 日开始通知 Alice 价格更改,这是新价格生效的首次续订日期前的 30 天。
Bob 是现有订阅者,他的下次续订日期是 3 月 29 日。他在 3 月 29 日按旧价格(1 美元)续订,因为价格更改尚未生效。当他在 4 月 29 日再次续订时,按新价格(2 美元)收费。他从 3 月 30 日开始收到价格更改通知,这是新价格生效的首次续订日期前的 30 天。
示例 2:3 个月订阅选择加入价格上涨
FindMyLove 于 3 月 3 日终止旧价组,并将 FindMyLove Premium 的 3 个月费用从 1 美元提高到基础方案价格 2 美元。价格更改的生效日期为 4 月 9 日(3 月 3 日之后的第 37 天)。
Alice 是现有订阅者,她的下次续订日期是 3 月 5 日。她按旧价格(1 美元)续订,因为价格更改尚未生效。当她在 6 月 5 日再次续订时,按新价格(2 美元)收费。她从 5 月 6 日开始收到价格更改通知,这是新价格生效的首次续订日期前的 30 天。
Bob 是现有订阅者,他的下次续订日期是 4 月 11 日。他按新价格(2 美元)续订,因为这在价格更改的生效日期之后。他从 3 月 12 日开始收到价格更改通知,这是新价格生效的首次续订日期前的 30 天。
示例 3:每周订阅选择加入价格上涨
CutePetsNews 于 3 月 3 日终止旧价组,触发 Weekly Dog Alerts 每周费用从 1 美元迁移到 2 美元的价格迁移。价格更改的生效日期为 4 月 9 日。
Alice 是现有订阅者,她的下次每周续订日期是 3 月 6 日。她在 3 月 6 日、3 月 13 日、3 月 20 日、3 月 27 日和 4 月 3 日按旧价格(1 美元)续订,因为价格更改尚未生效。当她在 4 月 10 日再次续订时,按新价格(2 美元)收费。她从 3 月 11 日开始收到价格更改通知,这是新价格生效的首次续订日期前的 30 天。
示例 4:多次选择加入价格更改的月度订阅
此示例演示了如何处理多次价格更改。
AltoStrat 于 3 月 3 日对其高级视频订阅服务 AltoStrat Pro 发起价格迁移,将价格从每月 1 美元提高到 2 美元。3 月 10 日,开发者发起第二次价格迁移,将价格提高到每月 3 美元。
第一次价格更改的生效日期为 4 月 9 日(3 月 3 日之后的第 37 天)。第二次价格更改的生效日期为 4 月 16 日(3 月 10 日之后的第 37 天)。
Alice 的下次续订日期是 3 月 5 日。生效日期后的首次续订日期是 5 月 5 日,因此她在 3 月 5 日和 4 月 5 日按旧价格(1 美元)续订。当她在 5 月 5 日再次续订时,按最新价格(3 美元)收费。她只收到第二次价格更改的通知,因为价格更改发生在 7 天冻结期内。她从 4 月 5 日开始收到价格更改通知,这是新价格生效的首次续订日期前的 30 天。
示例 5:月度订阅选择退出价格更改
此示例演示了如何处理选择退出价格上涨。
AltoStrat 需要进行年度价格调整,以考虑节目制作成本的增加。1 月 2 日,他们将 AltoStrat Pro(其高级视频流媒体订阅服务)的价格从 1 美元更改为 1.30 美元。此价格上涨符合选择退出价格迁移的条件。他们立即终止旧价组,指定进行选择退出迁移。此组中的用户位于需要至少 30 天选择退出通知期的区域,因此新价格于 2 月 1 日生效。
Alice 是现有订阅者,她每月 14 日被收费。由于最短通知期为 30 天,她在 1 月 14 日支付旧价格(1 美元)。Google Play 从 1 月 15 日开始通知 Alice 价格更改,她从 2 月 14 日开始支付新价格(1.30 美元)。
示例 6:12 个月分期付款订阅选择加入价格上涨
此示例演示了如何处理分期付款订阅的价格上涨。
AltoStrat 于 3 月 3 日通过终止旧价组提高了其高级视频流媒体订阅服务 AltoStrat Pro 的价格。他们将旧价组(原价 1 美元)的用户转移到当前基础方案价格 2 美元。价格更改的生效日期为 4 月 9 日(3 月 3 日之后的第 37 天)。
Alice 是现有订阅者,她在去年 6 月 10 日注册了 12 个月的分期付款计划,随后按月自动续订。她今年的首次续订日期是 6 月 10 日。由于 Alice 正在分期付款期间,她在 3 月 10 日、4 月 10 日和 5 月 10 日继续支付 1 美元。她在 6 月 10 日首次续订时,按新价格(2 美元)收费,并切换到按月自动续订模式。Google Play 从 5 月 11 日开始通知 Alice 价格更改,这是新价格生效的首次续订日期前的 30 天。