
En iOS 12.2, Apple agregó una nueva característica: ofertas promocionales. Las aplicaciones de suscripción renovables automáticamente ahora pueden ofrecer descuentos personales a clientes actuales o anteriores o un período gratuito adicional. Las ofertas promocionales se aplican a pagar, pagar, participar en la prueba y cancelar a los usuarios de la prueba. A diferencia de una oferta introductoria, una oferta promocional se puede comprar tantas veces como se desee a discreción del desarrollador. Pero la implementación requiere un servidor para generar una firma digital.
Para crear una nueva oferta promocional, vaya a App Store Connect y abra la página con su suscripción. Haga clic en "+" en la sección de precios de suscripción y seleccione "Crear oferta promocional" :

Indique el nombre original de la promoción y su identificador - Código del producto :

Indique el costo y el tipo de oferta promocional:
- pago por uso;
- prepago
- periodo libre
Guarda los cambios.
Clave de suscripción
Para usar ofertas promocionales, debe generar una firma digital utilizando la clave de suscripción. Debe crearlo en App Store Connect.
Vaya a la sección "Usuarios y acceso" , luego a la pestaña "Claves" . Cree una nueva Clave de suscripción especificando su nombre.

Después de crear la clave, haga clic en "Descargar clave API" y guarde el archivo en un lugar seguro.

La clave de suscripción descargada de App Store Connect tiene el siguiente formato de nombre: SubscriptionKey_ [KEY_ID] .p8, donde KEY_ID es el identificador de clave.
Generación de firma
Aquí comienza lo más difícil y, en mi opinión, innecesario. Apple se reaseguró agregando generación de firmas para que el usuario no pudiera piratear StoreKit y hacer una oferta promocional sin el conocimiento del desarrollador. Permítame recordarle que estos descuentos están disponibles solo para usuarios que pagan. ¿Los clientes actuales intentarán hackear el sistema para obtener un descuento?
Desde el punto de vista del cliente móvil, la generación de firmas es necesaria para que, teniendo la clase SKProductDiscount
, cree la clase SKPaymentDiscount
, que se agregará a SKMutablePayment
para realizar una compra. Consideremos con más detalle.
SKProductDiscount
Los objetos de esta clase se almacenan en la matriz de discounts
de SKProduct
. Todas las ofertas promocionales creadas son objetos de la clase SKProductDiscount
. Como en el caso de las ofertas introductorias, puede obtener la duración, el precio y el número de períodos promocionales. Resulta que esta clase es necesaria para mostrar las condiciones de compra en la interfaz de la aplicación.
SKPaymentDiscount
El desarrollador crea esta clase utilizando los datos recibidos de su servidor. Eche un vistazo a los archivos de origen y vea el único método de inicialización:
public init(identifier: String, keyIdentifier: String, nonce: UUID, signature: String, timestamp: NSNumber)
identifier
: identificador de la oferta promocional. Se toma de SKProductDiscount
.keyIdentifier
: identificador de clave de suscripción.nonce
es una cadena arbitraria generada en el servidor para una mayor protección de firma, o salt . En iOS, deberá crear una clase UUID utilizando esta sal.signature
: una firma digital recibida de su servidor como una cadena base64.timestamp
: fecha de creación de la firma en milisegundos. Es necesario comparar el tiempo de creación de la firma y el tiempo de la compra en sí, porque la firma es válida solo 24 horas.
El código en sí para generar una firma en el servidor no es una tarea fácil, pero Apple ha proporcionado un código de muestra en Node.js. La clave de firma debe cargarse en su servidor y debe devolver todos los datos anteriores al cliente móvil.
Lea más sobre la generación de firmas aquí .
Una oferta promocional se compra de la misma manera que una compra regular. La única diferencia es la adición de un objeto de clase SKPaymentDiscount
.
let payment = SKMutablePayment(product: product) payment.paymentDiscount = discount SKPaymentQueue.default().add(payment)
Que sigue
Has logrado generar con éxito una firma y colocar tu primera compra en Sandbox. ¡Esto es genial! Pero las ofertas promocionales en sí mismas no resolverán el problema de aumentar las ganancias y los usuarios que regresan. Su tarea es mostrarlos al usuario en el momento adecuado. Cual? Por ejemplo, puede intentar devolver a los usuarios que han cancelado su suscripción enviándoles una notificación.
Devolución de clientes fallidos
Con la ayuda de ofertas promocionales, puede intentar devolver a los clientes fallecidos. Para hacer esto, debe implementar una amplia gama de funciones: ofertas promocionales, notificaciones del servidor sobre estados de suscripción, notificaciones push, almacenamiento de cheques de usuario en el servidor y búsqueda de un usuario por número de transacción. Esto no es facil.
Encuesta de clientes caídos
Atraer a un nuevo usuario es muchas veces más costoso que retener a un cliente existente. Por lo tanto, es especialmente importante comprender los motivos que obligan a los usuarios a cancelar las pruebas y suscripciones.
Muchos usuarios se dan de baja porque ya no necesitan una aplicación y es posible que su descuento no funcione. En este caso, en lugar de ofrecer un descuento, debe averiguar qué no le gusta y qué podría influir en su decisión de regresar a la aplicación.
Ofrecer descuentos a cambio de acción.
Muy a menudo, esta es una invitación a un amigo a cambio de un descuento o uso gratuito. Puede que realmente funcione, pero llevará mucho tiempo implementar el sistema de referencia.
Cómo se implementa en Apphud
Apphud rastrea las cancelaciones de suscripciones, sondea usuarios anteriores y ofrece descuentos sin escribir código. Las pantallas de descuento se crean en el diseñador de su cuenta. Para el usuario, se ve así:

Apphud muestra una pantalla de encuesta cuando se cancela una prueba o suscripción y, si es necesario, ofrece inmediatamente un descuento.
Nombramos cada mecánica individual para el retorno del usuario como regla . Lea más sobre cómo configurar las reglas aquí .
Conclusión
El modelo de negocio por suscripción ya se ha convertido en el estándar en aplicaciones móviles que no son de juegos. La retención del usuario y la comprensión de los motivos de su partida es una tarea importante que debe abordarse ya en la etapa de lanzamiento de un proyecto móvil.
Apphud ayudará con la integración de suscripciones:
- Haga compras usando solo un método;
- rastrea automáticamente el estado de la suscripción de cada usuario;
- Integre ofertas de suscripción fácilmente
- enviar eventos de suscripción a Amplitude, Mixpanel, Slack y Telegram teniendo en cuenta la moneda local del usuario;
- disminuir la tasa de abandono en las aplicaciones y devolver a los usuarios no suscritos.