# Retention Messaging API: poruka prije otkazivanja

> Appleov Retention Messaging API prikazuje tvoju poruku kad pretplatnik dodirne Cancel Subscription. Formati, uvjeti, pristup i postavljanje.

Izvorna stranica: [Retention Messaging API: poruka prije otkazivanja](https://devoria.fr/hr/blog/retention-messaging-api-poruka-prije-otkazivanja)
Autor: [Mehdi Azizi](https://devoria.fr/hr/mehdi-azizi)
Objavljeno: 2026-11-04
Zadnja revizija sadržaja: 2026-11-04


Retention Messaging API je Appleova usluga između dvaju poslužitelja koja pretplatniku prikazuje tvoju poruku u trenutku kad dodirne Cancel Subscription. Poruka se pojavljuje na stranici za potvrdu, prije nego što se otkazivanje potvrdi. **Može podsjetiti na vrijednost tvoje pretplate, ponuditi drugi paket ili promotivnu ponudu, ali gumb za otkazivanje uvijek ostaje tu.** API je u pretpreglednoj verziji od srpnja 2025., uz zahtjev za pristup, a Apple je za jesen 2026. najavio jednostavniju verziju u App Store Connectu.

Ovaj vodič objašnjava što API prikazuje, otkad postoji, tko ga može koristiti, koji su uvjeti i kako ga postaviti. Sve dolazi iz Appleove dokumentacije i WWDC26 sesije posvećene toj temi, ponovno pročitanih 3. studenoga 2026.

U svojim iOS aplikacijama prodajem pretplate: Solys, blokator društvenih mreža, TradaZen, simulator trgovanja, Nolera, aplikacija za isprobavanje odjeće pomoću AI-ja, i Vigie. Pristup API-ju zatražio sam za sve četiri 25. listopada 2026. i pripremio njihove poruke na svim njihovim jezicima. Do 28. listopada Appleovo odobrenje još nije stiglo: ovaj vodič zato opisuje pravila i moju pripremu, a ne još rezultate.

## Što radi Retention Messaging API

Prema [Appleovoj dokumentaciji](https://developer.apple.com/documentation/retentionmessaging), API ti omogućuje da odabereš poruku koju sustav prikazuje kad korisnik otvori stranicu s detaljima pretplate i možda se sprema otkazati. Poruke pripremaš unaprijed, za svaki proizvod i svaki jezik.

Tijek je uvijek isti:

1. Pretplatnik otvori svoju pretplatu, na primjer u Apple Account, Subscriptions, ili iz App Storea.
2. Dodirne Cancel Subscription.
3. Sustav prikaže stranicu za potvrdu (Confirm Cancellation) s tvojom porukom.
4. Može ipak otkazati, zadržati pretplatu ili prihvatiti ono što nudi tvoja poruka.

Poruka je vidljiva na iOS-u 15.1 i iPadOS-u 15.1 ili novijem, na visionOS-u 1 te na macOS-u 14 ili novijem.

## Otkad postoji i za koga je

| Datum             | Što se mijenja, prema Appleu                                                    |
| ----------------- | ------------------------------------------------------------------------------- |
| 16. srpnja 2025.  | Verzija 1.0: prva pretpregledna verzija API-ja                                  |
| 9. prosinca 2025. | Test performansi poslužitelja za stvarno vrijeme                                |
| 31. ožujka 2026.  | Grafičke oznake u porukama, postavljanje adrese za stvarno vrijeme putem API-ja |
| 27. travnja 2026. | Podrška za mjesečne pretplate s obvezom od 12 mjeseci                           |
| Lipanj 2026.      | WWDC26: najava modula u App Store Connectu                                      |

Datumi dolaze iz [dnevnika verzija API-ja](https://developer.apple.com/documentation/retentionmessaging/retention-messaging-changelog), osim posljednjeg, koji je preuzet iz WWDC26 sesije. API je i dalje pretpregledna verzija: dokumentacija upućuje na [obrazac za zahtjev za pristup](https://developer.apple.com/contact/request/retention-messaging-api/), za koji se moraš prijaviti na svoj developerski račun.

Na WWDC26 sesija [Explore Retention Messaging in App Store Connect](https://developer.apple.com/videos/play/wwdc2026/309/) predstavlja modul u App Store Connectu koji se podešava bez koda. Apple kaže da je „otvoren svima”. Verzija u stvarnom vremenu i dalje je dostupna samo na zahtjev. [Stranica s novostima App Storea](https://developer.apple.com/app-store/whats-new/) najavljuje modul za „ovu jesen”. **Na dan 3. studenoga 2026. pomoć za App Store Connect mu još ne posvećuje nijednu stranicu, a 28. listopada modul se nije pojavljivao na mom računu.**

API se odnosi na aplikacije koje prodaju automatski obnovljivu pretplatu. Nije rezerviran za velike izdavače: RevenueCat u svojoj [studiji 22 milijuna poruka](https://www.revenuecat.com/blog/growth/apple-retention-messaging-benchmarks) navodi da i male aplikacije mogu zatražiti pristup.

## 4 vrste poruka

| Vrsta             | Što pretplatnik vidi                          | Zadana poruka | Stvarno vrijeme |
| ----------------- | --------------------------------------------- | ------------- | --------------- |
| Tekst             | Naslov, tekst, do pet grafičkih oznaka        | Da            | Da              |
| Tekst sa slikom   | Isto, sa slikom                               | Da            | Da              |
| Promjena paketa   | Tekst i druga pretplata iz iste grupe         | Ne            | Da              |
| Promotivna ponuda | Tekst i ponuda za nastavak po sniženoj cijeni | Ne            | Da              |

Prema stranici o [pripremi poruka](https://developer.apple.com/documentation/retentionmessaging/setting-up-retention-messages), zadana poruka može biti samo tekst, sa slikom ili bez nje. **Uz API, nuđenje ponude ili drugog paketa zahtijeva odgovor u stvarnom vremenu.** Modul najavljen u App Store Connectu nudit će poruku s ponudom bez poslužitelja.

Promotivna ponuda je ona koju izradiš u App Store Connectu. Prema [pomoći o promotivnim ponudama](https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-promotional-offers-for-auto-renewable-subscriptions), namijenjena je sadašnjim i bivšim pretplatnicima. U poruci za zadržavanje potpisuje je tvoj poslužitelj, prema stranici o pripremi poruka. Promjena paketa nudi pretplatu iz iste grupe. Ako tek počinješ s tim ponudama, prvo pročitaj moj vodič o [kodovima ponuda i promotivnim ponudama](https://devoria.fr/hr/blog/offer-kodovi-app-store-connect-promo-kod).

## Što možeš prikazati: točna ograničenja

| Element               | Appleovo ograničenje                                    |
| --------------------- | ------------------------------------------------------- |
| Naslov                | najviše 66 znakova                                      |
| Tekst                 | najviše 144 znaka                                       |
| Grafičke oznake       | najviše 5                                               |
| Slika pune širine     | PNG bez prozirnosti, širina 3840 px, visina 160 do 2160 |
| Slika grafičke oznake | 1024 × 1024 px                                          |
| Slike po aplikaciji   | najviše 2000                                            |

Duljine dolaze iz opisa [tijela zahtjeva za slanje poruke](https://developer.apple.com/documentation/retentionmessaging/uploadmessagerequestbody), a formati sa stranice o [slanju slike](https://developer.apple.com/documentation/retentionmessaging/upload-image). Apple traži i slike koje jednako dobro funkcioniraju u svijetlom i u tamnom načinu.

Apple pregledava svaku poruku i svaku sliku. Njihovo stanje prelazi iz `PENDING` u `APPROVED`, a sustav prikazuje samo ono što je odobreno. U sandboxu je odobrenje automatsko. Dokumentacija postavlja jasno pravilo o sadržaju: ne šalji ništa obmanjujuće ili netočno.

## Uvjeti koje moraš ispuniti

- **Zadana poruka za svaki proizvod, na svakom jeziku.** Bez nje se na tom jeziku ništa ne prikazuje. To je ujedno i rezervno rješenje ako tvoj poslužitelj ne odgovori.
- **Odobrene poruke i slike** prije bilo kakvog objavljivanja.
- **Za stvarno vrijeme, brz poslužitelj.** Stranica o [postavljanju adrese za stvarno vrijeme](https://developer.apple.com/documentation/retentionmessaging/setting-up-retention-messaging-endpoint) traži valjani SSL certifikat, TLS 1.2 i odgovor za manje od 700 ms u produkciji. Ako traje dulje, zahtjev ne uspijeva i prikazuje se zadana poruka.
- **Uspješan test performansi u sandboxu**, prije nego što prijaviš produkcijsku adresu.
- **Provjera aplikacije.** Svaki Appleov zahtjev sadrži identifikator aplikacije, `appAppleId`. Ako ne odgovara tvojem, Apple traži da ne odgovaraš.

Zahtjev u stvarnom vremenu daje ti identifikator izvorne transakcije, proizvod i jezik uređaja. Na tebi je da odabereš poruku prema svojim pravilima.

## Postavljanje Retention Messaginga: tri načina

| Način                       | Za koga                                   | Što treba                                       |
| --------------------------- | ----------------------------------------- | ----------------------------------------------- |
| Modul u App Store Connectu  | Za sve, kad izađe                         | Bez koda; tekst, slika ili ponuda               |
| API, s tvojim poslužiteljem | Za one koji imaju back-end                | Appleov pristup, HTTPS adresa, test performansi |
| API, preko RevenueCata      | Za aplikacije koje već koriste RevenueCat | Appleov pristup, postavke na nadzornoj ploči    |

Kad postoji više postavki istovremeno, Apple u WWDC26 sesiji objašnjava redoslijed: najprije odgovor u stvarnom vremenu. Ako ga nema ili je neispravan, postavka iz App Store Connecta. Ako ni ona ne postoji, zadana poruka postavljena putem API-ja.

### S vlastitim poslužiteljem

1. Zatraži pristup putem Appleova obrasca.
2. Pošalji svoje slike, zatim poruke, svaku s naslovom i tekstom.
3. Pričekaj da budu odobrene, zatim postavi zadanu poruku za svaku pretplatu i svaki jezik.
4. Za stvarno vrijeme izradi adresu `Get Retention Message` na svom poslužitelju i prijavi je u sandboxu.
5. Pokreni [test performansi](https://developer.apple.com/documentation/retentionmessaging/initiate-performance-test) u sandboxu, s testnom transakcijom.
6. Kad test uspije, prijavi svoju produkcijsku adresu.

### S RevenueCatom

To je put koji sam odabrao: nema poslužitelja za pisanje, a moje aplikacije već idu preko RevenueCata, kako objašnjavam u članku [RevenueCat i in-app pretplata na iOS-u](https://devoria.fr/hr/blog/revenuecat-pretplata-ios-aplikacija). Prema [RevenueCatovoj dokumentaciji](https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/apple-retention-messaging-api):

1. U Appleovu obrascu upiši adresu koju RevenueCat prikazuje u postavkama tvoje App Store aplikacije.
2. Nakon odobrenja otvori Lifecycle, zatim Retention, i poveži sandbox adresu.
3. Pokreni test performansi s aktivnom sandbox ili TestFlight pretplatom. Može trajati do sat vremena.
4. Najprije izradi zadanu poruku, jezik po jezik.
5. Zatim dodaj poruke u stvarnom vremenu, s pravilima. Jedno od njih, „Is in free trial”, cilja osobe na besplatnom probnom razdoblju.
6. Prijeđi u produkciju: postavke iz sandboxa se ne prenose, poruke moraš ponovno izraditi.

## Kako napisati poruku koja zadržava, a ne zarobljava

Tekst je fiksan i Apple ga pregledava prije prikazivanja. Zato ne može govoriti o osobi koja ga čita ni o danu kad ga čita. Evo zadane poruke koju sam pripremio za TradaZen, na francuskom (ovdje u prijevodu):

```text
Naslov (57 znakova u francuskom izvorniku):
Htio si naučiti trgovati, a sad odlaziš naslijepo?

Tekst (127 znakova u francuskom izvorniku):
Bez vježbe tvoj pravi novac plaća svaku pogrešku. Ovdje te ništa ne koštaju. Tvoj niz, tvoja liga i tvoje lekcije se zaustavljaju.
```

Pravila koja sam si postavio za sve četiri aplikacije:

- **Naslov podsjeća osobu na njezin cilj**, u obliku pitanja. Ne posramljuje je.
- **Tekst točno kaže što se zaustavlja.** Pišem da se pristup „zaključava” kad podaci ostaju, nikad da će biti „izbrisani”.
- **Nema vremenskih riječi** poput „sutra” ili „danas”: isti se tekst prikazuje u bilo kojem trenutku razdoblja.
- **Nema obećanja zarade** ni lažne hitnosti. Prvi naslov koji je obećavao da će ti trgovanje promijeniti život odbačen je prije slanja. [Smjernica 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) zabranjuje svaku manipulativnu praksu, a TradaZenov paywall već je bio odbijen iz tog razloga, kako pričam u članku [smjernica 5.6 i paywall](https://devoria.fr/hr/blog/guideline-5-6-paywall-odbijanje-app-store).
- **Svaki jezik ima svoj tekst**, s vokabularom prevedene aplikacije, prebrojan do zadnjeg znaka.

Za TradaZen planiram i poruku u stvarnom vremenu za osobe na probnom razdoblju godišnje pretplate. Ponudit će jeftiniji godišnji paket iz iste grupe, jer moje brojke pokazuju da te osobe koriste aplikaciju jednako kao one koje plaćaju: odbijaju cijenu. Ta postavka čeka Appleovo odobrenje.

## Što možeš očekivati

Ne računaj na čudo. Apple stopom spašavanja naziva udio pretplatnika koji zadrže pretplatu nakon što dođu na stranicu za potvrdu. U WWDC26 sesiji Apple navodi da pretplate koje su uvele Retention Messaging u prosjeku dobiju 1,4 postotna boda te stope. Poruke s promotivnom ponudom ostvaruju najveći zabilježeni rast, 5,5 bodova, a rezultati se razlikuju od developera do developera. RevenueCatova studija pak bilježi da pretplatnici prihvaćaju samo oko 1,1 % promotivnih ponuda i 0,6 % promjena paketa.

Poruka dakle ne zamjenjuje posao koji se radi ranije. Besplatno probno razdoblje koje se otkaže u istoj minuti rješava se na paywallu i u prvim sesijama: uzroci i rješenja su u mom vodiču o [otkazanom besplatnom probnom razdoblju](https://devoria.fr/hr/blog/probno-razdoblje-otkazano-odmah-ios), a izrada probnog razdoblja u članku o [uvodnoj ponudi](https://devoria.fr/hr/blog/introductory-offer-ios-besplatna-proba-pretplate).

## Pripremi pretplatu prije poruke

[iOS & Android Kit](https://devoria.fr/hr/kits/ios) polazi od početnog koda mojih aplikacija: onboarding, paywall i pretplate već su napisani, a put u četiri koraka vodi te sve do App Storea, tvojim tempom. Cijeli lanac, od proizvoda u App Store Connectu do paywalla, opisan je na stranici [in-app pretplata na iOS-u](https://devoria.fr/hr/expertise/ios-pretplata-u-aplikaciji).

Ako pripremaš svoje prvo izdanje, [napravi besplatnu dijagnostiku](https://devoria.fr/hr/diagnostic): reći će ti što stvarno koči tvoj projekt i poslati ti moj popis za provjeru protiv Appleovih odbijanja.

## Česta pitanja

### Što je Appleov Retention Messaging API?

To je usluga između dvaju poslužitelja koja odabire poruku prikazanu pretplatniku kad dodirne Cancel Subscription. Poruka se prikazuje na stranici za potvrdu, prije otkazivanja. Može podsjetiti na vrijednost pretplate, ponuditi drugi paket ili promotivnu ponudu.

### Je li Retention Messaging dostupan svim developerima?

API je pretpregledna verzija, uz zahtjev za pristup upućen Appleu. Na WWDC26 Apple je najavio modul u App Store Connectu, otvoren svima, predviđen za jesen 2026. Na dan 3. studenoga 2026. pomoć za App Store Connect ga još ne opisuje.

### Na kojim se verzijama iOS-a poruka prikazuje?

Na iOS-u 15.1 i iPadOS-u 15.1 ili novijem, na visionOS-u 1 te na macOS-u 14 ili novijem. Na starijem uređaju otkazivanje se odvija bez poruke.

### Sprječava li poruka pretplatnika da otkaže?

Ne. Stranica za potvrdu zadržava gumb za otkazivanje. Pretplatnik može i zadržati pretplatu ili prihvatiti ponuđenu ponudu ili paket.

### Može li se ponuditi popust u trenutku otkazivanja?

Da. Uz API, to je poruka s promotivnom ponudom, samo u stvarnom vremenu: ponuda se izrađuje u App Store Connectu, a potpisuje je tvoj poslužitelj. Modul najavljen u App Store Connectu također omogućuje poruku s ponudom. Promjena paketa pak nudi drugu pretplatu iz iste grupe.

### Koliko znakova može imati poruka za zadržavanje?

Naslov ima najviše 66 znakova, tekst 144. Možeš dodati do pet grafičkih oznaka i PNG sliku bez prozirnosti. Svaki jezik treba vlastitu zadanu poruku.

### Treba li poslužitelj za korištenje Retention Messaginga?

Za zadane poruke ne trebaš hostati adresu: dovoljno je pozvati API da ih pošalješ i postaviš. S RevenueCatom on preuzima ulogu poslužitelja. Stvarno vrijeme zahtijeva HTTPS adresu koja odgovara za manje od 700 ms. Modul najavljen u App Store Connectu podešava se bez koda.


## Tvoj projekt

[iOS & Android Kit](https://devoria.fr/hr/kits/ios): Napravi svoju iPhone i Android aplikaciju s Claude Codeom: početni kod mojih aplikacija, put do trgovina i svi kitovi. 99 €.

[Dijagnoza: što te dijeli od tvoje iPhone aplikacije](https://devoria.fr/hr/diagnostic): 7 pitanja, 60 sekundi: saznaj što te stvarno koči da objaviš svoju iPhone aplikaciju, dobij svoj put u 4 koraka i kit koji ti odgovara.
