App Store Connect 優惠代碼:建立訂閱促銷碼
作者:Mehdi Azizi
發布於 ,8 分鐘
自 2026 年 3 月起,優惠代碼取代 App 內購買的促銷碼:可建立一次性或自訂代碼,透過連結、App Store 或 App 內兌換。
在 App Store Connect 裡,訂閱或 App 內購買的「促銷碼」現在叫做優惠代碼(offer code)。自 2026 年 3 月 26 日起,Apple 不再允許為 App 內購買建立促銷碼:促銷碼只剩下一個用途,就是免費送出付費 App 的下載。你要先在產品上建立一個優惠,再產生一次性代碼或自訂代碼。對方可以透過連結、在 App Store 裡,或直接在你的 App 內兌換。
我的 App 都是免費下載、靠訂閱賺錢,所以 App 促銷碼對我沒有任何用處。因此在 TradaZen 的程式碼裡,推薦獎勵是用優惠代碼發放的,而且由 App 自己開啟兌換流程。以下依序說明:改了什麼、Apple 的優惠總表、如何建立代碼、如何兌換,以及 3.1.1 條款禁止的做法。
促銷碼與優惠代碼:2026 年改了什麼
Apple 在 2025 年 10 月 29 日的開發者新聞中宣布:優惠代碼現在涵蓋所有 App 內購買。除了自動續訂型訂閱,消耗型、非消耗型與非續訂型訂閱也都納入。因此從 2026 年 3 月 26 日起,你無法再為 App 內購買建立促銷碼。之前建立的仍可使用,直到過期為止。
App 促銷碼則依然存在。根據 App Store Connect 說明,它可以免費送出一份付費 App。每個代碼只能用一次,有效期四週。每個版本、每個平台最多可申請 100 個,從 App 側邊欄的 Promo Codes 申請。使用代碼的人不能為 App 評分或撰寫評論。
對於免費下載、販售訂閱的 App 來說,App 促銷碼什麼也送不了:你要送的是訂閱,所以要用優惠代碼。
Apple 的各種優惠:給誰、怎麼取得
以下是 Apple 圍繞訂閱的各種優惠,再加上 App 促銷碼,這張表是我做選擇時隨手參考的:
| 優惠類型 | 給誰 | 如何取得 |
|---|---|---|
| 首次優惠 | 該群組的新訂閱者 | 購買時自動套用 |
| 一次性優惠代碼 | 特定某個人 | 連結、App Store 或 App |
| 自訂代碼 | 一檔活動、一群受眾 | 連結或在 App 內輸入 |
| 促銷優惠 | 現有或過去的訂閱者 | 由你的 App 提供 |
| 挽回優惠 | 過去的訂閱者 | 設定、App Store、App |
| App 促銷碼 | 僅限付費 App | 在 App Store 輸入 |
優惠代碼是讓你在 App 之外自己發送的:透過 email、你的網站、活動現場,或交給內容創作者。其他優惠主要是自動顯示,或依你設定的規則在 App 內顯示。首次優惠(也就是免費試用)有專門的指南:首次優惠與免費試用。
為訂閱建立優惠代碼
訂閱優惠代碼說明中的流程分兩步:先建優惠,再產生代碼。以下介面名稱都沿用 Apple 說明文件中的英文標籤。
1. 優惠。 在 Subscriptions 中打開群組,再打開訂閱。在 Subscription Prices 點加號按鈕,再點 Create Offer Codes。接著:
- 填一個參考名稱,之後會出現在你的銷售報告裡;
- 選擇優惠結束後訂閱是否續訂;若不續訂,只能設定免費優惠;
- 勾選符合資格的對象:新訂閱者、現有訂閱者、該群組過去的訂閱者;
- 如果訂閱有首次優惠,選擇對方先享首次優惠再享代碼優惠,還是只享代碼優惠;
- 選擇國家,再選免費、預先付款或按期付款,並設定期間與價格。
優惠建立後就不能再修改。要變更資格,就得建立新的優惠。
2. 代碼。 有兩種,從優惠頁面產生:
- 一次性代碼:一人一碼,每批建立 500 到 25,000 個。最遲在建立後六個月過期。你會下載一個包含代碼與連結的檔案。
- 自訂代碼:由你選定的一個字詞,最多 64 個字元、不含特殊字元,例如 BACKTOSCHOOL(虛構範例)。你可以設定最多幾個人能使用,每批最多 25,000 人,並可選擇設定結束日期。
共同限制:每個 App 每季最多一百萬個代碼,每個訂閱最多十個有效優惠,每人每個優惠只能用一個代碼。代碼最長可能需要一小時才能生效。最重要的是,你的 App 必須已上架販售,代碼才能兌換:在上架前無法送出訂閱。
測試方面,Apple 提供 sandbox 代碼,每批 10 到 10,000 個,可在 iOS 16.3 以上的 sandbox 帳號設定中兌換。
單次購買或點數的優惠代碼
App 內購買優惠代碼頁面的邏輯相同。在 In-App Purchases 中打開該項購買,再到 Offer Codes 區塊點 Create Offer。資格依照使用者在你 App 中的購買紀錄判斷:從未購買、最近 30 天內購買過,或超過 30 天前購買過。優惠可以是免費或付費。
要產生代碼,App 必須已上架販售,且該項購買已通過審核。一個 App 同時最多有十個有效優惠。在 App 內兌換需要 iOS 16.3 以上。
使用者如何兌換代碼
StoreKit 文件列出三種途徑:
- 兌換連結。 App Store Connect 會在優惠頁面提供範例連結,你再把代碼加上去。如果對方尚未安裝 App,會先被引導下載。
- App Store。 一次性代碼可在帳號的 Redeem Gift Card or Code 頁面輸入。自訂代碼則要透過連結或你的 App。
- 你的 App。 在 Swift 中,SwiftUI 用
offerCodeRedemption,UIKit 用presentOfferCodeRedeemSheet。在 Expo App 中搭配 RevenueCat,則是presentCodeRedemptionSheet。
RevenueCat 文件提供了連結格式:https://apps.apple.com/redeem?ctx=offercodes&id={apple_app_id}&code={code}。文件也提醒,Apple 的兌換面板自推出以來一直很不穩定,並建議以連結作為備案。原理如下,以 TypeScript 示範:
import { Linking } from "react-native";
import Purchases from "react-native-purchases";
const PAGE_ECHANGE = "https://apps.apple.com/redeem";
export async function echangerUnCode(): Promise<void> {
try {
await Purchases.presentCodeRedemptionSheet();
} catch {
await Linking.openURL(PAGE_ECHANGE); // 面板失敗時的備案
}
}
這個面板不會回傳任何結果。權限會像購買後一樣送達,透過你 App 裡原本就有的 addCustomerInfoUpdateListener 監聽器。要讓 RevenueCat 正確計算這些代碼帶來的營收,需要提供你的 In-App Purchase 金鑰。
這就是 TradaZen 程式碼裡準備好的架構。使用推薦獎勵時,App 會開啟已填好代碼的連結:這比面板可靠,因為面板得手動重新輸入代碼。要輸入收到的代碼時,App 會開啟原生面板,並以 App Store 兌換頁面作為備案。對方不知道該在哪裡輸入的代碼,等於沒用:App Store 帳號頁面藏得很深,也沒有任何提示。在 App 裡放一個「我有代碼」按鈕就能解決。
促銷優惠與挽回優惠,簡要說明
這兩種優惠不是透過你發送的代碼,但目的相同:留住或找回訂閱者。
促銷優惠針對現有或過去的訂閱者。由你在 App 中決定何時顯示,例如對即將取消訂閱的人。根據促銷優惠說明,每個訂閱可以有十個有效優惠。它們適用於該訂閱的所有國家,即使對方已享受過首次優惠也有資格使用。簽署優惠需要 In-App Purchase 金鑰。
挽回優惠(win-back)針對過去的訂閱者。挽回優惠說明詳列了條件:最短付費訂閱期間、結束後經過的時間、兩次優惠之間的等待期。Apple 會自動在訂閱管理頁面顯示,在 iOS 18 以上也會顯示在你的 App 中。Apple 也會產生一個分享連結,只能寄給符合資格的人。若要讓它出現在 App Store 上,需要用一張通過審核的訂閱圖片來推廣,圖片不能沿用你的圖示或截圖。我在訂閱推廣圖片指南中有詳細說明。
3.1.1 條款禁止的做法
Guideline 3.1.1 規定解鎖功能或內容必須使用 App 內購買。它禁止自製機制,例如授權金鑰或 QR code。你自己發明的代碼,在 App 的欄位中輸入就能解鎖進階版,會讓你面臨 3.1.1 退件,即使是免費贈送也一樣。Apple 的優惠代碼則是走 App 內購買。完整規則請看我的 guideline 3.1.1 指南。
另外,關於推薦機制:guideline 5.1.2 禁止要求開啟通知、定位或追蹤才能獲得獎勵,代碼也包括在內。所以獎勵不能取決於這些權限。詳情請看 guideline 5.1.2 指南。
送出訂閱,別用錯工具
上架前想讓人免費試用 App,就用 TestFlight:裡面的購買走測試環境,不會扣款。上架後,就用優惠代碼。訂閱本身的設定請看 用 RevenueCat 做 iOS 訂閱。
iOS & Android Kit 以我 App 的起始程式碼為基礎:onboarding、付費牆和訂閱都已寫好,第三步「接上金流」會引導你完成設定。完整流程在 iOS App 內訂閱頁面。如果你正在準備第一次上架,來做免費診斷:它會幫你把步驟排好順序,並寄給你我的 Apple 防退件檢查清單。
常見問題
如何在 App Store Connect 產生促銷碼?
付費 App 的話,打開 App 側邊欄的 Promo Codes:每個版本最多 100 個代碼,有效期四週。訂閱或 App 內購買的話,在產品上用 Create Offer Codes 或 Create Offer 建立優惠,再產生一次性代碼或自訂代碼。
促銷碼和優惠代碼有什麼不同?
促銷碼送出的是付費 App 的下載。優惠代碼送出的是訂閱或 App 內購買,可以免費或打折,期間由你決定。自 2026 年 3 月 26 日起,App 內購買只能建立優惠代碼。
可以建立多少個優惠代碼?
每個 App 每季最多一百萬個,所有產品合計。一次性代碼每批建立 500 到 25,000 個,自訂代碼每批最多可使用 25,000 次。一個訂閱同時最多有十個有效優惠。
App 上架前可以使用優惠代碼嗎?
不行:App 必須已上架販售,代碼才能兌換。上架前請用 TestFlight 給測試者使用,並用 sandbox 代碼在 App 內測試兌換流程。
現有訂閱者可以使用優惠代碼嗎?
可以,前提是你在優惠資格中勾選了現有訂閱者。Apple 的訂閱頁面說明,他只能兌換與目前訂閱同等級或更高等級的代碼。
使用者要在哪裡輸入優惠代碼?
可以透過兌換連結;一次性代碼也可以在 App Store 帳號的 Redeem Gift Card or Code 頁面輸入;如果你在 App 裡放了兌換面板,也可以在 App 內輸入。自訂代碼則要透過連結或 App。

