Highlight
App Store 定价体系在 2023 年 3 月迎来史上最大更新:价格点从不到 100 个扩展到 900 个,支持以任意 175 个地区中的任何一个为基准自动生成全球价格,并新增临时价格和自定义价格两种按地区管理定价的方式。
核心内容
2023 年 3 月之前,开发者在 App Store 上管理定价一直很麻烦。App Store 覆盖 175 个地区、44 种货币,每个地区还有不同的税率。每次调整价格,你需要在每个地区手动计算,或者被迫接受有限的定价档位。
Apple 在 2023 年 3 月推出了自 App Store 诞生以来最大规模的定价系统升级。这次更新解决了三个核心问题:价格点太少、全球定价不灵活、无法按地区精细管理。
价格点从不到 100 个扩展到 900 个
以前的价格档位很有限,比如 0.99、1.99、2.99 这样递增。很多开发者发现某些价格点在自己的商业模式下不合适,但没得选。
现在价格点扩展到 900 个。默认可用 800 个,如果需要更高价格,可以申请额外的 100 个高价位价格点。这些价格点对所有 44 种货币都适用(01:30)。
基准地区 + 自动全球价格均衡
以前的定价是以美国为默认基准,其他地区自动换算。如果你想以日本市场为基准定价,做不到。
现在你可以从 175 个地区中任选一个作为”基准地区”(base region)。App Store 会根据这个基准地区的价格,结合外汇汇率和当地税率,自动为其他 174 个地区生成等值价格(02:14)。
举个例子:选择美国作为基准地区,设置基础价格 $7.99。App Store 会自动计算其他 174 个地区的价格。比如英国市场生成的价格可能是 7.99 英镑,它会遵循当地的定价惯例(英国喜欢 .99 结尾)。
当汇率波动时,App Store 会自动调整其他地区的价格以保持与基准价格一致。如果英镑对美元贬值,英国的价格会自动上调。但基准地区的价格不会自动调整——它是锚点(03:28)。
任何自动调整都会至少提前 14 天在 App Store Connect 中显示,让你有足够时间审查(07:09)。
三种价格变更类型:全局、临时、自定义
除了初始定价,你还可以安排三种价格变更(07:53):
全局价格变更(Global Price Change):修改基准价格,其他地区自动跟随。适合整体涨价或降价。例如把基准价格从 $7.99 调整到 $9.99,设定 2024 年 1 月 1 日生效。
临时价格(Temporary Price):在特定地区、特定时间段内设置促销价格。例如在加拿大和法国,从 2 月 1 日到 2 月 3 日把价格降到 $4.99 / 4.99 欧元。到期后自动恢复原价(16:06)。
自定义价格(Custom Price):在特定地区永久设置不同的价格。比如在美国和阿根廷统一设置 $9.99。但要注意,一旦设置了自定义价格,App Store 就不再自动调整该地区的价格,你需要自己跟踪汇率变化(17:15)。
如果你给基准地区设置了自定义价格,所有地区的自动调整功能都会被禁用——这是一个关键的设计决策。
详细内容
App Store Connect 中的操作流程
在 App Store Connect 中设置定价的完整流程如下(04:56):
- 侧边栏点击 “Pricing and Availability”
- 在 “Price Schedule” 下点击 “Add Pricing”
- 选择基准地区(例如美国)
- 从下拉菜单选择价格。默认显示 25 个常用价格点,滚动到底部点击 “See Additional Prices” 可查看全部 900 个
- 确认其他 174 个地区自动生成的价格
- 审核并确认
设置完成后,Price Schedule 区域会显示 “May Adjust Automatically” 标签,表示基准以外的地区价格可能因汇率或税率变化自动调整。
App Store Connect API
定价 API 的核心资源是 AppPriceSchedules,它有三个关系(08:54):
baseTerritory:基准地区manualPrices:手动设置的价格automaticPrices:自动生成的价格
读取完整价格表的 API 调用顺序:
GET /appPriceSchedules/{appId}/baseTerritory
GET /manualPrices
GET /automaticPrices
每个 AppPrice 关联到一个 AppPricePoint,AppPricePoint 关联到一个地区(Territory)。AppPricePoint 和 Territory 是只读参考数据。
设置价格变更需要使用 POST /appPriceSchedules 接口。这个接口会覆盖现有的价格表,所以你需要同时包含当前价格和新价格。请求体中需要指定:
app关系:app IDbaseTerritory关系:基准地区 IDmanualPrices关系:手动价格列表
安排全局价格变更的关键步骤(11:23):
- 获取基准地区的所有可用价格点
- 选择一个基准价格,记录其 ID
- 使用
GET /equalizations预览其他地区的等值价格 - 构建
POST /appPriceSchedules请求体
请求体结构示例:
{
"data": {
"type": "appPriceSchedules",
"relationships": {
"app": { "data": { "type": "apps", "id": "your-app-id" } },
"baseTerritory": { "data": { "type": "territories", "id": "USA" } },
"manualPrices": {
"data": [
{ "type": "appPrices", "id": "${newprice-0}" },
{ "type": "appPrices", "id": "${newprice-1}" }
]
}
}
},
"included": [
{
"type": "appPrices",
"id": "${newprice-0}",
"relationships": {
"pricePoint": {
"data": { "type": "appPricePoints", "id": "current-price-point-id" }
}
}
},
{
"type": "appPrices",
"id": "${newprice-1}",
"attributes": { "startDate": "2024-01-01" },
"relationships": {
"pricePoint": {
"data": { "type": "appPricePoints", "id": "new-price-point-id" }
}
}
}
]
}
关键点:
- 临时 ID(如
${newprice-0})可以自定义任意值,只要符合${...}语法 - 当前价格的
startDate为 null 时,价格会立即生效 - 要安排未来价格变更,需要给当前价格设置
endDate为新价格的startDate - 临时价格通过设置
startDate和endDate来定义促销时段 - 建议在未上架的 app 上测试 API,避免误操作影响线上价格
基准地区变更的注意事项
对于 2023 年 3 月 9 日之前创建的 app 和内购项目,美国被自动设为默认基准地区。建议检查你的基准地区设置并根据需要调整(25:02)。
改变基准地区会重置现有的价格表。所以操作前必须仔细审查,确保所有价格配置符合预期。
旧 API 废弃
App Store Connect API 2.3 版本引入了新的定价 API。旧版定价相关 API 将在 2023 年底退役。建议尽快迁移到新 API 以使用扩展价格点和高级定价功能(25:49)。
核心启发
根据 session 中介绍的新定价能力,以下是可以立刻动手的方向:
-
实现自动化汇率对冲定价:设置基准地区为你最大的收入来源地,让 App Store 自动管理其他 174 个地区的汇率波动。不再需要手动监控外汇市场。从 App Store Connect 的 Pricing and Availability 页面开始,选择你的主要市场作为基准地区即可。
-
为特定市场做节日促销:利用临时价格功能,在不同地区的当地节日期间设置短期降价。比如在日本的黄金周、中国的双十一、美国的黑色星期五分别设置不同促销价。通过
POST /appPriceSchedules设置带startDate和endDate的临时手动价格。 -
区域差异化定价策略:如果你的 app 在不同市场的竞争格局不同,可以用自定义价格在竞争激烈的市场设置更低价格,在成熟市场保持基准价格。在 App Store Connect 中选择 “Manually manage prices in specific countries or regions” 来开始。
-
构建定价管理仪表板:利用新的 App Store Connect API,搭建一个内部仪表板来批量管理所有 app 的全球定价。通过
GET /appPriceSchedules、GET /equalizations和POST /appPriceSchedules三组 API 可以实现完整的定价 CRUD 操作。 -
定时价格变更自动化:结合新 API 的全局价格变更功能,编写脚本在每年固定时间(如年底)自动安排所有 app 的价格调整。关键 API 是
POST /appPriceSchedules,通过included数组同时传入当前价格和未来价格即可实现。
关联 Session
- What’s new in App Store Connect — 了解 App Store Connect 的最新更新,包括测试、提交和管理 app 的工具
- What’s new in App Store server APIs — 了解 App Store 服务端 API 的最新增强,包括管理内购的新端点
- Meet StoreKit for SwiftUI — 了解如何使用 StoreKit 在 SwiftUI 中添加内购,定价是内购配置的关键环节
- Explore testing in-app purchases — 了解如何在开发过程中使用 StoreKit Testing 测试内购,包括不同定价方案的测试
评论
GitHub Issues · utterances