Retention Messaging API: meddelandet före uppsägningen
Av Mehdi Azizi
Publicerad , 10 min
Apples Retention Messaging API visar ditt meddelande när en prenumerant trycker på Cancel Subscription. Format, villkor, åtkomst och hur du sätter upp det.
Retention Messaging API är en server-till-server-tjänst från Apple som visar ditt meddelande för en prenumerant i samma stund som hen trycker på Cancel Subscription. Meddelandet visas på en bekräftelsesida innan uppsägningen genomförs. Det kan påminna om värdet i din prenumeration, föreslå en annan plan eller ett kampanjerbjudande, men knappen för att säga upp finns alltid kvar. API:t har funnits som förhandsversion sedan juli 2025, efter ansökan om åtkomst, och Apple har aviserat en enklare version i App Store Connect till hösten 2026.
Den här guiden förklarar vad API:t visar, sedan när det finns, vem som kan använda det, vilka villkoren är och hur du sätter upp det. Allt kommer från Apples dokumentation och från WWDC26-sessionen om ämnet, genomlästa den 3 november 2026.
Jag säljer prenumerationer i mina iOS-appar: Solys, en blockerare för sociala medier, TradaZen, en tradingsimulator, Nolera, en app för att prova kläder med AI, och Vigie. Jag ansökte om åtkomst till API:t för alla fyra den 25 oktober 2026 och förberedde deras meddelanden på alla deras språk. Den 28 oktober hade Apples godkännande ännu inte kommit. Den här guiden beskriver alltså reglerna och mina förberedelser, inte resultat än.
Vad Retention Messaging API gör
Enligt Apples dokumentation låter API:t dig välja vilket meddelande systemet visar när en kund tittar på detaljsidan för en prenumeration och kanske tänker säga upp den. Du förbereder dina meddelanden i förväg, för varje produkt och varje språk.
Flödet är alltid detsamma:
- Prenumeranten öppnar sin prenumeration, till exempel under Apple Account, Subscriptions, eller via App Store.
- Hen trycker på Cancel Subscription.
- Systemet visar en bekräftelsesida (Confirm Cancellation) med ditt meddelande.
- Hen kan säga upp ändå, behålla prenumerationen eller tacka ja till det ditt meddelande erbjuder.
Meddelandet visas på iOS 15.1 och iPadOS 15.1 eller senare, på visionOS 1 och på macOS 14 eller senare.
Sedan när, och för vem
| Datum | Vad som ändras, enligt Apple |
|---|---|
| 16 juli 2025 | Version 1.0: första förhandsversionen av API:t |
| 9 dec. 2025 | Prestandatest av servern för realtid |
| 31 mars 2026 | Punktlistor i meddelanden, realtidsadressen kan ställas in via API:t |
| 27 apr. 2026 | Stöd för månadsprenumerationer med 12 månaders bindningstid |
| Juni 2026 | WWDC26: en modul i App Store Connect aviseras |
Datumen kommer från API:ts versionslogg, utom det sista, som kommer från WWDC26-sessionen. API:t är fortfarande en förhandsversion: dokumentationen hänvisar till ett formulär för att ansöka om åtkomst, som kräver att du loggar in på ditt utvecklarkonto.
På WWDC26 presenterade sessionen Explore Retention Messaging in App Store Connect en modul i App Store Connect som ställs in utan kod. Apple säger att den är "öppen för alla". Realtidsversionen kräver däremot fortfarande en ansökan. Sidan om nyheter i App Store aviserar modulen till "i höst". Den 3 november 2026 har App Store Connects hjälp fortfarande ingen sida om den, och modulen syntes inte i mitt konto den 28 oktober.
API:t gäller appar som säljer en automatiskt förnyad prenumeration. Det är inte förbehållet stora utgivare: RevenueCat skriver i sin studie av 22 miljoner meddelanden att små appar också kan ansöka om åtkomst.
De 4 typerna av meddelanden
| Typ | Vad prenumeranten ser | Standardmeddelande | Realtid |
|---|---|---|---|
| Text | En rubrik, en text, upp till fem punkter | Ja | Ja |
| Text med bild | Samma sak, med en bild | Ja | Ja |
| Byte av plan | En text och en annan prenumeration i samma grupp | Nej | Ja |
| Kampanjerbjudande | En text och ett erbjudande att fortsätta till lägre pris | Nej | Ja |
Enligt sidan om att förbereda meddelanden kan ett standardmeddelande bara vara en text, med eller utan bild. Med API:t kräver ett erbjudande eller en annan plan att du svarar i realtid. Den aviserade modulen i App Store Connect kommer däremot att erbjuda ett meddelande med erbjudande, utan server.
Kampanjerbjudandet är det du skapar i App Store Connect. Enligt hjälpen om kampanjerbjudanden riktar det sig till nuvarande och tidigare prenumeranter. I ett retention-meddelande är det din server som signerar det, enligt sidan om att förbereda meddelanden. Byte av plan föreslår en prenumeration i samma grupp. Om du är ny på de här erbjudandena, läs först min guide om erbjudandekoder och kampanjerbjudanden.
Vad du kan visa: de exakta gränserna
| Element | Apples gräns |
|---|---|
| Rubrik | Högst 66 tecken |
| Text | Högst 144 tecken |
| Punkter | Högst 5 |
| Bild i full bredd | PNG utan transparens, 3 840 px bred, 160 till 2 160 hög |
| Punktbild | 1 024 × 1 024 px |
| Bilder per app | Högst 2 000 |
Längderna kommer från beskrivningen av request body för att skicka ett meddelande, och formaten från sidan om att skicka en bild. Apple vill också ha bilder som fungerar lika bra i ljust som i mörkt läge.
Varje meddelande och varje bild granskas av Apple. Statusen går från PENDING till APPROVED, och systemet visar bara det som är godkänt. I sandbox sker godkännandet automatiskt. Dokumentationen har en tydlig innehållsregel: skicka inget vilseledande eller felaktigt.
Villkoren du måste uppfylla
- Ett standardmeddelande för varje produkt, på varje språk. Utan det visas ingenting på det språket. Det är också reservhjulet om din server inte svarar.
- Godkända meddelanden och bilder innan något går live.
- För realtid, en snabb server. Sidan om att sätta upp realtidsadressen kräver ett giltigt SSL-certifikat, TLS 1.2 och ett svar på under 700 ms i produktion. Tar det längre tid misslyckas anropet och standardmeddelandet visas.
- Ett godkänt prestandatest i sandbox innan du anger din produktionsadress.
- En kontroll av appen. Varje anrop från Apple innehåller appens id,
appAppleId. Om det inte matchar ditt ber Apple dig att inte svara.
Realtidsanropet ger dig id:t för den ursprungliga transaktionen, produkten och enhetens språk. Sedan är det upp till dig att välja meddelande, enligt dina egna regler.
Sätta upp Retention Messaging: tre vägar
| Väg | För vem | Vad som krävs |
|---|---|---|
| Modul i App Store Connect | Alla, när den väl släppts | Ingen kod; text, bild eller erbjudande |
| API, med din server | De som har en backend | Åtkomst från Apple, HTTPS-adress, prestandatest |
| API, via RevenueCat | Appar som redan kör RevenueCat | Åtkomst från Apple, inställningar i dashboarden |
När flera inställningar finns samtidigt förklarar Apple i WWDC26-sessionen vilken ordning som gäller: realtidssvaret först. Om det saknas eller är felformaterat, inställningen i App Store Connect. Om den inte finns, standardmeddelandet som konfigurerats via API:t.
Med din egen server
- Ansök om åtkomst via Apples formulär.
- Skicka dina bilder, sedan dina meddelanden, med en rubrik och en text för vart och ett.
- Vänta på godkännande och ange sedan ett standardmeddelande för varje prenumeration och varje språk.
- För realtid, skapa adressen
Get Retention Messagepå din server och ange den i sandbox. - Kör prestandatestet i sandbox, med en testtransaktion.
- När testet är godkänt, ange din produktionsadress.
Med RevenueCat
Det är den väg jag har valt: ingen server att skriva, och mina appar går redan via RevenueCat, som jag förklarar i RevenueCat och in-app-prenumerationer på iOS. Enligt RevenueCats dokumentation:
- I Apples formulär anger du den adress som RevenueCat visar i inställningarna för din App Store-app.
- Efter godkännandet öppnar du Lifecycle, sedan Retention, och kopplar in sandbox-adressen.
- Kör prestandatestet med en aktiv sandbox- eller TestFlight-prenumeration. Det kan ta upp till en timme.
- Skapa först ett standardmeddelande, språk för språk.
- Lägg sedan till realtidsmeddelanden med regler. En av dem, "Is in free trial", riktar sig till personer i en gratis provperiod.
- Gå över till produktion: sandbox-inställningarna följer inte med, du måste skapa meddelandena på nytt.
Skriva ett meddelande som behåller utan att lura
Texten är fast och granskas av Apple innan den visas. Den kan alltså inte handla om personen som läser den, eller om dagen hen läser den. Här är standardmeddelandet jag förberedde för TradaZen, på franska (översatt här, teckenantalen gäller den franska versionen):
Rubrik (57 tecken):
Du ville lära dig att trada, och nu ger du dig ut i blindo?
Text (127 tecken):
Utan träning betalar dina riktiga pengar för varje misstag. Här kostar de ingenting. Din svit, din liga och dina lektioner tar slut.
Reglerna jag har satt upp för mina fyra appar:
- Rubriken påminner personen om hens mål, i form av en fråga. Den får hen inte att skämmas.
- Texten säger exakt vad som upphör. Jag skriver att åtkomsten "låses" när datan finns kvar, aldrig att den "raderas".
- Inga tidsord som "i morgon" eller "i dag": samma text visas när som helst under perioden.
- Inga löften om vinst, ingen falsk brådska. En första rubrik som lovade ett förändrat liv tack vare trading ströks innan den skickades. Guideline 5.6 förbjuder all manipulativ praxis, och TradaZens paywall har redan blivit avvisad av just den anledningen, som jag berättar i guideline 5.6 och paywallen.
- Varje språk har sin egen text, med ordförrådet från den översatta appen, och räknad på tecknet.
För TradaZen planerar jag också ett realtidsmeddelande för personer som provar årsprenumerationen. Det kommer att föreslå en billigare årsplan i samma grupp, eftersom mina siffror visar att de här personerna använder appen lika mycket som de som betalar: det är priset de säger nej till. Den inställningen väntar på Apples godkännande.
Vad du kan förvänta dig
Räkna inte med något mirakel. Apple kallar andelen prenumeranter som behåller sin prenumeration när de väl har kommit till bekräftelsesidan för save rate. I WWDC26-sessionen säger Apple att prenumerationer som har infört Retention Messaging i genomsnitt ökar den med 1,4 procentenheter. Meddelanden med kampanjerbjudande ger den största observerade ökningen, 5,5 procentenheter, och resultaten varierar mellan utvecklare. RevenueCats studie visar å sin sida att prenumeranter bara accepterar ungefär 1,1 % av kampanjerbjudandena och 0,6 % av planbytena.
Meddelandet ersätter alltså inte arbetet tidigare i kedjan. En gratis provperiod som sägs upp inom en minut avgörs av paywallen och de första sessionerna: orsakerna och verktygen finns i min guide om uppsagda gratis provperioder, och hur du skapar provperioden i introduktionserbjudandet.
Förbered din prenumeration före meddelandet
iOS & Android Kit utgår från startkoden i mina appar: onboarding, paywall och prenumerationer är redan kodade, och flödet i fyra steg tar dig hela vägen till App Store, i din egen takt. Hela kedjan, från produkterna i App Store Connect till paywallen, beskrivs på sidan in-app-prenumerationer på iOS.
Om du förbereder din första release, gör din gratis diagnos: den visar vad som verkligen blockerar ditt projekt och skickar dig min checklista mot avvisningar från Apple.
Vanliga frågor
Vad är Apples Retention Messaging API?
Det är en server-till-server-tjänst som väljer vilket meddelande som visas för en prenumerant när hen trycker på Cancel Subscription. Meddelandet visas på en bekräftelsesida, före uppsägningen. Det kan påminna om värdet i prenumerationen, föreslå en annan plan eller ett kampanjerbjudande.
Är Retention Messaging tillgängligt för alla utvecklare?
API:t är en förhandsversion som kräver att du ansöker om åtkomst hos Apple. På WWDC26 aviserade Apple en modul i App Store Connect, öppen för alla, planerad till hösten 2026. Den 3 november 2026 beskrivs den ännu inte i App Store Connects hjälp.
På vilka iOS-versioner visas meddelandet?
På iOS 15.1 och iPadOS 15.1 eller senare, på visionOS 1 och på macOS 14 eller senare. På en äldre enhet sker uppsägningen utan meddelande.
Hindrar meddelandet prenumeranten från att säga upp?
Nej. Bekräftelsesidan har kvar en knapp för att säga upp. Prenumeranten kan också behålla sin prenumeration, eller tacka ja till erbjudandet eller planen som föreslås.
Kan man erbjuda rabatt i samband med uppsägningen?
Ja. Med API:t är det ett meddelande med kampanjerbjudande, och bara i realtid: erbjudandet skapas i App Store Connect och signeras av din server. Den aviserade modulen i App Store Connect tillåter också ett meddelande med erbjudande. Byte av plan föreslår i stället en annan prenumeration i samma grupp.
Hur många tecken får ett retention-meddelande ha?
Rubriken får vara högst 66 tecken och texten högst 144. Du kan lägga till upp till fem punkter och en PNG-bild utan transparens. Varje språk behöver sitt eget standardmeddelande.
Behöver man en server för att använda Retention Messaging?
Du behöver ingen adress att hosta för standardmeddelandena: det räcker att anropa API:t för att skicka och ange dem. Med RevenueCat är det RevenueCat som spelar serverns roll. Realtid kräver en HTTPS-adress som svarar på under 700 ms. Den aviserade modulen i App Store Connect ställs in utan kod.

