XCode 16.4 日本語化計画
特定の期間、自動更新サブスクリプションの無料または割引オファーを提供して、以前の購読者に再度契約します。
再獲得提供オファーとは、自動更新サブスクリプションを 解約した 対象顧客に対して、無料または割引価格で提供するオファーです。解約したサブスクリプションとは、expirationDate が過去の日付で、willAutoRenew の値が false に設定されているサブスクリプションを指します。再獲得提供オファーは App Store Connect で設定し、顧客が対象かどうかを判断する基準も設定します。対象は、顧客の有料サブスクリプションの期間、サブスクリプションの有効期限が切れてからの経過時間、オファーの利用間隔に基づいて決定できます。また、割引の種類を設定し、オファーが利用可能な地域または国も指定できます。
再獲得提供オファーは複数の方法で売買できます。App Store Connect では、メールなどの独自のチャネルで共有できる直接リンクを提供しています。顧客は App Store、Apple アカウントのサブスクリプション設定、そしてあなたのアプリ内で再獲得提供オファーを見つけて利用することもできます。
あなたのアプリ内では、再獲得提供オファーシート、StoreKit ビュー、その他の StoreKit API を使用して、独自の売買を完全にカスタマイズすることで、再獲得提供オファーで売買できます。
あなたのアプリでは、顧客達がアプリ外で引き換える再獲得提供オファーを処理する必要があります。デフォルトでは、ユーザーがアプリ外でオファーを利用すると、あなたのアプリは完了した購入取引を受け取ります。このワークフローは、App Store Connect の "Streamlined Purchasing" オプションがオン(デフォルト)になっている場合に実行されます。"Streamlined Purchasing" をオフにすることで、顧客があなたのアプリ内で購入を完了できます。詳しくは、後述の あなたのアプリ外で引き換えられた再獲得提供オファーの処理 をご覧ください。
App Store Connect で 再獲得オファーの設定 の手順に従って、再獲得提供オファーを設定します。再獲得提供オファーを設定する際は、以下の点にご留意ください。
再獲得提供オファーを設定する際に、App Store Connect で Streamlined Purchasing オプションも設定できます。この設定は、あなたのアプリ内のすべての再獲得提供オファーと条件付き価格設定に適用されます。再獲得提供オファーの利用処理は、以下のようにあなたのアプリによって左右されます。
App Store Connect でこの設定を構成する方法の詳細については、ストリームライン購入の管理 を参照してください。
StoreKit は、あなたのアプリ内で対象の顧客への再獲得提供オファーを販売するためのいくつかの方法を提供します。デフォルトでは、StoreKit は App Store から winBackOffer メッセージを受信すると、再獲得提供オファーシートを表示します。また、StoreKit ビューやその他の StoreKit API を使用して再獲得提供オファーを販売することで、体験を自由にカスタマイズすることもできます。
これらの各オプションの実装方法については、あなたのアプリ内での販売による再獲得提供 (Merchandising win-back offers in your app) をご覧ください。
再獲得提供オファーを作成すると、App Store Connect から直接リンクが提供されます。この直接リンクを使用して、独自のチャネルで再獲得提供オファーを売買しましょう。
顧客に直接リンクを送信する前に、あなたのサーバーから すべてのサブスクリプション状況の取得 エンドポイントを呼び出して、顧客がオファーの利用資格を満たしているかどうかを確認してください。レスポンスからの JWSRenewalInfoDecodedPayload には、対象となるオファーをリストする eligibleWinBackOfferIds 配列が含まれています。直接リンクは、対象となる顧客達にのみ送信してください。
eligibleWinBackOfferIds 配列に複数のエントリがある場合、顧客は一つ以上のオファーの対象となります。App Store は、最適なオファーを最初に、再獲得提供オファー ID の順序を設定します。順序付けには、サブスクリプショングループ内顧客の最新のサブスクリプションに対して App Store Connect あなたが構成した利用可能なオファーが考慮されます。
顧客が再獲得提供オファーシートを使用して再獲得提供オファーを利用すると、StoreKit はこの取引をアプリ外で発生した購入と同じように扱います。具体的には、アプリは Transaction の updates シーケンスでこの取引を受け取ります。あなたのアプリが起動したらすぐに、updates を反復処理するタスクを作成してください。詳細とサンプルコードについては、updates をご覧ください。
顧客達は、あなたのアプリ外で再獲得提供オファーを見つけて利用することが数通りの方法でできます。これには、あなたが販売した直接リンク、App Store で、Apple アカウントでサブスクリプションを管理しているときなど、いくつかの方法があります。あなたのアプリでの利用方法の処理は、App Store Connect で Streamlined Purchasing 設定がオンかオフかによって異なります。
Streamlined Purchasing がオン(デフォルト設定)の場合、顧客達はあなたのアプリ外で再獲得提供オファーの購入を完了します。あなたのアプリは、次回アプリを開いたときに、完了した購入取引を受け取ります。この取引は、あなたのアプリ外で完了した他の購入と同じように扱われ、購入済みコンテンツのロックが解除されます。具体的には以下のとおりです。
この取引により、顧客に自動更新サブスクリプションの権利が付与されます。あなたのアプリは購入コンテンツのロックを解除し、finish() で取引を終了します。
App Store Connect 内で Streamlined Purchasing をオフにすると、あなたのアプリは完了した取引ではなく購入意図を受け取ります。Streamlined Purchasing をオフにした状態で、顧客があなたのアプリ外で引き換えを開始すると、フローは以下のようになります。
以下の例では、PurchaseIntent の offer プロパティをチェックして、購入意図が再獲得提供オファーであるかどうかを検出し、そのオファーを購入オプションに追加します。
// Prepare the purchase options. var purchaseOptions: Set<Product.PurchaseOption> = [] // Add the win-back offer to the purchase. if let offer = purchaseIntent.offer, offer.type == .winBack { purchaseOptions.insert(.winBackOffer(offer)) } // Present the purchase. let result = try await purchaseIntent.product.purchase(options: purchaseOptions)
最後に、購入したコンテンツのロックを解除したり、finish() で取引を終了したりするなど、あなたのアプリが購入に成功したときに使用するのと同じワークフローに従います。
顧客達がサブスクリプション購入オファー(再購入オファーを含む)を利用すると、取引情報にオファーの詳細が含まれます。これらの詳細は、アプリ内およびサーバー上で以下の手順で確認できます。
Xcode 内の StoreKit テストとサンドボックス環境を使用することで、あなたの開発初期段階で再獲得提供オファーをテストできます。詳しくは、Xcode で再獲得提供をテスト および サンドボックス環境での再獲得提供のテスト をご覧ください。
あなたのアプリ内での販売による再獲得提供
(Merchandising win-back offers in your app)
再獲得提供オファーシートを使用するか、カスタム売買を実装して、あなたのアプリ内で対象の顧客達に再獲得提供オファーを提示します。
あなたのアプリでサブスクリプション提供コードをサポート
(Supporting subscription offer codes in your app)
App Store またはあなたのアプリ内でオファーコードを利用する顧客達にサブスクリプションサービスを提供します。
App Store Connect であなたが構成するサブスクリプションオファーに関する情報。
自動更新サブスクリプションのオファーの種類。