On November 4, 2026, Apple made retention messages for subscriptions available to every developer in App Store Connect. When someone taps Cancel Subscription on an auto-renewable subscription, your app can now show a short message, an image or a discount on Apple's own Confirm Cancellation screen. This guide explains how the feature works, what App Review will reject, and a setup plan a small app team can finish in an afternoon.
▶ Watch the video version (about 4 minutes):
What Apple shipped on November 4
Retention Messaging was introduced at WWDC26 in the session Explore Retention Messaging in App Store Connect. The November announcement opens the no-code version to all developers: you write the message in App Store Connect, attach it to your subscriptions, and submit it for review. No server work and no access request are needed for this part.
There are two layers:
- Retention Messaging in App Store Connect. Open to everyone. You create messages, add localizations, an optional image and optional retention offers, and map them to subscriptions. It can also be automated with the App Store Connect API.
- Real-time Retention Messaging. Your server picks the message for each subscriber through the Retention Messaging API. Apple says API access is available by request, through an interest form linked from the WWDC session.
The message appears inside the system cancellation flow, for example on the Apple Account > Subscriptions page. It does not replace the Cancel button: the subscriber still sees Cancel Subscription and Keep Subscription, and can accept the offer if one is shown. According to Apple's documentation, retention messages are visible on iOS 15.1 or later, iPadOS 15.1 or later, macOS 14 or later and visionOS 1 or later.
What a retention message can contain
Per the App Store Connect help page, a message has required header and body text plus two optional parts: an image and one or more retention offers. A subscriber sees one of three versions:
- Text only, if you add nothing else.
- Text and an image, if you added an image and either attached no offer or the subscriber is not eligible for any attached offer.
- Text and a retention offer, if at least one offer is attached and the subscriber qualifies. The offer replaces the image.
The limits that matter when you plan:
- Up to 10 retention messages per app.
- A subscription can have only one retention message at a time. Assigning a subscription to a new message removes it from the old one.
- Up to 10 retention offers per subscription billing plan type (standard, or monthly with a 12-month commitment for annual plans), and you can attach all 10 to one message.
- Images must be 3840 × 2160 or 5244 × 2950 pixels, picked from your Asset Library or uploaded.
- Roles that can set this up: Account Holder, Admin, App Manager or Marketing.
The real-time API supports four message types: text with optional bullet points, text with an image, a switch-plan message that suggests another subscription, and a promotional-offer message that can offer a discount at the same or a different tier. Messages chosen in real time take precedence over App Store Connect messages, which in turn take precedence over default messages set through the API.
Retention offers: a new offer type
Retention offers are a new offer type that only appears inside a retention message. You can choose Pay as you go, Pay up front or Free, pick a duration and price for your base country, and let App Store Connect calculate prices for other storefronts. Eligibility has two controls:
- Paid Subscription Duration: how long someone must have kept a paid subscription before they qualify.
- Wait Between Offers: how long a subscriber must wait before redeeming the same offer again. Apple notes this applies to each offer individually, so someone who qualifies for two different offers on the same subscription may get the second one without waiting.
When a retention offer is redeemed, the signed transaction and renewal info carry a new offerType value of 5, according to the WWDC26 session. If your backend or analytics only expects types 1 to 4, update it before the first offers are redeemed, or the revenue will land in the wrong bucket.
Here is how retention offers sit next to the offers you may already use:
| Tool | Who sees it | When | Setup |
|---|---|---|---|
| Retention message (ASC) | Active subscribers | On the cancel confirmation screen | App Store Connect, no code |
| Real-time retention message | Active subscribers, per-user choice | Same screen, chosen by your server | Retention Messaging API, by request |
| Promotional offer | Current or former subscribers | Where your app shows it | StoreKit, signed by your server |
| Win-back offer | Former subscribers | After the subscription has ended | App Store Connect |
| Offer code | New, current or former subscribers | When a code is redeemed | App Store Connect |
Apple's subscriptions overview describes the other offer types, and the pricing reference lists the limits for each.
What App Review will reject
Retention messages go through App Review like other metadata. Apple's content rules are specific, and they are the part teams are most likely to get wrong:
- No prices or offers in the header or body text. Phrases like "$9.99", "50% off" or "one month free" lead to rejection, because every subscriber sees the text, including those who do not qualify for the offer. Price details belong only in the attached offer.
- Factual loss statements are fine. "You'll lose access to downloaded content when your subscription ends" is acceptable.
- No coercion and no unverifiable claims. Apple's example of what not to do is telling users that cancelling a VPN will get their device infected. Softer versions, "the best app" style superlatives and unsupported statistics are strongly discouraged.
- Plain style. Standard capitalisation and punctuation, no all-caps and no rows of exclamation marks.
- Localise for every storefront where the subscription is sold.
Editing an approved message creates a new draft version. The published version keeps showing until the draft is approved, and you cannot roll back to an older version. Sandbox testers always see the latest draft, which is useful for QA.
Does it actually work?
Apple shared early numbers in the WWDC26 session. Subscriptions that adopted Retention Messaging saw an average save-rate increase of +1.4 percentage points, and promotional-offer messages reached +5.5 points, the highest Apple observed. Apple defines save rate as the share of subscribers who keep their subscription after reaching the cancel confirmation page, and it notes that results varied across developers. Treat these as a reason to test, not as a forecast for your app.
The bigger risk is giving discounts to people who would not have used them anyway. RevenueCat's setup guide points out that in App Store Connect everyone who cancels a given plan sees the same text, and only the offer is limited by eligibility. People cancel for different reasons: price, finishing what they came for, or a bug. A discount only helps the first group. Media coverage from 9to5Mac and iClarified also stresses that the cancel option always stays on screen, so this is a last reminder, not a trap.
A setup checklist for small app teams
- Find your cancel reasons first. Look at reviews, support tickets and any exit survey you run. If most people leave because of price, an offer makes sense. If they leave because they forgot what the app does, a value message with an image may be enough.
- Write one message per plan group. In App Store Connect go to your app, then Monetization > Subscriptions > Retention Messaging > Get Started. Write a header and body that describe concrete value: new content coming, features they use, data they keep.
- Remove every number from the copy. Check each locale for prices, percentages and "free month" wording before you submit.
- Add an image at 3840 × 2160 that shows real app content. Ineligible subscribers will see this version.
- Attach a conservative retention offer. Start with a modest discount for one or two billing periods and require a minimum paid duration, so brand-new subscribers do not learn to cancel for a discount.
- Set Wait Between Offers so the same person cannot redeem the same offer every time they open the cancel screen.
- Update your backend for
offerType5 and tag these redemptions separately in your dashboards. - QA in Sandbox, using the preview tool for card, iPhone and iPad views, and the Offer menu's None option to check the ineligible version.
- Measure for 30 to 60 days: save rate, how many saved users renew at full price after the offer ends, and refund rates. Then decide whether the real-time API is worth requesting.
When to request the real-time API
The App Store Connect version is enough for most small apps. The real-time API makes sense when you need per-user decisions: a deeper offer for long-time subscribers, a switch-plan suggestion (for example, from annual to monthly), or A/B tests. It requires a server endpoint that the App Store calls when an active subscriber views a subscription details page with a Cancel button. The call includes the original transaction ID and the customer's locale. Apple also asks you to configure a default message for every product and locale as a fallback, and to pass a performance test before you can set a production URL. If you already use a subscription platform, check whether it offers a hosted integration; RevenueCat, for example, has announced one.
Our take
At Lightning Studio we build mobile apps and games for overseas markets, and churn is usually where small subscription apps lose the most money. We like that this feature costs almost nothing to try: one message, one image and one modest offer per plan, reviewed by Apple, with no app update required. Our advice is to start with value messaging, add an offer only for subscribers with some paid history, and fix offerType 5 in your analytics on day one. A good retention message will not save a weak product, but it can stop you losing users who simply forgot why they subscribed.
Sources
- Apple Developer News: Now available: Retention messages for subscriptions (Nov 4, 2026)
- App Store Connect Help: Configure retention messages
- Apple Developer Documentation: Retention Messaging API
- WWDC26: Explore Retention Messaging in App Store Connect
- App Store Connect Help: In-App Purchase and subscriptions pricing and availability
- Apple: Auto-renewable Subscriptions
- 9to5Mac: Apple now lets developers offer discounts when users move to cancel subscriptions
- iClarified: Apple Lets Apps Offer Discounts When You Cancel a Subscription
- RevenueCat: How to set up your first Apple retention message in App Store Connect
Need help setting up subscriptions, offers or retention flows in your iOS app? Lightning Studio builds and maintains mobile apps for teams worldwide. Email support@lightning-studio.org or visit https://lightning-studio.org/studio/.
Cover photo: Spotify on smartphone (Unsplash).jpg) by NeONBRAND, CC0 1.0, via Wikimedia Commons (cropped).



