# Retention Messaging API: sporočilo pred odpovedjo naročnine

> Appleov Retention Messaging API prikaže tvoje sporočilo, ko naročnik tapne Cancel Subscription. Formati, pogoji, dostop in nastavitev.

Izvirna stran: [Retention Messaging API: sporočilo pred odpovedjo naročnine](https://devoria.fr/sl/blog/retention-messaging-api-sporocilo-pred-odpovedjo-narocnine)
Avtor: [Mehdi Azizi](https://devoria.fr/sl/mehdi-azizi)
Objava: 2026-11-04
Zadnja revizija vsebine: 2026-11-04


Retention Messaging API je Appleova storitev, ki deluje od strežnika do strežnika. Naročniku prikaže tvoje sporočilo v trenutku, ko tapne Cancel Subscription. Sporočilo se pojavi na potrditveni strani, preden je odpoved potrjena. **Naročnika lahko spomni na vrednost tvoje naročnine ali mu ponudi drug paket ali promocijsko ponudbo, gumb za odpoved pa vedno ostane na voljo.** API je od julija 2025 v predogledu, dostop dobiš na zahtevo. Apple je za jesen 2026 napovedal preprostejšo različico v App Store Connect.

V tem vodniku razložim, kaj API prikaže, od kdaj obstaja, kdo ga lahko uporablja, kakšni so pogoji in kako ga nastaviš. Vse podatke sem vzel iz Appleove dokumentacije in iz seje WWDC26, ki je posvečena temu API-ju. Ponovno sem jih preveril 3. novembra 2026.

V svojih iOS aplikacijah prodajam naročnine: Solys je blokator družbenih omrežij, TradaZen simulator trgovanja, Nolera aplikacija za pomerjanje oblačil z umetno inteligenco, potem je tu še Vigie. Dostop do API-ja sem za vse štiri zaprosil 25. oktobra 2026 in pripravil sporočila v vseh njihovih jezikih. 28. oktobra Applova odobritev še ni prišla. Ta vodnik zato opisuje pravila in mojo pripravo, rezultatov pa še ne.

## Kaj počne Retention Messaging API

Po [Applovi dokumentaciji](https://developer.apple.com/documentation/retentionmessaging) z API-jem izbereš sporočilo, ki ga sistem prikaže, ko stranka odpre podrobnosti naročnine in jo morda namerava odpovedati. Sporočila pripraviš vnaprej, za vsak izdelek in vsak jezik.

Postopek je vedno enak:

1. Naročnik odpre svojo naročnino, na primer v Apple Account, Subscriptions, ali prek App Store.
2. Tapne Cancel Subscription.
3. Sistem prikaže potrditveno stran (Confirm Cancellation) s tvojim sporočilom.
4. Naročnik lahko naročnino vseeno odpove, jo obdrži ali sprejme, kar mu ponuja tvoje sporočilo.

Sporočilo je vidno na iOS 15.1 in iPadOS 15.1 ali novejših, na visionOS 1 in na macOS 14 ali novejših.

## Od kdaj in za koga

| Datum         | Kaj se spremeni, po Applovih navedbah                              |
| ------------- | ------------------------------------------------------------------ |
| 16. jul. 2025 | Različica 1.0: prvi predogled API-ja                               |
| 9. dec. 2025  | Test zmogljivosti strežnika za realni čas                          |
| 31. mar. 2026 | Alineje v sporočilih, nastavitev naslova za realni čas prek API-ja |
| 27. apr. 2026 | Podpora za mesečne naročnine z 12-mesečno vezavo                   |
| Junij 2026    | WWDC26: napoved modula v App Store Connect                         |

Datumi so iz [dnevnika različic API-ja](https://developer.apple.com/documentation/retentionmessaging/retention-messaging-changelog), razen zadnjega, ki je iz seje WWDC26. API je še vedno predogled: dokumentacija te pošlje na [obrazec za zahtevo dostopa](https://developer.apple.com/contact/request/retention-messaging-api/), za katerega se moraš prijaviti v svoj razvijalski račun.

Na WWDC26 je seja [Explore Retention Messaging in App Store Connect](https://developer.apple.com/videos/play/wwdc2026/309/) predstavila modul v App Store Connect, ki ga nastaviš brez kode. Apple pravi, da je „odprt za vse". Različica v realnem času pa ostaja na zahtevo. [Stran z novostmi App Store](https://developer.apple.com/app-store/whats-new/) napoveduje modul za „to jesen". **3. novembra 2026 pomoč za App Store Connect temu modulu še ne namenja nobene strani, 28. oktobra pa ga v svojem računu še nisem videl.**

API je namenjen aplikacijam, ki prodajajo samodejno obnovljivo naročnino. Ni rezerviran za velike založnike: RevenueCat v svoji [študiji 22 milijonov sporočil](https://www.revenuecat.com/blog/growth/apple-retention-messaging-benchmarks) navaja, da lahko dostop zaprosijo tudi majhne aplikacije.

## 4 vrste sporočil

| Vrsta               | Kaj vidi naročnik                                 | Privzeto sporočilo | Realni čas |
| ------------------- | ------------------------------------------------- | ------------------ | ---------- |
| Besedilo            | Naslov, besedilo, do pet alinej                   | Da                 | Da         |
| Besedilo s sliko    | Enako, s sliko                                    | Da                 | Da         |
| Menjava paketa      | Besedilo in druga naročnina iz iste skupine       | Ne                 | Da         |
| Promocijska ponudba | Besedilo in ponudba za nadaljevanje po nižji ceni | Ne                 | Da         |

Po strani o [pripravi sporočil](https://developer.apple.com/documentation/retentionmessaging/setting-up-retention-messages) je privzeto sporočilo lahko samo besedilo, s sliko ali brez. **Če želiš z API-jem ponuditi ponudbo ali drug paket, moraš odgovarjati v realnem času.** Napovedani modul v App Store Connect pa bo omogočal sporočilo s ponudbo brez strežnika.

Promocijska ponudba je tista, ki jo ustvariš v App Store Connect. Po [pomoči o promocijskih ponudbah](https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-promotional-offers-for-auto-renewable-subscriptions) je namenjena trenutnim in nekdanjim naročnikom. V sporočilu za zadržanje jo po strani o pripravi sporočil podpiše tvoj strežnik. Menjava paketa ponudi naročnino iz iste skupine. Če se s temi ponudbami šele spoznavaš, najprej preberi moj vodnik o [kodah ponudb in promocijskih ponudbah](https://devoria.fr/sl/blog/offer-codes-app-store-connect-promo-koda).

## Kaj lahko prikažeš: natančne omejitve

| Element               | Applova omejitev                                         |
| --------------------- | -------------------------------------------------------- |
| Naslov                | največ 66 znakov                                         |
| Besedilo              | največ 144 znakov                                        |
| Alineje               | največ 5                                                 |
| Slika čez celo širino | PNG brez prosojnosti, širina 3840 px, višina 160 do 2160 |
| Slika alineje         | 1024 × 1024 px                                           |
| Slike na aplikacijo   | največ 2000                                              |

Dolžine so iz opisa [telesa zahteve za pošiljanje sporočila](https://developer.apple.com/documentation/retentionmessaging/uploadmessagerequestbody), formati pa s strani o [pošiljanju slike](https://developer.apple.com/documentation/retentionmessaging/upload-image). Apple zahteva tudi slike, ki enako dobro delujejo v svetlem in temnem načinu.

Apple pregleda vsako sporočilo in vsako sliko. Njihovo stanje se spremeni iz `PENDING` v `APPROVED`, sistem pa prikaže samo odobreno. V sandboxu je odobritev samodejna. Dokumentacija postavlja jasno pravilo glede vsebine: ne pošiljaj ničesar zavajajočega ali netočnega.

## Pogoji, ki jih moraš izpolniti

- **Privzeto sporočilo za vsak izdelek, v vsakem jeziku.** Brez njega se v tem jeziku ne prikaže nič. Je tudi rezerva, če tvoj strežnik ne odgovori.
- **Odobrena sporočila in slike**, preden karkoli objaviš.
- **Za realni čas hiter strežnik.** Stran o [nastavitvi naslova za realni čas](https://developer.apple.com/documentation/retentionmessaging/setting-up-retention-messaging-endpoint) zahteva veljavno SSL potrdilo, TLS 1.2 in odgovor v manj kot 700 ms v produkciji. Če traja dlje, zahteva ne uspe in prikaže se privzeto sporočilo.
- **Uspešen test zmogljivosti v sandboxu**, preden prijaviš produkcijski naslov.
- **Preverjanje aplikacije.** Vsaka Applova zahteva vsebuje identifikator aplikacije, `appAppleId`. Če se ne ujema s tvojim, Apple zahteva, da ne odgovoriš.

Zahteva v realnem času ti posreduje identifikator izvorne transakcije, izdelek in jezik naprave. Sporočilo izbereš sam, po svojih pravilih.

## Nastavitev Retention Messaging: tri poti

| Pot                      | Za koga                                     | Kaj potrebuješ                                 |
| ------------------------ | ------------------------------------------- | ---------------------------------------------- |
| Modul App Store Connect  | Za vse, ko bo izšel                         | Brez kode; besedilo, slika ali ponudba         |
| API, s tvojim strežnikom | Za tiste, ki imajo back-end                 | Applov dostop, HTTPS naslov, test zmogljivosti |
| API, prek RevenueCat     | Za aplikacije, ki že uporabljajo RevenueCat | Applov dostop, nastavitve na nadzorni plošči   |

Kadar obstaja več nastavitev hkrati, Apple v seji WWDC26 razloži vrstni red: najprej odgovor v realnem času. Če manjka ali je napačno oblikovan, nastavitev v App Store Connect. Če te ni, privzeto sporočilo, nastavljeno prek API-ja.

### S tvojim lastnim strežnikom

1. Zaprosi za dostop z Applovim obrazcem.
2. Pošlji slike, nato sporočila, vsako z naslovom in besedilom.
3. Počakaj na odobritev, nato nastavi privzeto sporočilo za vsako naročnino in vsak jezik.
4. Za realni čas na strežniku ustvari naslov `Get Retention Message` in ga prijavi v sandboxu.
5. Zaženi [test zmogljivosti](https://developer.apple.com/documentation/retentionmessaging/initiate-performance-test) v sandboxu, s testno transakcijo.
6. Ko test uspe, prijavi produkcijski naslov.

### Z RevenueCat

To pot sem izbral jaz: strežnika mi ni treba pisati, moje aplikacije pa že uporabljajo RevenueCat, kot razložim v članku [RevenueCat in naročnina v aplikaciji za iOS](https://devoria.fr/sl/blog/revenuecat-narocnina-v-aplikaciji-ios). Po [dokumentaciji RevenueCat](https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/apple-retention-messaging-api):

1. V Applov obrazec vpiši naslov, ki ga RevenueCat prikaže v nastavitvah tvoje aplikacije App Store.
2. Po odobritvi odpri Lifecycle, nato Retention, in poveži sandbox naslov.
3. Zaženi test zmogljivosti z aktivno sandbox ali TestFlight naročnino. Lahko traja do ene ure.
4. Najprej ustvari privzeto sporočilo, jezik za jezikom.
5. Nato dodaj sporočila v realnem času, s pravili. Eno od njih, „Is in free trial", cilja ljudi v brezplačnem preizkusu.
6. Preklopi na produkcijo: nastavitve iz sandboxa se ne prenesejo, sporočila moraš ustvariti znova.

## Kako napisati sporočilo, ki zadrži, a ne ujame v past

Besedilo je fiksno in ga Apple pregleda, preden se prikaže. Zato ne more govoriti o osebi, ki ga bere, ali o dnevu, ko ga bere. Tole je privzeto sporočilo, ki sem ga pripravil za TradaZen, v francoščini:

```text
Naslov (57 znakov):
Hotel si se naučiti trgovati, zdaj pa greš naprej na slepo?

Besedilo (127 znakov):
Brez vaje vsako napako plača tvoj pravi denar. Tukaj ne stanejo nič. Tvoj niz, tvoja liga in tvoje lekcije se ustavijo.
```

Pravila, ki sem si jih postavil za vse štiri aplikacije:

- **Naslov osebo spomni na njen cilj**, v obliki vprašanja. Ne sramoti je.
- **Besedilo natančno pove, kaj se ustavi.** Napišem, da se dostop „zaklene", ko podatki ostanejo, nikoli pa, da bodo „izbrisani".
- **Nobenih časovnih besed**, kot sta „jutri" ali „danes": isto besedilo se prikaže kadarkoli v obdobju.
- **Nobenih obljub zaslužka**, nobene lažne nujnosti. Prvi naslov, ki je obljubljal, da ti bo trgovanje spremenilo življenje, sem zavrgel še pred pošiljanjem. [Smernica 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) prepoveduje vsako manipulativno prakso, paywall aplikacije TradaZen pa je bil iz tega razloga že zavrnjen, kot pišem v članku [smernica 5.6 in paywall](https://devoria.fr/sl/blog/guideline-5-6-paywall-zavrnitev-aplikacije).
- **Vsak jezik ima svoje besedilo**, v besedišču prevedene aplikacije, preštetem do znaka natančno.

Za TradaZen pripravljam tudi sporočilo v realnem času za ljudi v preizkusu letne naročnine. Ponudilo jim bo cenejši letni paket iz iste skupine, ker moje številke kažejo, da ti ljudje aplikacijo uporabljajo enako kot plačniki: zavračajo ceno. Ta nastavitev čaka na Applovo odobritev.

## Kaj lahko pričakuješ

Ne računaj na čudež. Apple stopnjo reševanja imenuje delež naročnikov, ki naročnino obdržijo, ko pridejo na potrditveno stran. V seji WWDC26 Apple navaja, da naročnine, ki so uvedle Retention Messaging, to stopnjo v povprečju izboljšajo za 1,4 odstotne točke. Največji opaženi napredek, 5,5 točke, dosežejo sporočila s promocijsko ponudbo, rezultati pa se od razvijalca do razvijalca razlikujejo. Študija RevenueCat pa ugotavlja, da naročniki sprejmejo le približno 1,1 % promocijskih ponudb in 0,6 % menjav paketa.

Sporočilo torej ne nadomesti dela, ki ga opraviš prej. Brezplačni preizkus, ki se odpove v minuti, se odloči na paywallu in v prvih sejah: vzroki in vzvodi so v mojem vodniku o [odpovedanem brezplačnem preizkusu](https://devoria.fr/sl/blog/brezplacni-preizkus-takoj-preklican-ios), ustvarjanje preizkusa pa v članku o [uvodni ponudbi](https://devoria.fr/sl/blog/uvodna-ponudba-app-store-connect-brezplacni-preizkus).

## Pripravi naročnino, preden se lotiš sporočila

[iOS & Android Kit](https://devoria.fr/sl/kits/ios) izhaja iz začetne kode mojih aplikacij: onboarding, paywall in naročnine so že sprogramirani, pot v štirih korakih pa te v tvojem tempu pripelje do App Store. Celotna veriga, od izdelkov v App Store Connect do paywalla, je opisana na strani [naročnina v aplikaciji za iOS](https://devoria.fr/sl/expertise/narocnina-v-aplikaciji-ios).

Če pripravljaš svojo prvo objavo, [naredi brezplačno diagnozo](https://devoria.fr/sl/diagnostic): pove ti, kaj tvoj projekt res zavira, in ti pošlje moj kontrolni seznam proti Applovim zavrnitvam.

## Pogosta vprašanja

### Kaj je Applov Retention Messaging API?

To je storitev od strežnika do strežnika, ki izbere sporočilo, prikazano naročniku, ko tapne Cancel Subscription. Sporočilo se prikaže na potrditveni strani, pred odpovedjo. Lahko spomni na vrednost naročnine ali ponudi drug paket ali promocijsko ponudbo.

### Je Retention Messaging na voljo vsem razvijalcem?

API je predogled, dostop zaprosiš pri Applu. Na WWDC26 je Apple napovedal modul v App Store Connect, odprt za vse, predviden za jesen 2026. 3. novembra 2026 ga pomoč za App Store Connect še ne opisuje.

### Na katerih različicah iOS se sporočilo prikaže?

Na iOS 15.1 in iPadOS 15.1 ali novejših, na visionOS 1 in na macOS 14 ali novejših. Na starejši napravi poteka odpoved brez sporočila.

### Ali sporočilo naročniku prepreči odpoved?

Ne. Potrditvena stran ohrani gumb za odpoved. Naročnik lahko naročnino tudi obdrži ali sprejme ponujeno ponudbo ali paket.

### Lahko ob odpovedi ponudiš popust?

Da. Z API-jem je to sporočilo s promocijsko ponudbo, samo v realnem času: ponudbo ustvariš v App Store Connect, podpiše pa jo tvoj strežnik. Tudi napovedani modul v App Store Connect omogoča sporočilo s ponudbo. Menjava paketa pa ponudi drugo naročnino iz iste skupine.

### Koliko znakov ima lahko sporočilo za zadržanje?

Naslov ima največ 66 znakov, besedilo 144. Dodaš lahko do pet alinej in sliko PNG brez prosojnosti. Vsak jezik potrebuje svoje privzeto sporočilo.

### Ali za Retention Messaging potrebuješ strežnik?

Za privzeta sporočila ti ni treba gostiti nobenega naslova: dovolj je, da pokličeš API, da jih pošlješ in nastaviš. Z RevenueCat vlogo strežnika prevzame on. Realni čas zahteva HTTPS naslov, ki odgovori v manj kot 700 ms. Napovedani modul v App Store Connect nastaviš brez kode.


## Tvoj projekt

[iOS & Android Kit](https://devoria.fr/sl/kits/ios): Ustvari svojo aplikacijo za iPhone in Android s Claude Code: začetna koda mojih aplikacij, pot do trgovin in vsi kompleti. 99 €.

[Diagnoza: kaj te loči od tvoje aplikacije za iPhone](https://devoria.fr/sl/diagnostic): 7 vprašanj, 60 sekund: izveš, kaj te zares ovira pri objavi aplikacije za iPhone, dobiš pot v 4 korakih in komplet, ki ti ustreza.
