Retention Messages in App Store Connect: Catch Subscribers Before They Cancel
Until now, a subscriber who decided to cancel just tapped Cancel and was gone. Retention messages change that: when someone starts to cancel your subscription, the App Store shows them your message first. You can remind them what they'll lose, mention what's coming, or present a retention offer.
It's set up in App Store Connect, under Monetization → Subscriptions → Retention Messaging.
What the subscriber sees
There are three versions, and the App Store picks one:
- Text only: a header and body text.
- Text and image: if you added an image and either no offer is linked or the subscriber isn't eligible for it.
- Text and retention offer: if an offer is linked and the subscriber is eligible. The offer takes the image's place.
So the image is what non-eligible people see, and the offer is what eligible people see. Write the text so it works in both cases.
The limits
- 10 messages per app. Deleting one is permanent.
- One message per subscription. A message can cover any number of subscriptions, but moving a subscription into a new message removes it from the old one when you save.
- 10 retention offers per subscription billing plan type (the standard plan, or the monthly plan with a 12-month commitment for yearly subscriptions). All 10 can be linked to one message.
- Retention offers only show through a message. An offer that isn't linked to a message is never seen.
- Image size: 3840 × 2160 or 5244 × 2950 pixels.
What App Review rejects
The rules are strict, because the text is shown to everyone:
- No prices or discounts in the text. "$9.99", "50% off", "one month free" get rejected. The offer appears on its own card, only for eligible subscribers.
- Factual losses are fine. "You'll lose access to your downloaded episodes" is allowed.
- No pressure or scare tactics. No claims like "your device will be at risk", no guarantees you can't back up.
- Avoid superlatives and statistics you can't prove: "the best app", "92% of users…".
- Normal capitalization and punctuation. No ALL CAPS, no "!!!".
Writing a message that works
- Name what they lose, specifically. "Your 214 saved recipes and meal plans stay in the app, but you won't be able to open them" beats "Don't miss out on premium features".
- Mention what's coming, if it's real and soon: "Offline maps arrive next month."
- Let the offer do the selling. The text explains the value, and the offer card gives the reason to stay.
- Localize for every storefront where the subscription is sold. The editor starts in your primary language, so add the rest from the language menu.
Setting up a retention offer
When you link a subscription to the message, click Add Retention Offer and either reuse an offer or create one:
- Reference name and offer identifier. Both are locked once created. The identifier shows up in Sales and Trends and in StoreKit transactions.
- Eligibility. Paid Subscription Duration sets how long someone must have paid before they qualify. Wait Between Offers is optional and counts per offer, not per subscription.
- Countries or regions where the offer applies.
- Type: Pay as you go, Pay up front, or Free, with a duration and a price. Other countries get prices from current exchange rates, and you can override any of them.
A sensible start: one offer for people who have paid for a few months, so it rewards loyal subscribers instead of teaching new ones to cancel for a discount.
Step by step
- Apps → your app → Monetization → Subscriptions → Retention Messaging → + / Get Started.
- Enter a reference name (internal only) and click Create.
- Write the header and body, then add localizations.
- Optionally add an image from the Asset Library or upload one.
- Under Subscriptions & Offers, add the subscriptions, and an offer for each if you want one.
- Check the preview on the right: card and iPhone/iPad views, each offer, and None to see what non-eligible subscribers get.
- Click Add for Review. Text alone is enough to submit, and images and offers can be added later.
Editing a live message
Click New Version → Create. The draft sits next to the live version, which keeps running while you edit and while the draft is in review. Sandbox testers see the draft, which is handy for testing. Once approved, the draft replaces the live version, and there's no rollback.
For automation there's the App Store Connect API and a separate Retention Messaging API, and Apple covers the feature in the WWDC26 session "Explore Retention Messaging in App Store Connect".
Know why they're leaving
A retention message works best when it answers the real reason people cancel, and your reviews usually say what that is: "too expensive", "the sync broke", "the feature I paid for was removed". AppStoreReview collects your reviews from 175+ countries, filters them by keyword, and alerts you to new 1- and 2-star reviews, so you know what to write before someone taps Cancel.
Frequently Asked Questions
Where do subscribers see a retention message?
When they start to cancel the subscription. Instead of a plain cancel screen, they see your header and body text, plus either an image or a retention offer if they're eligible for one.
Can I mention a discount in the retention message text?
No. Every subscriber sees the text, including those who aren't eligible for an offer, so App Review rejects messages that mention prices, discounts or free periods ("50% off", "$9.99", "one month free"). The offer itself appears as a separate card for eligible subscribers.
How many retention messages can I have?
Up to 10 per app. One message can cover any number of subscriptions, but each subscription can belong to only one message at a time. Deleting a message is permanent.
Can I roll back a retention message after editing it?
No. Edits go into a new version that sits next to the live one until App Review approves it. Once approved, it replaces the live version and the old one can't be restored.
Who can set up retention messages?
Account Holder, Admin, App Manager or Marketing roles in App Store Connect.