Retention Messaging API: zpráva před zrušením předplatného
Autor: Mehdi Azizi
Publikováno , 10 min
Retention Messaging API od Applu zobrazí tvou zprávu, když předplatitel klepne na Cancel Subscription. Formáty, podmínky, přístup a nastavení.
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 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ý:
- Předplatitel si otevře své předplatné, třeba v Apple Account, Subscriptions, nebo z App Storu.
- Klepne na Cancel Subscription.
- Systém zobrazí potvrzovací stránku (Confirm Cancellation) s tvou zprávou.
- 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, kromě posledního, které je ze session WWDC26. API je pořád preview: dokumentace odkazuje na formulář žádosti o přístup, 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 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 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 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 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 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.
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, formáty ze stránky o nahrání obrázku. 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 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
- Požádej o přístup formulářem Applu.
- Nahraj obrázky, pak zprávy, každou s nadpisem a textem.
- Počkej na jejich schválení a pak zaregistruj výchozí zprávu pro každé předplatné a každý jazyk.
- Pro real-time vytvoř na svém serveru adresu
Get Retention Messagea zaregistruj ji v sandboxu. - Spusť výkonnostní test v sandboxu s testovací transakcí.
- 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. Podle dokumentace RevenueCat:
- Do formuláře Applu zadej adresu, kterou RevenueCat zobrazuje v nastavení tvé App Store appky.
- Po schválení otevři Lifecycle, pak Retention, a připoj sandboxovou adresu.
- Spusť výkonnostní test s aktivním sandboxovým nebo TestFlight předplatným. Může trvat až hodinu.
- Nejdřív vytvoř výchozí zprávu, jazyk po jazyku.
- 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.
- 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ě:
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 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.
- 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 a vytvoření zkušební verze v úvodní nabídce.
Připrav si předplatné dřív než zprávu
iOS & Android Kit 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.
Pokud chystáš své první vydání, udělej si bezplatnou diagnostiku: ř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.

