Retention Messaging API: beskeden før abonnementet opsiges
Af Mehdi Azizi
Udgivet , 10 min.
Apples Retention Messaging API viser din besked, når en abonnent trykker på Cancel Subscription. Formater, krav, adgang og opsætning.
Retention Messaging API er en server-til-server-tjeneste fra Apple, der viser din besked til en abonnent i det øjeblik, vedkommende trykker på Cancel Subscription. Beskeden vises på en bekræftelsesside, før opsigelsen bliver gennemført. Den kan minde om værdien af dit abonnement eller foreslå et andet abonnement eller et kampagnetilbud, men knappen til at opsige er der altid. API'et har været i preview siden juli 2025, og du skal ansøge om adgang. Apple har annonceret en enklere version i App Store Connect til efteråret 2026.
Denne guide forklarer, hvad API'et viser, hvor længe det har eksisteret, hvem der kan bruge det, hvilke krav der gælder, og hvordan du sætter det op. Alt kommer fra Apples dokumentation og WWDC26-sessionen om emnet, gennemlæst den 3. november 2026.
Jeg sælger abonnementer i mine iOS-apps: Solys, en blocker til sociale medier, TradaZen, en tradingsimulator, Nolera, en app til at prøve tøj med AI, og Vigie. Jeg ansøgte om adgang til API'et for alle fire den 25. oktober 2026 og forberedte deres beskeder på alle deres sprog. Den 28. oktober var Apples godkendelse endnu ikke kommet. Denne guide beskriver altså reglerne og min forberedelse, ikke resultater endnu.
Hvad Retention Messaging API gør
Ifølge Apples dokumentation lader API'et dig vælge den besked, systemet viser, når en kunde ser detaljesiden for et abonnement og måske er ved at opsige. Du forbereder dine beskeder på forhånd, for hvert produkt og hvert sprog.
Forløbet er altid det samme:
- Abonnenten åbner sit abonnement, for eksempel under Apple Account, Subscriptions eller fra App Store.
- Vedkommende trykker på Cancel Subscription.
- Systemet viser en bekræftelsesside (Confirm Cancellation) med din besked.
- Abonnenten kan opsige alligevel, beholde sit abonnement eller acceptere det, din besked tilbyder.
Beskeden vises på iOS 15.1 og iPadOS 15.1 eller nyere, på visionOS 1 og på macOS 14 eller nyere.
Siden hvornår, og for hvem
| Dato | Hvad der ændres ifølge Apple |
|---|---|
| 16. jul. 2025 | Version 1.0: første preview af API'et |
| 9. dec. 2025 | Performancetest af serveren til realtid |
| 31. mar. 2026 | Punkter i beskeder, opsætning af realtidsadressen via API'et |
| 27. apr. 2026 | Understøttelse af månedlige abonnementer med 12 måneders binding |
| Juni 2026 | WWDC26: annoncering af et modul i App Store Connect |
Datoerne kommer fra API'ets versionslog, undtagen den sidste, som er fra WWDC26-sessionen. API'et er stadig i preview: dokumentationen henviser til en ansøgningsformular om adgang, som kræver, at du logger ind på din udviklerkonto.
Til WWDC26 præsenterer sessionen Explore Retention Messaging in App Store Connect et modul i App Store Connect, som kan sættes op uden kode. Apple siger, at det er "åbent for alle". Realtidsversionen kræver stadig ansøgning. App Stores side med nyheder annoncerer modulet til "i efteråret". Pr. 3. november 2026 har App Store Connect-hjælpen stadig ingen side om det, og modulet dukkede ikke op på min konto den 28. oktober.
API'et er til apps, der sælger et automatisk fornyende abonnement. Det er ikke forbeholdt store udgivere: RevenueCat skriver i sin undersøgelse af 22 millioner beskeder, at små apps også kan ansøge om adgang.
De 4 typer beskeder
| Type | Hvad abonnenten ser | Standardbesked | Realtid |
|---|---|---|---|
| Tekst | En titel, en tekst, op til fem punkter | Ja | Ja |
| Tekst med billede | Det samme, med et billede | Ja | Ja |
| Skift af abonnement | En tekst og et andet abonnement fra samme gruppe | Nej | Ja |
| Kampagnetilbud | En tekst og et tilbud om at fortsætte til lavere pris | Nej | Ja |
Ifølge siden om forberedelse af beskeder kan en standardbesked kun være tekst, med eller uden billede. Med API'et kræver det et svar i realtid at tilbyde et tilbud eller et andet abonnement. Det annoncerede modul i App Store Connect vil derimod tilbyde en besked med et tilbud, uden server.
Kampagnetilbuddet er det, du opretter i App Store Connect. Ifølge hjælpen om kampagnetilbud er det rettet mod nuværende og tidligere abonnenter. I en fastholdelsesbesked er det din server, der signerer det, ifølge siden om forberedelse af beskeder. Skift af abonnement foreslår et abonnement fra samme gruppe. Hvis du er ny med den slags tilbud, så læs først min guide om tilbudskoder og kampagnetilbud.
Hvad du kan vise: de præcise grænser
| Element | Apples grænse |
|---|---|
| Titel | Højst 66 tegn |
| Tekst | Højst 144 tegn |
| Punkter | Højst 5 |
| Billede i fuld bredde | PNG uden gennemsigtighed, 3.840 px bred, 160 til 2.160 høj |
| Punktbillede | 1.024 × 1.024 px |
| Billeder pr. app | Højst 2.000 |
Længderne kommer fra beskrivelsen af request body for upload af en besked, og formaterne fra siden om upload af et billede. Apple beder også om billeder, der fungerer lige godt i lys og mørk tilstand.
Hver besked og hvert billede bliver gennemgået af Apple. Status går fra PENDING til APPROVED, og systemet viser kun det, der er godkendt. I sandbox sker godkendelsen automatisk. Dokumentationen har en klar indholdsregel: send intet vildledende eller unøjagtigt.
Kravene, du skal opfylde
- En standardbesked for hvert produkt på hvert sprog. Uden den vises intet på det sprog. Den er også reserveløsningen, hvis din server ikke svarer.
- Godkendte beskeder og billeder, før noget går live.
- Til realtid: en hurtig server. Siden om opsætning af realtidsadressen kræver et gyldigt SSL-certifikat, TLS 1.2 og et svar på under 700 ms i produktion. Går det langsommere, fejler forespørgslen, og standardbeskeden vises.
- En bestået performancetest i sandbox, før du registrerer din produktionsadresse.
- Et tjek af appen. Hver forespørgsel fra Apple indeholder appens id,
appAppleId. Hvis det ikke matcher dit, beder Apple dig om ikke at svare.
Realtidsforespørgslen giver dig id'et på den oprindelige transaktion, produktet og enhedens sprog. Det er op til dig at vælge beskeden efter dine egne regler.
Opsætning af Retention Messaging: tre veje
| Vej | For hvem | Hvad der kræves |
|---|---|---|
| Modul i App Store Connect | Alle, når det er udkommet | Ingen kode; tekst, billede eller tilbud |
| API med din egen server | Dem, der har en backend | Adgang fra Apple, HTTPS-adresse, performancetest |
| API via RevenueCat | Apps, der allerede bruger RevenueCat | Adgang fra Apple, indstillinger i dashboardet |
Når flere opsætninger findes samtidig, forklarer Apple i WWDC26-sessionen rækkefølgen: realtidssvaret først. Mangler det eller er det forkert formateret, bruges opsætningen i App Store Connect. Findes den ikke, bruges standardbeskeden sat op via API'et.
Med din egen server
- Ansøg om adgang via Apples formular.
- Upload dine billeder og derefter dine beskeder, med en titel og en tekst til hver.
- Vent på godkendelse, og registrér derefter en standardbesked for hvert abonnement og hvert sprog.
- Til realtid: opret adressen
Get Retention Messagepå din server, og registrér den i sandbox. - Kør performancetesten i sandbox med en testtransaktion.
- Når testen er bestået, registrerer du din produktionsadresse.
Med RevenueCat
Det er den vej, jeg har valgt: ingen server at skrive, og mine apps bruger allerede RevenueCat, som jeg forklarer i RevenueCat og in-app-abonnementer på iOS. Ifølge RevenueCats dokumentation:
- I Apples formular skal du angive den adresse, RevenueCat viser i indstillingerne for din App Store-app.
- Når du er godkendt, åbner du Lifecycle og derefter Retention og kobler sandbox-adressen til.
- Kør performancetesten med et aktivt sandbox- eller TestFlight-abonnement. Den kan tage op til en time.
- Opret først en standardbesked, sprog for sprog.
- Tilføj derefter realtidsbeskeder med regler. En af dem, "Is in free trial", er rettet mod folk i en gratis prøveperiode.
- Gå i produktion: sandbox-indstillingerne overføres ikke, så du skal oprette beskederne igen.
Skriv en besked, der fastholder uden at narre
Teksten er fast og gennemgås af Apple, før den vises. Den kan altså ikke tale om den person, der læser den, eller om den dag, vedkommende læser den. Her er standardbeskeden, jeg har forberedt til TradaZen, på dansk:
Titel (53 tegn):
Ville du lære at trade, og nu går du videre i blinde?
Tekst (124 tegn):
Uden træning betaler dine rigtige penge for hver fejl. Her koster de intet. Din streak, din liga og dine lektioner stopper.
De regler, jeg har sat for mine fire apps:
- Titlen minder personen om sit mål, formuleret som et spørgsmål. Den får ikke personen til at skamme sig.
- Teksten siger præcis, hvad der stopper. Jeg skriver, at adgangen "låses", når dataene bliver liggende, aldrig at de bliver "slettet".
- Ingen tidsord som "i morgen" eller "i dag": den samme tekst vises på et hvilket som helst tidspunkt i perioden.
- Ingen løfter om gevinst, ingen falsk hast. En første titel, der lovede at ændre dit liv med trading, blev droppet før indsendelse. Guideline 5.6 forbyder enhver manipulerende praksis, og TradaZens paywall er allerede blevet afvist af den grund, som jeg fortæller om i guideline 5.6 og paywallen.
- Hvert sprog har sin egen tekst, med ordforrådet fra den oversatte app, og talt op tegn for tegn.
Til TradaZen planlægger jeg også en realtidsbesked til folk i prøveperiode på årsabonnementet. Den vil tilbyde et billigere årsabonnement fra samme gruppe, fordi mine tal viser, at de bruger appen lige så meget som dem, der betaler: det er prisen, de siger nej til. Den opsætning venter på Apples godkendelse.
Hvad du kan forvente
Regn ikke med et mirakel. Apple kalder andelen af abonnenter, der beholder deres abonnement, når de er nået til bekræftelsessiden, for save rate. I WWDC26-sessionen oplyser Apple, at abonnementer, der har taget Retention Messaging i brug, i gennemsnit vinder 1,4 procentpoint på den rate. Beskeder med et kampagnetilbud giver den største observerede gevinst, 5,5 procentpoint, og resultaterne varierer fra udvikler til udvikler. RevenueCats undersøgelse viser til gengæld, at abonnenter kun accepterer omkring 1,1 % af kampagnetilbuddene og 0,6 % af abonnementsskiftene.
Beskeden erstatter altså ikke arbejdet tidligere i forløbet. En gratis prøveperiode, der bliver opsagt inden for et minut, afgøres på paywallen og de første sessioner: årsagerne og løsningerne står i min guide om opsagte gratis prøveperioder, og oprettelsen af prøveperioden i introduktionstilbuddet.
Gør dit abonnement klar før beskeden
iOS & Android Kit bygger på startkoden fra mine apps: onboarding, paywall og abonnementer er allerede kodet, og forløbet i fire trin fører dig helt til App Store i dit eget tempo. Hele kæden, fra produkterne i App Store Connect til paywallen, er beskrevet på siden om in-app-abonnementer på iOS.
Hvis du forbereder din første udgivelse, så tag din gratis diagnose: den fortæller dig, hvad der reelt blokerer dit projekt, og sender dig min tjekliste mod afvisninger fra Apple.
Ofte stillede spørgsmål
Hvad er Apples Retention Messaging API?
Det er en server-til-server-tjeneste, der vælger den besked, en abonnent ser, når vedkommende trykker på Cancel Subscription. Beskeden vises på en bekræftelsesside før opsigelsen. Den kan minde om abonnementets værdi eller foreslå et andet abonnement eller et kampagnetilbud.
Er Retention Messaging tilgængelig for alle udviklere?
API'et er i preview, og du skal ansøge Apple om adgang. Til WWDC26 annoncerede Apple et modul i App Store Connect, åbent for alle, planlagt til efteråret 2026. Pr. 3. november 2026 beskriver App Store Connect-hjælpen det endnu ikke.
På hvilke iOS-versioner vises beskeden?
På iOS 15.1 og iPadOS 15.1 eller nyere, på visionOS 1 og på macOS 14 eller nyere. På en ældre enhed sker opsigelsen uden besked.
Forhindrer beskeden abonnenten i at opsige?
Nej. Bekræftelsessiden har stadig en knap til at opsige. Abonnenten kan også beholde sit abonnement eller acceptere det foreslåede tilbud eller abonnement.
Kan man tilbyde rabat i det øjeblik, abonnementet opsiges?
Ja. Med API'et er det en besked med kampagnetilbud, kun i realtid: tilbuddet oprettes i App Store Connect og signeres af din server. Det annoncerede modul i App Store Connect gør det også muligt at vise en besked med et tilbud. Skift af abonnement foreslår derimod et andet abonnement fra samme gruppe.
Hvor mange tegn må en fastholdelsesbesked have?
Titlen må højst være 66 tegn og teksten 144. Du kan tilføje op til fem punkter og et PNG-billede uden gennemsigtighed. Hvert sprog skal have sin egen standardbesked.
Skal man have en server for at bruge Retention Messaging?
Til standardbeskeder skal du ikke hoste nogen adresse: du kalder bare API'et for at uploade og registrere dem. Med RevenueCat er det RevenueCat, der fungerer som server. Realtid kræver en HTTPS-adresse, der svarer på under 700 ms. Det annoncerede modul i App Store Connect sættes op uden kode.

