El 4 de noviembre de 2026 Apple abrió los mensajes de retención en App Store Connect: un mensaje y, si quieres, una oferta que el suscriptor ve en la pantalla de confirmación de la cancelación. Antes solo estaba disponible mediante la Retention Messaging API, previa solicitud de acceso. Ahora la retención de suscriptores en la app se configura en el panel, sin una sola línea de código de servidor.
Las suscripciones de MeteoHealth van sobre StoreKit 2, sin RevenueCat. Por eso me interesa qué se puede activar hoy y cómo saber después si ha servido de algo. Abajo van el orden de configuración, los puntos donde la revisión rechaza el texto y un repaso de las cifras de Apple y RevenueCat, que miden cosas distintas.
Qué ve el suscriptor al cancelar la suscripción#
La persona abre la página de la suscripción en los ajustes, pulsa Cancel Subscription y el sistema muestra la página Confirm Cancellation. Ahí aparece la sección «From the developer» con tu mensaje. Los botones son Cancel Subscription y Keep Subscription o, si hay oferta, un botón para canjearla. El mensaje tiene tres variantes:
- solo texto;
- texto e imagen (no hay oferta o el suscriptor no cumple los requisitos);
- texto y oferta, si el suscriptor cumple los requisitos. La imagen no se muestra: la oferta ocupa su sitio.
Funciona en iOS 15.1+, iPadOS 15.1+, visionOS 1+ y macOS 14+. En sistemas anteriores la pantalla de cancelación sigue como antes (resumen de la API).
Retención de suscriptores en la app: dos formas de configurar el mensaje#
El mensaje se puede montar en App Store Connect o servir mediante la Retention Messaging API. Se pueden combinar, pero cuestan cosas distintas.
| App Store Connect | Retention Messaging API | |
|---|---|---|
| Servidor | No hace falta | Hace falta |
| Tipos de mensaje | Texto, texto e imagen, texto y oferta | Texto (con viñetas), texto e imagen, cambio de plan, oferta promocional |
| Mensaje distinto por suscriptor | No, un mensaje por suscripción | Sí, en tiempo real |
| Oferta | Retention offer, se configura a nivel de suscripción | Oferta promocional, la firma tu servidor |
| Acceso | Roles Account Holder, Admin, App Manager, Marketing | Bajo solicitud |
En modo API, cuando un suscriptor activo abre la página de la suscripción con el botón de cancelar, App Store llama a tu endpoint. La petición va firmada por App Store (la firma JWS hay que verificarla) y trae originalTransactionId, productId, userLocale, environment y otros campos. En producción hay que responder en 700 ms. Antes del lanzamiento el endpoint pasa un Performance Test en el sandbox. Si la petición falla, se muestra el mensaje de App Store Connect para esa suscripción y, si no existe, el mensaje por defecto.
Las prioridades son estas: la respuesta en tiempo real manda sobre todo, y el mensaje de App Store Connect va por encima de los mensajes por defecto de la API. Desde el 4 de noviembre (versión 1.6 de la API) la respuesta en tiempo real puede indicar el identificador de un mensaje configurado en App Store Connect (changelog). Es decir, tu servidor puede elegir entre lo que ya montaste en el panel.
Los mensajes por defecto de la API se definen por pareja producto y localización, solo con texto y sin ofertas. Sobre el acceso a la API, Adapty escribe que la revisión de Apple tarda hasta un mes, así que conviene pedirlo con tiempo. Son palabras de Adapty; en la documentación de Apple no se indica ningún plazo.
Yo empezaría por App Store Connect. No merece la pena montar un servidor para un experimento con efecto desconocido, y si el efecto aparece, la API se puede añadir después: desde la versión 1.6 el servidor también puede devolver los mensajes montados en App Store Connect.
Cómo configurarlo en App Store Connect, paso a paso#
Los detalles están en la ayuda de Apple y en la sesión 309 de la WWDC26.
- Abre la app y ve a Monetization, Subscriptions, Retention Messaging, botón «+» o Get Started.
- Pon un Reference name. Los suscriptores no lo ven.
- Rellena el encabezado y el texto; los dos campos son obligatorios. Localízalos para todas las tiendas donde se vende la suscripción.
- Si quieres imagen, súbela en 3840 × 2160 o 5244 × 2950 píxeles. La ayuda no indica formato de archivo ni peso.
- Elige las suscripciones. Puede haber hasta 10 mensajes por app y un mensaje admite todas las suscripciones que quieras, pero cada suscripción tiene un solo mensaje a la vez.
- Si quieres, adjunta una retention offer (más abajo).
- Abre la vista previa: tarjeta, variantes para iPhone y iPad, y selector de oferta o None.
- Pulsa Add for Review. El estado Approved significa que el mensaje está activo y se muestra a los suscriptores que cumplen los requisitos y intentan cancelar.
Ofertas de retención#
La retention offer se crea a nivel de suscripción, no de mensaje, y el suscriptor solo la ve a través de un mensaje. Por cada tipo de plan de facturación (el estándar, o el mensual con compromiso de 12 meses para las suscripciones anuales) puedes crear hasta 10 ofertas, y las diez se pueden vincular a un mismo mensaje. Cuál se muestra lo decide App Store: según Apple en la WWDC, «elegirá automáticamente la mejor oferta para los clientes que cumplan los requisitos».
Hay dos cosas que conviene saber antes de crearlas. El Reference name y el identificador de la oferta no se pueden cambiar después. Por el identificador se ven luego las ventas en Sales and Trends y las transacciones en StoreKit, así que ponle un nombre que dentro de seis meses siga diciendo qué es.
Las condiciones definen quién cumple los requisitos. Paid Subscription Duration exige un tiempo mínimo como suscriptor de pago. Wait Between Offers es opcional y actúa sobre cada oferta por separado, no sobre la suscripción entera. Los tipos de oferta son Pay as you go, Pay up front y Free. Los precios de otros países se calculan con los tipos de cambio actuales y se pueden sobrescribir.
Qué rechaza la revisión en el texto#
El encabezado y el texto del mensaje no pueden mencionar promociones, descuentos ni precios concretos: ni «9,99 $», ni «50 % de descuento», ni «un mes gratis». La revisión rechaza esos mensajes. El texto lo ven todos los suscriptores y la oferta solo los que cumplen los requisitos.
Se admiten afirmaciones factuales sobre lo que la persona perderá. Nada de presionar ni de prometer lo que no se puede comprobar: Apple da el ejemplo de que no se puede escribir que cancelar una VPN provoca un virus. Los superlativos como «la mejor app» y las estadísticas sin respaldo Apple los desaconseja con firmeza. Las mayúsculas y los signos de exclamación repetidos tampoco se deben usar.
Estos ejemplos son para una suscripción hipotética a un pronóstico de bienestar según el tiempo. Estos textos los escribí yo, a modo de ilustración.
| Ejemplo | Veredicto | Por qué |
|---|---|---|
| «Quédate y el mes que viene tendrá un 50 % de descuento» | Lo rechazarán | Descuento en un texto que ven todos los suscriptores |
| «¡¡¡EL MEJOR pronóstico para quienes sienten el tiempo!!!» | No recomendable | Superlativo, mayúsculas y exclamaciones repetidas |
| «Sin suscripción, la presión y las migrañas te alcanzarán» | Arriesgado | Intimidación y afirmación sin comprobar, la misma clase que el virus tras cancelar una VPN |
| «9 de cada 10 suscriptores se sienten mejor» | No recomendable | Estadística sin respaldo |
| «Al cancelar, el pronóstico de bienestar de los próximos días dejará de actualizarse» | Adecuado | Pérdida factual, sin precios ni promesas |
| «Tus notas de bienestar seguirán en el dispositivo, pero las recomendaciones nuevas según el tiempo solo llegan con la suscripción» | Adecuado | Dice con calma qué se queda y qué se va |
Sobre la longitud. Los límites de 66 caracteres para el encabezado y 144 para el texto están en la documentación de la Retention Messaging API. Para los mensajes que escribes en App Store Connect, la ayuda no menciona límites. Yo mantendría el texto dentro de los mismos límites, ya que para App Store Connect no se nombra ninguno.
Trampas de versiones#
- No hay vuelta atrás. Al editar un mensaje aprobado se crea una New Version: el borrador queda junto a la versión activa y los usuarios siguen viendo la activa. Cuando se aprueba, el borrador la sustituye y no se puede volver.
- El sandbox muestra la última versión, borradores incluidos. Un tester puede ver algo que los usuarios aún no ven.
- Borrar un mensaje es irreversible. Con el límite de 10, para crear el undécimo tendrás que borrar uno de los existentes.
- Una suscripción pertenece a un solo mensaje. Si la eliges en un segundo mensaje, desaparece del primero, así que tras los cambios revisa qué está vinculado a qué.
Sobre la automatización: en la WWDC se dijo que la App Store Connect API «también admitirá» Retention Messaging, y la ayuda dice que los mensajes se pueden automatizar con ella. No encontré nombres de endpoints en la documentación, así que de momento no hay sobre qué montar la automatización con la ASC API.
¿Funciona?#
Apple tiene una cifra en la WWDC: el save rate medio sube 1,4 puntos porcentuales, equivalentes a un 82 % más. Los mensajes con oferta promocional logran el mejor resultado, +5,5 puntos o un 223 %. Apple define el save rate como el porcentaje de suscriptores que se quedan tras llegar a la página de confirmación de la cancelación. En el mismo sitio, la propia Apple advierte de que los resultados varían según el desarrollador. No indica ni el periodo ni el tamaño de la muestra.
RevenueCat ofrece otro panorama, y son datos de un proveedor, no un estudio independiente. El 6 de octubre RevenueCat publicó benchmarks tempranos sobre 21.960.020 mensajes de 309 apps de acceso anticipado, cada una con al menos 100 mensajes, del 22 de marzo al 20 de septiembre de 2026.
- Save rate mediano del 16,7 %. En el cuarto inferior de las apps está por debajo de 10 de cada 100, en el superior por encima de 27, y en el 10 % mejor llega a 42 o más.
- Aceptación de la oferta de junio a septiembre: 1,1 % en ofertas promocionales y 0,6 % en cambio de plan.
- El efecto sobre las cancelaciones se comparó en 64 apps con más de 500 clientes de pago frente a apps equivalentes. Conclusión de RevenueCat: los datos no muestran un efecto medible en ningún sentido. El propio análisis, según los autores, no establece que los mensajes hicieran que la gente se quedara o renovara.
- La proporción de apps con mensajes crece con los ingresos: con $1M+ al mes es el 44,4 %, con $100k–1M el 16,9 %, con $10k–100k el 4,7 %, con $1k–10k el 1,3 % y con menos de $1k el 0,06 %.
Esto último pesa al leer el resto. Entre las apps con mensajes predominan las grandes, así que, a mi juicio, la muestra puede estar sesgada y un proyecto pequeño podría comportarse distinto. Las cifras de Apple y de RevenueCat no se pueden comparar directamente: Apple no da periodo ni muestra, y RevenueCat usa datos de los primeros participantes.
Configurarlo en App Store Connect cuesta una pantalla del panel y la revisión. Qué resultado tendrás lo dirán solo tus suscriptores, así que hay que medirlo con ellos.
Para medir, Apple da dos herramientas. Si el suscriptor canjea una retention offer, en la transacción firmada y en renewal info aparece offerType con el valor 5. Además, el identificador de la oferta se ve en Sales and Trends y en las transacciones de StoreKit. Eso permite comparar las renovaciones de quienes aceptaron la oferta con las del resto. En la ayuda de Apple no encontré una comparación integrada con un grupo de control, así que la comparación de renovaciones te toca montarla a ti.
Mi plan para MeteoHealth, solo un plan, todavía no hay nada configurado: primero un mensaje solo con texto sobre una pérdida factual, sin oferta, y comparar la proporción de cancelaciones del mes anterior y del posterior. No es un test A/B: las cancelaciones también dependen de la estación. Después añadir una oferta y, con offerType 5, ver cuántas personas la aceptaron y si renovaron tras ella. Cuánto esperar antes de sacar conclusiones depende de cuántas cancelaciones haya al mes.
Mensajes de retención y win-back offers#
El mensaje de retención lo ve un suscriptor activo en el momento en que pulsa «Cancelar»; la win-back offer la recibe uno que ya se fue. Las win-back offers, anunciadas el 10 de septiembre de 2024, van dirigidas a antiguos suscriptores: se muestran en App Store, en la app, por enlace y en los ajustes de suscripciones. Una no sustituye a la otra. Si la persona se va igualmente, el mensaje de retención ya lo ha visto y el siguiente paso son las win-back.
Lista de comprobación antes de lanzar#
- Las suscripciones ya están configuradas y los enlaces a los términos y al EULA, en su sitio. Si no, empieza por el artículo sobre los enlaces de EULA y términos de la suscripción.
- Hay un método elegido: App Store Connect o API. Para la API, la solicitud de acceso está enviada con tiempo.
- Encabezado y texto sin precios, descuentos, mayúsculas ni exclamaciones, y con un hecho sobre lo que se pierde. Contrasta el texto con los requisitos de App Review.
- Hay localización para todas las tiendas donde se vende la suscripción.
- Si hay imagen, mide 3840 × 2160 o 5244 × 2950.
- Si hay oferta: el identificador tiene sentido y es definitivo, y las condiciones (Paid Subscription Duration y, si hace falta, Wait Between Offers) están definidas.
- La vista previa está revisada en iPhone y iPad, y en el sandbox se han probado las dos variantes: con oferta y sin ella.
- Tras la aprobación, las suscripciones están vinculadas al mensaje correcto.
- La medición está preparada:
offerType5 y el identificador de la oferta en los informes. Las transacciones y renewal info se leen con StoreKit 2; más detalles en el análisis de las suscripciones con StoreKit 2.



