[Windows Phone 8] Monetizar nuestra app: In App Purchase

Hola a todos!

euros

Hoy quiero hablaros de como monetizar vuestras apps usando In App Purchase (IAP). Sorprendentemente, IAP es un método de monetización que se puede encontrar en juegos pero que no se usa en apps tanto como debería.

Básicamente, IAP nos permite incorporar pagos dentro de nuestra aplicación, ya sea esta gratuita o tenga coste inicial. Existen dos tipos de “bienes” que podemos adquirir usando IAP: Consumibles y Perpetuos:

  • Los bienes consumibles son aquellos que podemos adquirir y una vez usados, desaparecen. Por ejemplo, monedas o un power up.
  • Los diebes perpetuos son aquellos que una vez adquiridos, nunca desaparecen. Por ejemplo, un pack de funcionalidades extra.

Implementar IAP en nuestra aplicación es muy sencillo y nos ofrece muchas ventajas. Con IAP hacemos que nuestra app sea de modelo “freemium”, es decir, gratuita y con pagos por contenidos o funcionalidades extra. Hay que ser muy cuidadoso con este aspecto, buscando equilibrio entre el cobro de partes de nuestra aplicación y su funcionamiento básico. En todo momento, debería ser posible usar la aplicación sin problemas sin pagar. Siendo estos micro pagos una forma de añadir funcionalidades nuevas.

Otra forma de usar IAP es para eliminar publicidad. Hoy en día es muy complicado que una app media genere beneficios mediante publicidad. En muchos casos, molestamos al usuario con publicidad, y no ganamos apenas más que unos céntimos al día. Al final, estamos “regalando” el espacio de anuncio y molestando a nuestro usuario y solo el anunciante se beneficia de ello. Un truco muy usado es incluir sobre la publicidad un botón de eliminar, normalmente una X, que quite la publicidad de la app mediante un IAP, de 0.99€ normalmente. De esta forma, si al usuario le molesta la publicidad o quiere recompensarnos directamente por nuestro trabajo, solo tiene que pagar este IAP y ambos ganan, desarrollador y usuario. Si no le molesta o no quiere pagar por quitar la publicidad, nos producirá los beneficios normales de la misma. En combinación, siempre vamos a ganar más dinero, conseguir generar 0.99€ con publicidad no es tarea fácil.

Creo que esta última opción es la más útil para una aplicación que no sea un juego. Es en la que me quiero centrar en este artículo. Las APIs para trabajar con IAP se encuentran en el namespace Windows.ApplicationModel.Store, en la clase CurrentApp. En esta clase encontraremos un método llamado RequestProductPurchaseAsync, que nos permitirá lanzar la pantalla de compra de un elemento IAP y la clase LicenseInformation que contiene un diccionario llamado ProductLicenses con el estado de todos los productos que podemos comprar en nuestra aplicación. Por ejemplo, imaginemos que tenemos un item IAP llamado REMOVEADS. El código para lanzar la pantalla de compra del mismo sería este:

