-
App Store ConnectのRetention Messagingの利用方法
キャンセルする可能性のあるサブスクリプション登録者に事前にアプローチできる、Retention Messagingの利用方法を紹介します。App Store Connectでこの機能を設定する方法、サブスクリプションオファーを追加する方法のほか、Retention Messaging APIを活用してリアルタイムのメッセージや代替オプションを提供し、アプリやゲームのサブスクリプション継続を促す方法について学べます。
関連する章
- 0:00 - Introduction
- 2:38 - Retention Messaging in App Store Connect
- 6:38 - Real-time Retention Messaging
- 11:46 - Retention Messaging comparison
リソース
- Interest form: Real-time Retention Messaging
- Supporting monthly subscriptions with a 12-month commitment
- Retention Messaging API
関連ビデオ
WWDC26
-
このビデオを検索
App Storeで自動更新サブスクリプション を販売することはやりがいがあります。 一方で、重要な瞬間に 顧客にアプローチするのは 難しい場合もあります。たとえば サブスクリプションの解約を 検討しているときがその一例です。 そのような瞬間こそ、 サブスクリプションサービスから 得られる価値を顧客に 伝える絶好の機会です。 私はToriといいます。 App Storeサーバチームのエンジニアで、 このビデオでは App Store Connectの Retention Messagingを使って サブスクライバーを維持する方法をご紹介します。 これは顧客とつながるための新機能です。 まずRetention Messagingの概要と App Store Connectでの 設定方法についてご説明します。 次に、リアルタイムRetention Messagingが App Store Connectの Retention Messagingと どのように連携するかを説明します。 私のExerciseアプリでは、 顧客が有効なサブスクリプションを 解約する例を示します。 解約ページには顧客に対し 解約による影響を示す メッセージが表示されます。 このサブスクリプションでは App Storeが顧客に 解約を進めると家族が このサブスクリプションに アクセスできなくなることを通知します。 これは 顧客にメッセージや オファーを提供する機会です。 Retention Messagingを使えば まさにそれが可能です。 Retention Messagingは 解約フローに価値を加えます。 顧客がサブスクリプションの解約を 検討しているときに 説得力のある価値提案メッセージを 表示します。 Retention Messagingを使って 顧客にサブスクリプションの メリットを伝えたり、 サブスクリプション継続を促す オファーを提供できます。 Retention Messagingは 3種類のビューをサポートします。 メッセージのみ、メッセージと画像、 またはメッセージとオファーです。 Exerciseアプリでこれら3つのビューが どのように見えるかを確認できます。 ここでは、メッセージが 顧客に目立つ形で表示されています。 視覚的な魅力を加えるために 画像を追加できます。 または顧客に現在のサブスクリプションの 3か月無料を提供したり、 Yoga+のサブスクリプション継続に対する 追加インセンティブを提供できます。 セーブ率とは、サブスクライバーが サブスクリプションを維持する割合です。 サブスクリプション管理の 解約確認ページに到達した後の割合です。 Retention Messagingを採用した サブスクリプションでは 平均セーブ率が+1.4ポイント向上しています。 これは82%の増加に相当します。 プロモーションオファーメッセージが 最も高いセーブ率を達成しており、 +5.5ポイント、つまり223%の増加に相当します。 デベロッパによって 結果は異なる場合があります。
App Store Connectでの Retention Messaging設定方法をご説明します。 App Store Connectの Retention Messagingでは、 アプリのリテンションメッセージを 設定できます。 これをサブスクリプションに マッピングできます。 Asset Libraryからメッセージと共に 表示する画像を選択できます。 リテンションオファーを設定して メッセージと共に顧客に 提供することもできます。 App Store Connect APIも Retention Messagingをサポートします。 APIを通じてリテンションメッセージと リテンションオファーを設定できます。 Asset Libraryの詳細については セッション 「Enhance your presence on the App Store」 (WWDC26) をご覧ください。 仕組みを確認しましょう。 App Store Connectの Subscriptionsページでは、 Retention Messagingを開始するよう 促す新しいエリアが表示されます。
ボタンをタップすると、 リテンションメッセージの名前を付けるための モーダルが表示されます。 このメッセージはヨガサブスクリプション用なので 「Yoga Message」と名付けます。 次にボタンをタップします。
新しいビューが表示され、左側で メッセージテキスト、画像、 対象サブスクリプション、 オファーを編集できます。 右側にはリテンションメッセージの ライブプレビューが表示され、 編集するたびに更新されます。
リテンションメッセージには 常にメッセージテキストが必要ですが、 画像とオファーはどちらも省略可能です。 Yoga+サブスクリプション用の リテンションメッセージの作成を続けます。 まずテキストから始めます。 英語でメッセージを作成します。 ただし、他のローカライゼーションも 選択できます。
「Launching Next Month: Guided Yoga」とテキストボックスに入力します。 おお! プレビューがすぐにタイトルと共に 更新されました。 続けて説明文を追加します。 「Don't miss out on guided yoga classes, new metrics targeted for yoga, and more.」 右側のプレビューが すぐに更新されることに注目してください。 今度は画像を追加した場合の 見た目を確認します。 Asset Libraryに画像があるので それを選択します。 プレビューがとてもいい感じになりました!
次にYoga+サブスクリプションを選択して、 Yoga+サブスクリプションを持つすべての 顧客にこのメッセージが表示されるようにします。 Yoga+サブスクリプションが 選択されました。 他のサブスクリプションも選択できます。 1つのリテンションメッセージを 複数のサブスクリプションに関連付けられます。 最後に対象顧客向けの オファーオプションを追加します。 すでにリテンションオファーが設定済みなので それを選択します。 このメッセージと共に表示される すべてのオファーが、 対象条件と提供状況と共に 表示されます。 App Storeは対象顧客に 最適なオファーを自動的に選択するので、 1つのサブスクリプションに 複数のオファーを安心して設定できます。 また、顧客がオファーの対象である場合は 画像がオファーに置き換えられることも 重要な点として覚えておいてください。
他のオファーの表示方法を確認したい場合は、 オファードロップダウンから 別のオファーを選択できます。 ドロップダウンから オファーなしを選択することもでき、 オファーなしの場合の プレビューを確認できます。 テストについて説明します。 サンドボックスでのテストは サブスクリプションの実装を検証し、 本番環境への移行前に確認できます。 リテンションメッセージは サンドボックスで完全にテストできます。 サンドボックスでサブスクリプションを 解約する際にリテンションメッセージをテストできます。 リテンションオファーを設定した場合は、 オファー関連フィールドが 正しく設定されているかどうかを 署名済みトランザクションまたは 更新情報で確認できます。
リテンションオファーも導入します。 リテンションメッセージ用の新しいオファータイプです。 署名済みトランザクションと 更新情報が更新され、 リテンションオファーが適用されたことを示す 新しいofferType値5が追加されます。 オファー識別子、オファー割引タイプなど その他のオファー関連フィールドも 予想通りに表示されます。 App Store Connectで Retention Messagingを設定することで、 サブスクライバーを維持するための 重要なステップを踏むことになります。 これはサブスクリプションの ライフサイクルにおける重要な瞬間です。
顧客がサブスクリプションを 解約しようとしているときに より直接的にやり取りしたい場合は、 リアルタイムRetention Messagingを使って さらに一歩進めることができます。 リアルタイムRetention Messagingでは、 リアルタイムのメッセージ設定を 提供するエンドポイントを設定します。 これはApp Storeからの サーバ間HTTPリクエストに応答します。 Retention Messaging APIを使って メッセージと画像のペアを設定し、 解約フローで顧客に 表示できます。 App Storeからリアルタイムの 呼び出しを受け取ると、 顧客に表示したいメッセージを App Storeに指定できます。 またはApp Store Connectの Retention Messagingが設定されている場合は、 App Store Connectのメッセージの中から 表示したいものを指定することもできます。
リアルタイムRetention Messagingを使えば Yoga+サブスクリプション向けに App Store Connectの リテンションメッセージを使う場合と 同じビューを作成できます。
ただし、リアルタイムRetention Messagingは プラン変更形式の メッセージもサポートします。 そのため、解約の代替として 顧客に別のプランを 同じサブスクリプショングループ内で 提供できます。 Yoga+サブスクリプションでは、 プラン変更として 年間サブスクリプションを提供しました。
リアルタイムRetention Messagingは Retention Messaging APIによって機能します。 これはメッセージと画像を管理するための サーバ間エンドポイントのセットです。 サンドボックスと本番環境の両方で Retention Messaging APIを使って、 ExerciseアプリのエンドポイントのURLを 設定したり、 Exerciseアプリのメッセージを設定したり、 Exerciseアプリの各サブスクリプションの デフォルトメッセージを選択したり、 Exerciseアプリの画像を アップロードおよび管理できます。 サンドボックス環境のみで、 Retention Messaging APIは パフォーマンステストをサポートし、 performanceTestを開始して 結果を確認するエンドポイントを提供します。 パフォーマンステストに合格することが 本番環境でリアルタイム Retention Messagingを使用する前に必要です。
App Storeがリアルタイム Retention Messagingのリクエストを送信すると、 サブスクリプションを識別するために originalTransactionIdが送信されます。 また、希望するローカライゼーションを 特定するための顧客のロケールや 追跡用のrequestIdentifier およびその他の情報も送信されます。 リアルタイムリクエストに応答する場合、 3つのレスポンス形式から 1つを選択できます。 messageIdentifierを指定して メッセージまたはメッセージと画像を 表示するためのメッセージで応答します。 私はヨガサブスクリプションに関するメッセージを 示すmessageIdentifierを選択し、 対応する画像と ペアになっています。 alternateProductで応答して 顧客にプラン変更を提供します。 同じサブスクリプショングループ内で messageIdentifierとproductIdを指定します。 Yoga+の年間プランを プラン変更として提供しました。
またはプロモーションオファーで応答して 顧客にオファーを提供します。 messageIdentifierと promotionalOfferSignatureを指定します。 Yoga+の3か月無料の promotionalOfferを提供しました。 各シナリオで何を指定するかについての 詳細情報や その他のサポートされるシナリオ、 残りのAPIについては このセッションのリソースにリンクされている ドキュメントをご覧ください。 リアルタイムRetention Messagingには 高速でレスポンシブなサーバが必要です。 優れた顧客体験を確保するには、 本番環境に移行する前にサンドボックスで パフォーマンステストに合格する必要があります。 ただし、サーバが 常に時間内に応答できるとは限りません。 応答できない場合、App Storeは フォールバックメッセージを顧客に表示します。 リアルタイムRetention Messagingは 常にリアルタイムレスポンスを優先します。 利用できないまたは不正な形式の場合、 App Storeはまず App Store Connectの Retention Messaging設定に フォールバックします。対象オファーも含まれます。 App Store Connectのメッセージが サブスクリプションに設定されていない場合、 App Storeは デフォルトメッセージに フォールバックします。これは Retention Messaging APIで設定されています。 サンドボックスでリアルタイム Retention Messagingの設定を始めましょう。 まず、サンドボックスですべての テストメッセージと画像を設定します。 完了したら、 エンドポイントを設定してリクエストの 受け取りを開始します。 テスターがサブスクリプションを 解約しようとしたときに動作します。 サンドボックスでのテストに 満足したら、 パフォーマンステストを開始します。
パフォーマンステストに合格したら、 本番環境のメッセージと 画像を設定して、 続いて本番環境の エンドポイントを設定します。 これでApp Storeからのリクエストへの 応答を開始する準備が整いました。 本番環境のメッセージと画像は 常に最新の状態に保ってください。
iOS 26.5では12か月コミットメント付きの 月次サブスクリプションが導入されました。 この新しい請求プランタイプに対応して リアルタイムRetention Messaging APIも このプランタイプをプラン変更として サポートするよう更新されました。 App Storeへのレスポンスで alternateProductの選択に billingPlanTypeフィールドを指定するだけで Retention Messagingを使って 顧客にこのプランを提供できます。 12か月コミットメント付き月次サブスクリプションの 詳細については、 WWDC26セッション 「What's new in Apple In-App Purchase」をご覧ください。
リアルタイムRetention Messagingは 強力なツールです。 高速でレスポンシブなサーバで 最も効果を発揮します。 App Store Connectの Retention Messagingと比較して ユースケースに最適な 方法を見つけましょう。
App Store Connectの Retention Messagingとリアルタイム Retention Messagingの主な違いは 意思決定にあります。 App Store ConnectでサブスクリプションのRetention Messagingが設定されると、 App Storeはユーザーへのやり取りなしで メッセージと適用可能なオファーを 顧客に表示します。 リアルタイムRetention Messagingでは、 各顧客にリアルタイムで 表示したい内容を選択できます。 App Store Connectの Retention Messagingと リアルタイムRetention Messagingの両方で メッセージと画像を設定できますが、 設定するメカニズムは 異なります。 App Store Connectの Retention Messagingでは、 App Store ConnectまたはApp Store Connect APIを 通じて設定できます。 リアルタイムRetention Messagingでは、 Retention Messaging APIを通じて サーバ間で設定する必要があります。 どちらのフレームワークもオファーをサポートします。 App Store Connectでは 特定のリテンションオファーが必要で、 サブスクリプションにリンクされています。 リアルタイムRetention Messagingでは プロモーションオファーを活用でき、 リアルタイムで提供したいオファーを 選択できます。 リテンションメッセージで使用する プロモーションオファーには 署名が引き続き必要です。 App Store Connectの Retention Messagingは3つのビューをサポートします。 メッセージ、画像、またはオファーです。 リアルタイムRetention Messagingは 同じ3つのビューをサポートし、 さらにプラン変更ビューも サポートします。
App Store Connectの Retention Messagingは最適な選択です。 サーバがない場合や、 リテンションメッセージを設定して App Storeに顧客への 表示内容を選択させたい場合に 適しています。 App Store Connectのメッセージは 特定のサブスクリプションに紐付けられます。
サーバがあり、各顧客に表示する メッセージを選択したい場合は、 リアルタイムRetention Messagingを 検討してください。 プロモーションオファーを使って オファーや対象条件を より細かく制御したい場合も リアルタイムRetention Messagingが適しています。
リアルタイムRetention Messagingは App Store Connectの Retention Messagingの上に構築されています。 フォールバックメッセージのために リアルタイムRetention Messagingを使う場合でも、 常にApp Store Connectでの Retention Messaging設定を検討してください。 App Store Connectの Retention Messagingは、サブスクリプション 解約フローで顧客に価値を提供する優れた方法で すべての方にご利用いただけます。 リアルタイムRetention Messagingは App Store Connectの Retention Messagingの上に構築されています。 リアルタイムRetention Messagingに 関心がある場合は、 興味フォームにご記入ください。 このセッションのリソースにリンクされているフォームから アクセスリクエストを送信できます。 まとめとRetention Messagingを 最大限に活用する方法をご説明します。
App Store Connectで設定する Retention Messagingのタイプを検討してください。 さらに進めるには、リアルタイム Retention Messaging APIドキュメントを確認し、 アプリに適しているかどうかを 判断してください。 リアルタイムRetention Messagingを 進めたい場合は、 興味フォームを送信して アクセスをリクエストしてください。 ご参加ありがとうございました! Retention Messagingについて お伝えできて嬉しかったです。 皆さんのアプリでの活用を
楽しみにしています。
-
-
6:08 - Signed transaction updates
// Signed transaction updates { "bundleId": "com.example.app", "productId": "Yoga_summer_2026", "type": "Auto-Renewable Subscription", "transactionReason": "RENEWAL", "inAppOwnershipType": "PURCHASED", "quantity": 1, "price": 0, "currency": "USD", "offerType": 5, // retention offer "offerIdentifier": "Yoga_2026_cancel_free_3m", "offerDiscountType": "FREE_TRIAL", "offerPeriod": "P3M", "transactionId": "1000098916194" "originalTransactionId": "1000011859217", "appAccountToken": "23a91ca7-06f3-425f-bff6-820904b510a9", ... } -
7:50 - Retention Messaging API
// Retention Messaging API: https://api.storekit.apple.com/inApps/v1/messaging // URL configuration PUT /realtime/url GET /realtime/url DELETE /realtime/url // Message configuration PUT /message/{messageIdentifier} DELETE /message/{messageIdentifier} GET /message/list PUT /default/{productId}/{locale} DELETE /default/{productId}/{locale} GET /default/{productId}/{locale} // Image configuration PUT /image/{imageIdentifier} DELETE /image/{imageIdentifier} GET /image/list // Performance testing - Sandbox only POST /performanceTest // initiate test GET /performanceTest/result/{requestId} // get results -
8:34 - Real-time requests
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } -
8:57 - Real-time requests with message
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } // Your response { "message": { "messageIdentifier": "551ee7c0-c097-418e-9dd5-2a98533a7390" } } -
9:11 - Real-time request with alternate product
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } // Your response { "alternateProduct": { "messageIdentifier": "ed7f25fc-5741-46a3-8502-062e0fb8afd0", "productId": "Yoga_summer_2026_annual" } } -
9:24 - Real-time request with promotional offer
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } // Your response { "promotionalOffer": { "messageIdentifier": "80135e2b-ae15-4ec4-8c5c-9ecc8045c0dc", "promotionalOfferSignatureV2": "eyJhbGciOiJFUzI…" } }
-
-
- 0:00 - Introduction
Retention Messaging allows you to reach your subscribers when they are about to cancel you subscription, offering you an opportunity to save your subscribers at this critical moment.
- 2:38 - Retention Messaging in App Store Connect
Retention Messaging in App Store Connect allows you to set up retention messages that are automatically delivered to your customers when they are about to cancel a subscription. You can use Asset Library and retention offers to add value to your retention messages.
- 6:38 - Real-time Retention Messaging
Use real-time Retention Messaging and the Retention Messaging API to reach out to your customers in real time when they are about to cancel their subscriptions. The App Store will make a server-to-server call to your configured endpoint to get your real-time message preference.
- 11:46 - Retention Messaging comparison
Compare Retention Messaging in App Store Connect and real-time Retention Messaging to determine which is the right fit for your app.