Blog

¿Cómo añadir compras dentro de tu app de iOS?

Contenidos

Las compras dentro de la aplicación (IAP) son una buena forma de monetizar tus aplicaciones para iOS y macOS. En la AppStore, hay aplicaciones con la etiqueta «Ofrece compras dentro de la aplicación» cerca del botón Comprar u Obtener. Significa que estas aplicaciones contienen compras dentro de la aplicación. Las compras dentro de la aplicación (IAP) suelen utilizarse para desbloquear contenido o funciones adicionales. Normalmente, las aplicaciones con compras dentro de la aplicación son gratuitas. Ayuda a captar nuevos usuarios y a vender más funciones a más personas.

Apple se queda por defecto con el 30% del precio de la compra.

En este artículo, echaremos un vistazo a todo lo relacionado con las compras dentro de la aplicación: la configuración de iTunes Connect, el uso del código Swift y las pruebas.

Lo primero: Tipos de IAP y ejemplos

Hay diferentes tipos de IAP que puedes añadir:

  • Consumibles. Estos pueden ser comprados más de una vez y pueden ser utilizados. Sirven para conseguir vidas extra, monedas del juego o potenciadores temporales.
  • No consumibles. Algo que compras una vez y esperas tener permanentemente, como la compra de libros, niveles extra o contenido desbloqueable. Funciona incluso si inicias sesión con tu ID de Apple en otro dispositivo.
  • Suscripción no renovable. Este contenido está disponible durante un periodo de tiempo determinado. Para recibir acceso a la funcionalidad requerida, hay que suscribirse de nuevo.
  • Suscripción de renovación automática. Una suscripción que se repite, como una suscripción mensual a Apple Music.

Nota: Las compras dentro de la aplicación sólo pueden ofrecerse para artículos digitales, y no para bienes o servicios físicos. Para obtener más información al respecto, consulte la documentación completa de Apple sobre la creación de productos de compras dentro de la aplicación.

Ejemplos de IAP:

  • En una app de fotografía puedes comprar efectos extra;
  • Abre la app de noticias y puedes comprar una suscripción mensual con mucho contenido premium;
  • Desactivar los anuncios en las aplicaciones;
  • Comprar monedas u otra moneda virtual en un juego, para poder progresar más rápido.

Configuración de iTunes Connect

Introduce los datos de tu cuenta bancaria

En primer lugar, tienes que introducir tus datos bancarios. Para ello, dirígete a la sección Acuerdos, impuestos y banca de iTunes Connect.

Añadir usuarios

A continuación, tenemos que añadir usuarios a la cuenta del Sandbox: gestores de proyectos, probadores y propietarios de aplicaciones.

Haz clic en App Store Connect en la esquina superior izquierda de la ventana para volver al menú principal. Selecciona Usuarios y Roles, y luego haz clic en la pestaña Probadores del Sandbox. Haz clic en + junto al título «Probador».

Rellene la información y haz click en Guardar cuando hayas terminado. Puedes inventar un nombre y un apellido para tu usuario de prueba, pero debes utilizar una dirección de correo electrónico real, ya que Apple enviará un correo electrónico de verificación a la dirección. Una vez que recibas ese correo electrónico, asegúrate de hacer click en el enlace que contiene para verificar tu dirección.

La dirección de correo electrónico que introduzcas no debe estar ya asociada a una cuenta de ID de Apple.

Crear una aplicación de iTunes

Ve a la sección Mis aplicaciones y crea una aplicación o utiliza una aplicación existente si ya tienes una.

Crear los productos IAP

Haz click en tu aplicación de iTunes y navega hasta la sección Características. Para crear un nuevo producto IAP, haz clic en el botón + y elige uno de los tipos. A continuación, introduce los metadatos necesarios.

El código

Guarda el código en una clase separada. Yo he llamado a la mía IAPHandler, pero siéntete libre de cambiar el nombre. En esta clase, almacenarás todo lo relacionado con las compras dentro de la aplicación.

Variables

En primer lugar, crea variables a partir del ID de tu producto IAP. En mi caso, CONSUMABLE_PURCHASE_PRODUCT_ID y NON_CONSUMABLE_PURCHASE_PRODUCT_ID. Además, crea variables para manejar la solicitud IAP y un array que almacenará todos los productos IAP disponibles.

Funciones de la clase

  • canMakePurchases() – devuelve un valor booleano si el dispositivo puede realizar compras o no.
  • purchaseMyProduct(index: Int) – utiliza esta función para iniciar una compra. Esta función abrirá el diálogo de pago. Envía el índice para obtener el producto IAP correcto de la matriz iapProducts.
  • restorePurchase() – función para restaurar el IAP. Se utiliza si el usuario cambia de dispositivo, y ya posee un IAP no consumible en tu aplicación.
  • fetchAvailableProducts() – Crea una colección de ID’s de productos que quieres utilizar, añadiéndolos todos en un objeto NSSet. Recuerda establecer el método delegado, para que puedas obtener los resultados de SKProduct.

Métodos delegados

  • productsRequest (_ request:SKProductsRequest, didReceive response:SKProductsResponse) – devuelve todos los In-App Purchases disponibles y rellena la matriz iapProducts. Se activa después de llamar a la función fetchAvailableProducts().
  • paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) – gestiona una situación en la que un usuario restaura un IAP.
  • paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transacciones: [SKPaymentTransaction]) – este método delegado se activa después de llamar a la función purchaseMyProduct(index: Int). En esta devolución de llamada, obtendrá todo lo relacionado con la transacción IAP.

Callback Handler

Adicionalmente, he añadido el manejador de callback. Crea un closure purchaseStatusBlock(), que devuelve varios estados de la transacción IAP para que el código sea más claro. Para hacerlo aún mejor, he creado un tipo enumerado llamado IAPHandlerAlertType, que devolverá un mensaje para el caso adecuado.

Usando el código

Ve a tu UIViewController y luego en su función viewDidLoad(), obtén los productos y también agrega el closure donde obtendrá la respuesta de la transacción que el usuario ha realizado.

Luego crea una acción donde inicializarás la ventana de la transacción.

Probando

Inicia sesión con tu usuario Sandbox en tu dispositivo iOS, navega a tu aplicación y haz click en la acción para iniciar la transacción. No te preocupes por el precio en la ventana de transacción. Como estás utilizando un usuario Sandbox, no se cargará nada en tu cuenta.

Siguiendo la estrategia adecuada, puedes aumentar tus ventas hasta el punto máximo, y al mismo tiempo mantener a tus usuarios contentos ya que compran sólo lo que quieren. Pon en la balanza los pros y los contras, y apuesta por las compras dentro de la aplicación.

Artículos destacados

Artículo

From offline to online.

Comparte tus ideas con nosotros