Comprar un item IAP
public async Task PurchaseRemoveAds()
{
    try
    {
        await CurrentApp.RequestProductPurchaseAsync(«REMOVEADS», false);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Muy sencillo. El primer parámetro es el Id del artículo que deseamos comprar y el segundo indica si se debe devolver un ticket de compra que podamos mostrar al usuario. Fijaros que tenemos el método envuelto en un bloque try/catch. Esto es debido a que, si el usuario cancela la compra o esta no se puede realizar por algún motivo, el método RequestProductPurchaseAsync devolverá una excepción con un valor HRESULT H_FAIL. (Para otro día dejamos el tema de Microsoft y los errores descriptivos).

Para comprobar si un item concreto, por ejemplo REMOVEADS, ha sido comprado por el usuario, podemos usar el siguiente código:

Comprobar compra
public bool AdsRemoved()
{
    var product = CurrentApp.LicenseInformation.ProductLicenses[«REMOVEADS»];
    if (product != null && product.IsActive)
        return true;

    return false;
}

Y listo, podemos usar el método AdsRemoved para saber cuando mostrar u ocultar los anuncios en la aplicación. La propiedad IsActive devolverá true si el item se ha comprado y false de lo contrario.

Ahora, ¿Como podemos probar nuestro código antes de publicar la aplicación? Existen dos formas principalmente: Usando la publicación en beta o haciendo un mock de In App Purchase. Yo personalmente prefiero la primera, la publicación en beta, porque pruebo el proceso real al 100% (menos en la parte de cobrar, los IAP en beta tienen coste 0 siempre).

Si queréis leer a fondo sobre como realizar un Mock del IAP para pruebas, podéis leer más aquí. El problema del mock, es que al final te quedas con la duda de si realmente todo va a ir bien una vez subas tu app a la tienda. Por lo que acabas probando una distribución beta, así que, ¿Porqué no hacerlo desde el principio?

DISCLAIMER: El Mock puede ser una buena solución en escenarios complejos, donde por ejemplo tengas que probar lógica asociada a las compras, los items sean consumibles que caducan, etc… Pero creo que para un escenario como este, no son necesarios.

Así que vamos allá, una vez que tengas todo tu código en su sitio y lo hayas probado, verás que siempre que intentas hacer una compra, esta falla. Es normal, ya que el proceso va a los servidores de Microsoft a buscar los items asociados con tu aplicación y no encuentra ninguno. Así que lo primero que tienes que hacer es publicar tu aplicación en modo beta. El proceso de publicación es el mismo que para una aplicación normal, salvo que en el primer paso, App Info, en la sección More options debemos seleccionar Beta. Al hacerlo se habilitará el cuadro de texto que tiene debajo, donde debemos indicar, separados por punto y coma, los liveIDs de los participantes de la beta. Normalmente para probar los IAP, en primer lugar usaremos solo nuestro LiveID, para asegurarnos que todo va bien. El resto del proceso es totalmente igual. Una vez que hayamos publicado nuestra aplicación en beta, podemos añadirle productos. En nuestro caso se llamará REMOVEADS. Para ello pulsamos sobre la aplicación en el Dashboard y vamos a la última pestaña: Products, donde encontraremos un enlace Add in-app product.

image

Debemos seguir varios pasos, al igual que en la publicación de la aplicación y al terminar el producto pasará a certificarse. Si, los productos de IAP también pasan su propia certificación. Pero en nuestro caso, al estar trabajando sobre una beta, no tardará más de unos minutos. Es muy importante asegurarnos de que introducimos el mismo ID de producto que usamos en el código o no funcionará.

image

Ten en cuenta que puedes definir varios idiomas para cada producto, siendo recomendable que traduzcas el nombre y la descripción a los mismos idiomas que soportes en la app. Así mismo necesitarás un icono de 300×300 píxeles para el producto.

Y listo, una vez que la beta esté publicada, podremos instalarla en nuestro dispositivo y, si hemos hecho todo bien, deberíamos poder comprar el producto sin ningún problema.

Lo que más me gusta de este proceso, es que es rapidísimo, en unos 15 minutos todo está publicado y podemos probarlo en vivo y en directo. Además estamos probando el proceso real, puesto que lo único que cambiará cuando publiquemos es que no usaremos una beta y podremos poner un precio al producto.

Importante: Una vez que hayas terminado de probar y te dispongas a publicar tu aplicación de forma definitiva, recuerda eliminar el producto creado de la beta, pues aunque los productos se definen por aplicación, su ID debe ser único. Debido a esto tienes que eliminar el producto beta para poder crear el final.

Espero que esto os pueda ayudar a monetizar vuestras aplicaciones. Animaros a incluir IAP en ellas, porque al final todo se trata de ofrecer al usuario formas de pagar por nuestro trabajo, ya sea mediante anuncios o mediante compras. Además, con este sistema vuestra app sigue siendo gratuita, por lo que más usuarios se la descargarán.

Un saludo y happy Coding!

Un comentario sobre “[Windows Phone 8] Monetizar nuestra app: In App Purchase”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *