WWDC Quick Look 💓 By SwiftGGTeam
What’s new in App Store pricing

What’s new in App Store pricing

观看原视频

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):

  1. 侧边栏点击 “Pricing and Availability”
  2. 在 “Price Schedule” 下点击 “Add Pricing”
  3. 选择基准地区(例如美国)
  4. 从下拉菜单选择价格。默认显示 25 个常用价格点,滚动到底部点击 “See Additional Prices” 可查看全部 900 个
  5. 确认其他 174 个地区自动生成的价格
  6. 审核并确认

设置完成后,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 关联到一个 AppPricePointAppPricePoint 关联到一个地区(Territory)。AppPricePointTerritory 是只读参考数据。

设置价格变更需要使用 POST /appPriceSchedules 接口。这个接口会覆盖现有的价格表,所以你需要同时包含当前价格和新价格。请求体中需要指定:

  • app 关系:app ID
  • baseTerritory 关系:基准地区 ID
  • manualPrices 关系:手动价格列表

安排全局价格变更的关键步骤(11:23):

  1. 获取基准地区的所有可用价格点
  2. 选择一个基准价格,记录其 ID
  3. 使用 GET /equalizations 预览其他地区的等值价格
  4. 构建 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
  • 临时价格通过设置 startDateendDate 来定义促销时段
  • 建议在未上架的 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 设置带 startDateendDate 的临时手动价格。

  • 区域差异化定价策略:如果你的 app 在不同市场的竞争格局不同,可以用自定义价格在竞争激烈的市场设置更低价格,在成熟市场保持基准价格。在 App Store Connect 中选择 “Manually manage prices in specific countries or regions” 来开始。

  • 构建定价管理仪表板:利用新的 App Store Connect API,搭建一个内部仪表板来批量管理所有 app 的全球定价。通过 GET /appPriceSchedulesGET /equalizationsPOST /appPriceSchedules 三组 API 可以实现完整的定价 CRUD 操作。

  • 定时价格变更自动化:结合新 API 的全局价格变更功能,编写脚本在每年固定时间(如年底)自动安排所有 app 的价格调整。关键 API 是 POST /appPriceSchedules,通过 included 数组同时传入当前价格和未来价格即可实现。


关联 Session

评论

GitHub Issues · utterances