Come ridurre le disdette in un'app iOS senza nascondere il pulsante di disdetta
Cosa permette Apple alle app iOS quando un abbonato vuole disdire: foglio di gestione, messaggi di retention, offerte promozionali, cambi di piano.
Su iOS il pulsante di disdetta non è tuo. I clienti disdicono un abbonamento App Store nelle impostazioni del loro Apple Account, ed è Apple a eseguire la disdetta. Non puoi bloccarla, ritardarla o metterci davanti un labirinto. Quello che puoi fare è aiutare il cliente che sta per andarsene a trovare un’opzione migliore, nella tua app prima che arrivi alla pagina di Apple e, per alcuni sviluppatori, sulla schermata di conferma di Apple stessa.
Questa guida copre gli strumenti che Apple documenta per farlo e un flusso di disdetta che li rispetta. Si basa sulla documentazione di Apple per showManageSubscriptions(in:), la Retention Messaging API, le offerte promozionali, il riferimento di notificationType e le App Review Guidelines (tutti consultati a novembre 2026).
Cosa controlla Apple
- Dove avviene la disdetta. Il riferimento delle notifiche di Apple descrive la disdetta come il cliente che disdice “dalla pagina delle impostazioni Abbonamenti dell’App Store”. Il tuo server riceve poi
DID_CHANGE_RENEWAL_STATUScon subtypeAUTO_RENEW_DISABLED. - Cosa significa disdire. L’abbonamento smette di rinnovarsi. Il cliente mantiene l’accesso fino alla fine del periodo pagato, e più tardi ricevi
EXPIREDcon subtypeVOLUNTARY. - Il foglio nella tua app.
showManageSubscriptions(in:)di StoreKit (omanageSubscriptionsSheetin SwiftUI) apre la stessa schermata di gestione che i clienti vedono nelle impostazioni dell’account, con le opzioni per vedere, fare upgrade, downgrade o disdire. Apple consiglia di aggiungere alla tua app un’opzione di gestione degli abbonamenti.
E le regole: la App Review Guideline 5.6 (Developer Code of Conduct) dice che le app non devono mai “ingannare” i clienti né “adottare altre pratiche manipolatorie all’interno o all’esterno dell’app”, e un comportamento manipolatorio ripetuto può portare all’esclusione dal Developer Program. La guideline 3.1.2(a) aggiunge che le app in abbonamento che “tentano di ingannare gli utenti” o usano pratiche bait-and-switch verranno rimosse. Un flusso di disdetta che nasconde l’uscita è esattamente ciò che queste regole colpiscono, al di là di qualsiasi legge sui consumatori nei tuoi mercati.
Strumento 1: la tua schermata “Gestisci abbonamento”
Prima di aprire il foglio di Apple, la tua app può mostrare una schermata propria. È qui che avviene la maggior parte del lavoro di retention, e la controlli completamente, purché non ostacoli il cliente.
Uno schema che rispetta le regole:
- Una schermata, una domanda. “Qual è il motivo principale per cui vuoi disdire?” con da quattro a sei risposte e un campo di testo libero.
- Una risposta pertinente a quel motivo. Troppo caro: un piano più economico o uno sconto. Non lo uso: un promemoria di ciò che perderebbe, o un downgrade. Manca una funzione: un modo per dirtelo e una risposta onesta sui piani.
- Un pulsante “Continua con la disdetta” visibile a ogni passaggio, che apre
showManageSubscriptions(in:). Stesse dimensioni e stesso peso del pulsante dell’offerta. Nessuna conferma in più, nessun conto alla rovescia. - Domanda facoltativa. Il cliente può andare direttamente al foglio di Apple senza rispondere.
Apple non ti invia un motivo di disdetta; i campi di notifica che documenta per AUTO_RENEW_DISABLED non ne includono uno. La risposta alla tua domanda è l’unico motivo che otterrai, quindi salvala insieme al cliente.
Strumento 2: offerte che Apple può davvero applicare
Su iOS, ogni sconto o cambio di piano deve passare da StoreKit. Due opzioni si adattano a un flusso di disdetta.
Offerte promozionali
La guida di Apple dice che le offerte promozionali possono essere efficaci per “trattenere gli abbonati attuali”. Le crei in App Store Connect (fino a 10 attive per abbonamento), il tuo server firma ogni offerta e il cliente la riscatta nella tua app. Apple suggerisce persino di usare la notifica DID_CHANGE_RENEWAL_STATUS per decidere l’idoneità, così un cliente che ha appena disattivato il rinnovo può vedere un’offerta la prossima volta che apre l’app.
Cambi di piano all’interno del gruppo
Un downgrade è spesso una risposta migliore di uno sconto. All’interno di un gruppo di abbonamenti, il riferimento delle notifiche di Apple dice che i downgrade hanno effetto alla data del rinnovo successivo e non toccano il piano attuale, mentre gli upgrade hanno effetto subito con un rimborso proporzionale del periodo non usato. Ricevi DID_CHANGE_RENEWAL_PREF con subtype DOWNGRADE o UPGRADE. Un livello più economico, o il passaggio dal mensile a un periodo più lungo, fa sì che il cliente continui a pagare qualcosa.
Se vuoi offrire una pausa, verifica cosa supporta attualmente Apple per il tuo tipo di prodotto. La documentazione usata per questa guida descrive downgrade, offerte promozionali e messaggi di retention, non un’opzione di pausa.
Strumento 3: messaggi di retention sulla schermata di Apple
La Retention Messaging API di Apple ti permette di scegliere un messaggio mostrato dopo che il cliente tocca Cancel Subscription nella pagina dei dettagli di un abbonamento. Apple mostra poi una pagina Confirm Cancellation in cui il cliente può ancora disdire, mantenere l’abbonamento o, a seconda del messaggio, riscattare un’offerta o cambiare piano.
Cosa documenta Apple:
- È un’API in pre-release. Devi richiedere l’accesso.
- Quattro tipi di messaggio: testo (con elenco puntato facoltativo), testo con immagine, un messaggio di cambio piano che suggerisce un altro abbonamento e un messaggio con offerta promozionale.
- Messaggi predefiniti per prodotto e lingua, solo testuali. Senza un messaggio predefinito per una lingua, lì non viene mostrato nulla.
- Messaggi in tempo reale. Il server di Apple chiama il tuo endpoint quando un abbonato attivo apre una pagina dei dettagli dell’abbonamento con un pulsante Cancel, e tu scegli un messaggio preconfigurato, compresi quelli con offerta e cambio piano. I predefiniti fanno da riserva se il tuo server non risponde. Prima di andare in produzione, il tuo endpoint deve superare il test di prestazioni di Apple.
- Dispositivi: iOS e iPadOS 15.1 o successivi, visionOS 1 o successivi, macOS 14 o successivi.
- Apple chiede di non caricare contenuti fuorvianti o inesatti.
È quanto di più vicino esista su iOS a un passaggio di retention all’interno del flusso di disdetta stesso, e Apple mantiene il pulsante Cancel Subscription su quella pagina.
Dopo che il cliente ha disattivato il rinnovo
Un rinnovo disattivato non è ancora un cliente perso. Tra AUTO_RENEW_DISABLED ed EXPIRED, l’abbonamento è ancora attivo.
- Non togliere l’accesso in anticipo. Ha pagato il periodo.
- Mostra un banner discreto nell’app con la data di fine e un modo per riattivare il rinnovo (di nuovo il foglio di Apple). Se lo fa, ricevi
DID_CHANGE_RENEWAL_STATUSconAUTO_RENEW_ENABLED. - Usa il tempo per un messaggio pertinente, basato sul motivo indicato. Uno, non una sequenza.
- Pianifica il dopo scadenza. Una volta scaduto l’abbonamento, subentrano le offerte win-back di Apple.
Misurare cosa funziona
Tieni traccia, per motivo e per offerta, di:
- Quanti clienti hanno aperto la tua schermata di gestione.
- Quanti hanno accettato un’offerta o cambiato piano.
- Quanti hanno proseguito verso il foglio di Apple.
- Quanti hanno disattivato il rinnovo (da
AUTO_RENEW_DISABLED) e quanti l’hanno riattivato. - La retention due o tre rinnovi dopo per chi ha accettato un’offerta.
L’ultimo è il più importante. Uno sconto che ritarda una disdetta di un mese non equivale a un cliente che resta.
Cosa evitare
- Nascondere il link alle impostazioni degli abbonamenti di Apple, o seppellirlo sotto diverse schermate.
- Rendere grande il pulsante dell’offerta e piccolo e grigio il link di disdetta.
- Dire ai clienti che devono contattare il supporto per disdire.
- Mostrare offerte che il cliente non può davvero riscattare, o promettere condizioni che StoreKit non applicherà.
- Fare allo stesso cliente la stessa domanda ogni volta che apre la schermata.
Per i principi generali dei flussi di disdetta equi, vedi le nostre buone pratiche per il flusso di disdetta e la panoramica delle regole click-to-cancel.
Farlo con NoChurn
Il flusso di disdetta di NoChurn è disponibile come API headless, quindi la tua app iOS può mostrare una propria schermata nativa: motivi, un’offerta (sconto, cambio di piano o pausa dove la tua fatturazione lo supporta) e un pulsante di disdetta sempre visibile che apre le impostazioni degli abbonamenti di Apple. La disdetta in sé resta ad Apple. NoChurn registra il motivo, legge le notifiche AUTO_RENEW_DISABLED ed EXPIRED per vedere cosa è successo davvero e usa entrambi per il punteggio di churn e per il win-back. La configurazione è su NoChurn + App Store.