# Retention Messaging API: zpráva před zrušením předplatného

> Retention Messaging API od Applu zobrazí tvou zprávu, když předplatitel klepne na Cancel Subscription. Formáty, podmínky, přístup a nastavení.

Původní stránka: [Retention Messaging API: zpráva před zrušením předplatného](https://devoria.fr/cs/blog/retention-messaging-api-zprava-pred-zrusenim-predplatneho)
Autor: [Mehdi Azizi](https://devoria.fr/cs/mehdi-azizi)
Publikováno: 2026-11-04
Poslední revize obsahu: 2026-11-04


Retention Messaging API je služba Applu typu server-to-server. Zobrazí tvou zprávu předplatiteli ve chvíli, kdy klepne na Cancel Subscription. Zpráva se objeví na potvrzovací stránce, ještě než se zrušení potvrdí. **Může připomenout hodnotu tvého předplatného, nabídnout jiný tarif nebo promo nabídku, ale tlačítko pro zrušení tam zůstává vždycky.** API je od července 2025 v preview verzi, přístup se získává na žádost, a Apple oznámil jednodušší verzi v App Store Connect na podzim 2026.

Tenhle návod vysvětluje, co API zobrazuje, odkdy existuje, kdo ho může používat, jaké má podmínky a jak ho nastavit. Všechno vychází z dokumentace Applu a ze session WWDC26, která se mu věnuje. Znovu jsem je prošel 3. listopadu 2026.

Ve svých iOS appkách prodávám předplatné: Solys, blokátor sociálních sítí, TradaZen, simulátor tradingu, Nolera, appka na zkoušení outfitů pomocí AI, a Vigie. O přístup k API jsem pro všechny čtyři požádal 25. října 2026 a připravil jsem jejich zprávy ve všech jazycích. K 28. říjnu souhlas od Applu ještě nepřišel, takže tenhle návod popisuje pravidla a moji přípravu, zatím ne výsledky.

## Co Retention Messaging API dělá

Podle [dokumentace Applu](https://developer.apple.com/documentation/retentionmessaging) ti API dovolí vybrat zprávu, kterou systém zobrazí, když si zákazník otevře detail předplatného a možná se chystá ho zrušit. Zprávy si připravíš předem, pro každý produkt a každý jazyk.

Průběh je vždycky stejný:

1. Předplatitel si otevře své předplatné, třeba v Apple Account, Subscriptions, nebo z App Storu.
2. Klepne na Cancel Subscription.
3. Systém zobrazí potvrzovací stránku (Confirm Cancellation) s tvou zprávou.
4. Může předplatné i tak zrušit, ponechat si ho, nebo přijmout to, co mu tvoje zpráva nabízí.

Zpráva se zobrazuje na iOS 15.1 a iPadOS 15.1 nebo novějších, na visionOS 1 a na macOS 14 nebo novějším.

## Odkdy a pro koho

| Datum       | Co se mění, podle Applu                                  |
| ----------- | -------------------------------------------------------- |
| 16. 7. 2025 | Verze 1.0: první preview verze API                       |
| 9. 12. 2025 | Výkonnostní test serveru pro real-time                   |
| 31. 3. 2026 | Odrážky ve zprávách, nastavení real-time adresy přes API |
| 27. 4. 2026 | Podpora měsíčních předplatných s 12měsíčním závazkem     |
| Červen 2026 | WWDC26: oznámení modulu v App Store Connect              |

Data pocházejí z [changelogu API](https://developer.apple.com/documentation/retentionmessaging/retention-messaging-changelog), kromě posledního, které je ze session WWDC26. API je pořád preview: dokumentace odkazuje na [formulář žádosti o přístup](https://developer.apple.com/contact/request/retention-messaging-api/), ke kterému se musíš přihlásit vývojářským účtem.

Na WWDC26 představila session [Explore Retention Messaging in App Store Connect](https://developer.apple.com/videos/play/wwdc2026/309/) modul v App Store Connect, který se nastavuje bez kódu. Apple o něm říká, že je „otevřený všem“. Real-time verze ale zůstává na žádost. [Stránka novinek App Storu](https://developer.apple.com/app-store/whats-new/) ohlašuje modul na „letošní podzim“. **K 3. listopadu 2026 mu nápověda App Store Connect zatím nevěnuje žádnou stránku a 28. října se modul v mém účtu neobjevil.**

API se týká appek, které prodávají automaticky obnovované předplatné. Není jen pro velké vydavatele: RevenueCat ve své [studii 22 milionů zpráv](https://www.revenuecat.com/blog/growth/apple-retention-messaging-benchmarks) uvádí, že o přístup můžou žádat i malé appky.

## 4 typy zpráv

| Typ             | Co předplatitel uvidí                    | Výchozí zpráva | Real-time |
| --------------- | ---------------------------------------- | -------------- | --------- |
| Text            | Nadpis, text, až pět odrážek             | Ano            | Ano       |
| Text s obrázkem | Totéž, s obrázkem                        | Ano            | Ano       |
| Změna tarifu    | Text a jiné předplatné ze stejné skupiny | Ne             | Ano       |
| Promo nabídka   | Text a nabídka pokračovat za nižší cenu  | Ne             | Ano       |

Podle stránky o [přípravě zpráv](https://developer.apple.com/documentation/retentionmessaging/setting-up-retention-messages) může být výchozí zpráva jen text, s obrázkem nebo bez něj. **S API vyžaduje nabídka nebo jiný tarif odpověď v reálném čase.** Ohlášený modul v App Store Connect ale nabídne zprávu s nabídkou i bez serveru.

Promo nabídka je ta, kterou vytvoříš v App Store Connect. Podle [nápovědy k promo nabídkám](https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-promotional-offers-for-auto-renewable-subscriptions) cílí na současné i bývalé předplatitele. V retenční zprávě ji podle stránky o přípravě zpráv podepisuje tvůj server. Změna tarifu nabízí předplatné ze stejné skupiny. Pokud s těmito nabídkami začínáš, přečti si nejdřív můj návod na [offer codes a promo nabídky](https://devoria.fr/cs/blog/offer-codes-app-store-connect-promo-kod).

## Co můžeš zobrazit: přesné limity

| Prvek                  | Limit Applu                                              |
| ---------------------- | -------------------------------------------------------- |
| Nadpis                 | nejvýš 66 znaků                                          |
| Text                   | nejvýš 144 znaků                                         |
| Odrážky                | nejvýš 5                                                 |
| Obrázek na celou šířku | PNG bez průhlednosti, šířka 3 840 px, výška 160 až 2 160 |
| Obrázek odrážky        | 1 024 × 1 024 px                                         |
| Obrázků na appku       | nejvýš 2 000                                             |

Délky pocházejí z popisu [těla požadavku na nahrání zprávy](https://developer.apple.com/documentation/retentionmessaging/uploadmessagerequestbody), formáty ze stránky o [nahrání obrázku](https://developer.apple.com/documentation/retentionmessaging/upload-image). Apple navíc chce obrázky, které fungují stejně dobře ve světlém i tmavém režimu.

Každou zprávu a každý obrázek Apple kontroluje. Jejich stav přejde z `PENDING` na `APPROVED` a systém zobrazí jen to, co je schválené. V sandboxu je schválení automatické. Dokumentace stanoví jasné pravidlo pro obsah: neposílat nic zavádějícího ani nepřesného.

## Podmínky, které musíš splnit

- **Výchozí zpráva pro každý produkt v každém jazyce.** Bez ní se v daném jazyce nezobrazí nic. Je to zároveň záloha, když tvůj server neodpoví.
- **Schválené zprávy a obrázky** ještě před spuštěním.
- **Pro real-time rychlý server.** Stránka o [nastavení real-time adresy](https://developer.apple.com/documentation/retentionmessaging/setting-up-retention-messaging-endpoint) vyžaduje platný SSL certifikát, TLS 1.2 a odpověď do 700 ms v produkci. Pokud to trvá déle, požadavek selže a zobrazí se výchozí zpráva.
- **Úspěšný výkonnostní test v sandboxu**, než zaregistruješ produkční adresu.
- **Ověření appky.** Každý požadavek od Applu obsahuje identifikátor appky, `appAppleId`. Pokud neodpovídá tvému, Apple žádá, abys neodpovídal.

Real-time požadavek ti předá identifikátor původní transakce, produkt a jazyk zařízení. Zprávu vybíráš ty, podle svých pravidel.

## Nastavení Retention Messaging: tři cesty

| Cesta                   | Pro koho                             | Co je potřeba                                    |
| ----------------------- | ------------------------------------ | ------------------------------------------------ |
| Modul App Store Connect | Pro všechny, až vyjde                | Žádný kód; text, obrázek nebo nabídka            |
| API s vlastním serverem | Pro ty, kdo mají back-end            | Přístup od Applu, HTTPS adresa, výkonnostní test |
| API přes RevenueCat     | Appky, které už RevenueCat používají | Přístup od Applu, nastavení v dashboardu         |

Když existuje víc nastavení najednou, Apple v session WWDC26 vysvětluje pořadí: nejdřív real-time odpověď. Pokud chybí nebo je špatně utvořená, nastavení z App Store Connect. Pokud to neexistuje, výchozí zpráva nastavená přes API.

### S vlastním serverem

1. Požádej o přístup formulářem Applu.
2. Nahraj obrázky, pak zprávy, každou s nadpisem a textem.
3. Počkej na jejich schválení a pak zaregistruj výchozí zprávu pro každé předplatné a každý jazyk.
4. Pro real-time vytvoř na svém serveru adresu `Get Retention Message` a zaregistruj ji v sandboxu.
5. Spusť [výkonnostní test](https://developer.apple.com/documentation/retentionmessaging/initiate-performance-test) v sandboxu s testovací transakcí.
6. Po úspěšném testu zaregistruj produkční adresu.

### S RevenueCat

Tuhle cestu jsem zvolil já: žádný server k psaní a moje appky už přes RevenueCat jedou, jak vysvětluju v článku [RevenueCat a in-app předplatné na iOS](https://devoria.fr/cs/blog/revenuecat-predplatne-ios-aplikace). Podle [dokumentace RevenueCat](https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/apple-retention-messaging-api):

1. Do formuláře Applu zadej adresu, kterou RevenueCat zobrazuje v nastavení tvé App Store appky.
2. Po schválení otevři Lifecycle, pak Retention, a připoj sandboxovou adresu.
3. Spusť výkonnostní test s aktivním sandboxovým nebo TestFlight předplatným. Může trvat až hodinu.
4. Nejdřív vytvoř výchozí zprávu, jazyk po jazyku.
5. Pak přidej real-time zprávy s pravidly. Jedno z nich, „Is in free trial“, cílí na lidi ve zkušební verzi zdarma.
6. Přepni do produkce: nastavení ze sandboxu se nepřenáší, zprávy musíš vytvořit znovu.

## Jak napsat zprávu, která udrží, ale nenachytá

Text je pevný a Apple ho před zobrazením kontroluje. Nemůže tedy mluvit o konkrétním člověku, který ho čte, ani o dni, kdy ho čte. Tady je výchozí zpráva, kterou jsem připravil pro TradaZen, v češtině:

```text
Nadpis (48 znaků):
Chtěl ses naučit obchodovat, a teď jdeš naslepo?

Text (112 znaků):
Bez tréninku platí každou chybu tvoje skutečné peníze. Tady chyby nestojí nic. Tvoje série, liga a lekce končí.
```

Pravidla, která jsem si stanovil pro všechny čtyři appky:

- **Nadpis vrací člověka k jeho cíli**, formou otázky. Nezahanbuje ho.
- **Text přesně říká, co končí.** Píšu, že se přístup „uzamkne“, když data zůstávají, nikdy že budou „smazána“.
- **Žádná časová slova** jako „zítra“ nebo „dnes“: stejný text se zobrazí kdykoli během období.
- **Žádný slib výdělku**, žádná falešná naléhavost. První nadpis, který sliboval změnu života díky tradingu, jsem vyřadil ještě před odesláním. [Guideline 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) zakazuje jakékoli manipulativní praktiky a paywall TradaZenu už byl z tohohle důvodu zamítnut, jak popisuju v článku [guideline 5.6 a paywall](https://devoria.fr/cs/blog/guideline-5-6-paywall-zamitnuti-app-store).
- **Každý jazyk má svůj text**, se slovníkem přeložené appky, a spočítaný na znak přesně.

Pro TradaZen chystám i real-time zprávu pro lidi ve zkušební verzi ročního předplatného. Nabídne levnější roční tarif ze stejné skupiny, protože moje čísla ukazují, že tihle lidé používají appku stejně jako ti, kdo platí: odmítají cenu. Tohle nastavení čeká na souhlas Applu.

## Co od toho čekat

Na zázrak nespoléhej. Apple označuje jako save rate podíl předplatitelů, kteří si předplatné ponechají, když se dostanou na potvrzovací stránku. V session WWDC26 Apple uvádí, že předplatná, která Retention Messaging zavedla, si v tomhle ukazateli v průměru polepší o 1,4 procentního bodu. Zprávy s promo nabídkou mají nejlepší pozorovaný zisk, 5,5 bodu, a výsledky se liší vývojář od vývojáře. Studie RevenueCat zase ukazuje, že předplatitelé přijmou jen zhruba 1,1 % promo nabídek a 0,6 % změn tarifu.

Zpráva tedy nenahradí práci předem. Zkušební verze zdarma, kterou někdo zruší během minuty, se rozhoduje na paywallu a v prvních sezeních: příčiny a páky najdeš v mém návodu na [zrušenou zkušební verzi zdarma](https://devoria.fr/cs/blog/zrusena-zkusebni-verze-ios-proc-a-co-delat) a vytvoření zkušební verze v [úvodní nabídce](https://devoria.fr/cs/blog/introductory-offer-app-store-connect-zkusebni-verze-ios).

## Připrav si předplatné dřív než zprávu

[iOS & Android Kit](https://devoria.fr/cs/kits/ios) vychází ze startovního kódu mých appek: onboarding, paywall i předplatné jsou už naprogramované a čtyřkroková cesta tě dovede až do App Storu, tvým tempem. Celý řetězec, od produktů v App Store Connect po paywall, je popsaný na stránce [in-app předplatné na iOS](https://devoria.fr/cs/expertise/predplatne-v-aplikaci-ios).

Pokud chystáš své první vydání, [udělej si bezplatnou diagnostiku](https://devoria.fr/cs/diagnostic): řekne ti, co tvůj projekt doopravdy brzdí, a pošle ti můj checklist proti zamítnutí od Applu.

## Časté dotazy

### Co je Retention Messaging API od Applu?

Je to služba typu server-to-server, která vybírá zprávu zobrazenou předplatiteli, když klepne na Cancel Subscription. Zpráva se zobrazí na potvrzovací stránce, ještě před zrušením. Může připomenout hodnotu předplatného, nabídnout jiný tarif nebo promo nabídku.

### Je Retention Messaging dostupné pro všechny vývojáře?

API je preview verze, přístup se získává na žádost u Applu. Na WWDC26 Apple oznámil modul v App Store Connect, otevřený všem, plánovaný na podzim 2026. K 3. listopadu 2026 ho nápověda App Store Connect zatím nepopisuje.

### Na jakých verzích iOS se zpráva zobrazuje?

Na iOS 15.1 a iPadOS 15.1 nebo novějších, na visionOS 1 a na macOS 14 nebo novějším. Na starším zařízení proběhne zrušení bez zprávy.

### Brání zpráva předplatiteli ve zrušení?

Ne. Potvrzovací stránka má vždy tlačítko pro zrušení. Předplatitel si také může předplatné ponechat nebo přijmout nabízenou nabídku či tarif.

### Dá se při zrušení nabídnout sleva?

Ano. S API je to zpráva s promo nabídkou, jen v reálném čase: nabídka se vytváří v App Store Connect a podepisuje ji tvůj server. Ohlášený modul v App Store Connect umožní zprávu s nabídkou taky. Změna tarifu zase nabízí jiné předplatné ze stejné skupiny.

### Kolik znaků může mít retenční zpráva?

Nadpis má nejvýš 66 znaků, text 144. Můžeš přidat až pět odrážek a PNG obrázek bez průhlednosti. Každý jazyk potřebuje vlastní výchozí zprávu.

### Potřebuju k Retention Messaging server?

Pro výchozí zprávy nemusíš hostovat žádnou adresu: stačí zavolat API, nahrát je a zaregistrovat. S RevenueCat roli serveru hraje on. Real-time vyžaduje HTTPS adresu, která odpoví do 700 ms. Ohlášený modul v App Store Connect se nastavuje bez kódu.


## Tvůj projekt

[iOS & Android Kit](https://devoria.fr/cs/kits/ios): Vytvoř si aplikaci pro iPhone a Android s Claude Code: startovní kód mých aplikací, cesta až do obchodů a všechny kity. 2 399 Kč.

[Diagnostika: co tě dělí od tvé iPhone aplikace](https://devoria.fr/cs/diagnostic): 7 otázek, 60 sekund: zjistíš, co ti doopravdy brání vydat iPhone aplikaci, dostaneš cestu ve 4 krocích a kit přesně pro tebe.
