Conseguir Reviews de tus apps en Windows Phone 8 y Windows 8.X

Hola a todos!

Hoy quiero tocar un tema diferente al lado técnico que siempre estudiamos en el blog: Mejorar el marketing de nuestra app. Una parte importante de la venta de nuestra aplicación es la de conseguir comentarios y puntuaciones. De esta forma indicamos a posibles nuevos usuarios la calidad de la misma, además de obtener un valioso feedback de nuestros usuarios actuales.

Por regla general, y esto creo que nos ocurre a todos, cuanto una app funciona mal y no cumple nuestras espectativas, nos lanzamos rápidamente a puntuarla con una estrella (porque no se puede puntuar con 0) y poner un comentario que indique lo disgustados que estamos. Pero… ¿Y si la aplicación es increíblemente buena, o al menos cubre nuestras necesidades? Pues lejos de puntuarla con 3, 4 o 5 estrellas, de poner un comentario constructivo agradeciendo al autor y aportando feedback, simplemente disfrutamos de la aplicación y obviamos la review.

Esto puede llevar a apps con muchos usuarios contentos y muy malas puntuaciones, pues solo la gente que ha tenido problemas a puntuado, o sin puntuaciones, lo que da a entender que nadie la usa.

Para corregir esto y conseguir que la gente puntúe y comente nuestra aplicación tenemos que seguir una máxima: poner la posibilidad de comentar y puntuar al alcance del usuario. Esto es, no obligarle a salir de nuestra aplicación. Facilitarle que con un solo click, mientras está disfrutando de la misma, pueda puntuarnos y comentar. Para ello, yo recomiendo dos acciones concretas:

  • En primer lugar, tener un botón en cada pantalla o una opción de menú que permita al usuario votar y comentar nuestra aplicación. Incluso si ya lo ha hecho.Quizás en un primer momento la ha valorado con 3 estrellas y pasado un tiempo, tras actualizaciones, quiere volver a valorarla con 5 estrellas. No le quites la posibilidad de hacerlo. Es conveniente que, al menos en el primer inicio de la aplicación, informemos al usuario de la existencia de este botón, para que lo tenga presente.
  • Cuanto todavía el usuario no ha valorado nuestra aplicación, podemos mostrar, cada cierto tiempo, un mensaje pidiéndole amablemente que lo haga. Recomendablemente al inicio de la aplicación. Una vez que haya valorado la aplicación, ya no sacaremos más este mensaje, pero le indicaremos que dispone de la primera opción si desea cambiarla.

Bien, todo esto es muy bonito, pero… ¿Como implementamos esto en nuestras aplicaciones Windows Phone 8 y Windows 8.X? Vamos a verlo en concreto para cada plataforma, empezando por Windows 8.X.

Por supuesto, huelga decirlo, todo esto lo haremos usando MVVM para ello… ¿Acaso existe otra forma?

Windows 8.X – Botón para valorar la aplicación

NOTA: En esta ocasión, nuestro ejemplo se realizará con Windows 8.1, pero el código debería ser igual para Windows 8.

En primer lugar vamos a examinar como podemos llevar al usuario a revisar nuestra aplicación en la store mediante código. En Windows Phone disponemos de un lanzador para realizar esta acción, pero no así en Windows 8.X. En nuestra aplicación Windows Store deberemos usar el método LaunchUriAsync del namespace Windows.System. La uri que usaremos es ms-windows-store, que nos permite interactuar con la tienda de aplicaciones. Le pasaremos en primer lugar el tipo de acción a realizar: review. A continuación debemos indicarle qué aplicación queremos que muestre (por supuesto, la nuestra). Para indicarle la aplicación usaremos el identificador Package Family Name, que podemos encontrar en el archivo package.appxmanifest, en la pestaña Packaging:

image

Con lo que nuestra URI quedaría compuesta de la siguiente forma:

image

Solo tenemos que llamar al método LaunchUriAsync de la clase Launcher cuando el usuario haga click en nuestro botón:

Lanzar valoración
private async Task RateAppExecute()
{
    string reviewUri = string.Format(«ms-windows-store:REVIEW?PFN={0}», «1a82fb61-1dc9-4a21-a0ab-8013cc36138a_hqywp6k2sx4r6»);
    await Launcher.LaunchUriAsync(new Uri(reviewUri));
}

Nos queda por definir solo una cosa: ¿Donde colocamos el botón para que el usuario pueda valorar la aplicación? Aunque aquí pueden existir muchas opiniones distintas, creo que lo más correcto es tener un enlace en la charm de settings de la aplicación. De esa forma, no tenemos que incluir este código en cada pantalla y podemos indicarle al usuario donde encontrará siempre esta acción.

Windows Phone 8 – Botón para valorar la aplicación

En Windows Phone 8 la mecánica es mucho más sencilla, dentro de la amplia gama de selectores (choosers) y lanzadores (launchers) que incorpora el sistema por defecto, podemos encontrar el  MarketplaceReviewTask. Este lanzador solo tiene un método importante: Show. Simplemente necesitamos crear una nueva instancia del lanzador y llamar a su método Show para que se muestre al usuario la página de valoración del marketplace:

Lanzar valoración
private async Task RateAppExecute()
{
    MarketplaceReviewTask task = new MarketplaceReviewTask();
    task.Show();
}

Como podemos ver, no tenemos que dedicar mucho trabajo a este código, realmente sencillo.

En el caso de Windows Phone, yo situaría el botón en la ApplicationBar de la página principal. Si tienes menos de 4 botones de iconos, lo pondría como un botón, si tienes 4 ya usados, lo añadiría como una opción de menú. Y muy importante: recuerda no quitar el botón cuando el usuario haya valorado la aplicación, pues puede querer cambiar su valoración más adelante.

Pedir al usuario que valore nuestra aplicación

En los dos puntos anteriores hemos visto como permitir al usuario valorar nuestra aplicación por iniciativa propia, esto es, buscando el botón para realizar esta acción y presionándolo. Pero en muchos casos, aunque el usuario quiera valorar nuestra aplicación, no va a hacerlo por iniciativa propia. Tendremos que ser nosotros los que se lo pongamos en bandeja, preguntándole si desea valorarla. Ante una respuesta positiva le llevaremos directamente a la valoración, a una respuesta negativa, lo dejaremos tranquilo… hasta dentro de un tiempo.

Para llevar a cabo esta tarea deberíamos seguir los siguientes pasos:

  • Comprobar si es la primera vez que se inicia la aplicación, si es así, guardar un setting local que lo indique.
  • Cada vez que se inicie la aplicación, incrementar el setting local guardado.
  • Cuando hayamos llegado al número deseado de ejecuciones, mostrar un diálogo al usuario preguntándole si desea valorar nuestra aplicación.
  • Si la respuesta es afirmativa, ejecutar el código que vimos anteriormente para la plataforma en cuestión.
  • Guardar una setting local que indique que el usuario ya ha valorado la aplicación, para no volver a preguntarle.
  • Si la respuesta es negativa, resetear el contador y pasado de nuevo el número de ejecuciones, volver a preguntar.

Adicionalmente, podríamos almacenar la versión de la aplicación junto con el número de ejecuciones, de forma que el contador se vuelva a poner en marcha cuando actualicemos a una nueva versión.

En principio, nos exige crear código y lógica para este proceso, que no es complicada, pero es un factor más del que preocuparnos en nuestra aplicación. Pero la comunidad viene en nuestra ayuda. Rajen Kishna ha creado un paquete de NuGet, compatible con Windows Phone 7/8 y Windows 8/8.1 muy sencillo de usar, llamado ReviewNotifier.

Lo primero que necesitaremos será instalar el paquete de NuGet en nuestro proyecto con el Package Manager:

Instalar ReviewNotifier
PM> Install-Package ReviewNotifier

O con el gestor de NuGet:

image

Tras esto, los pasos que debemos hacer son los mismos en ambos sistemas:

  • En el evento de lanzamiento de la aplicación (OnLaunched en Windows 8.X y Application_Launching en Windows Phone 8) tendremos que inicializar la clase ReviewNotification.
  • En la primera página de nuestra aplicación, o en su ViewModel preferiblemente, debemos indicar el mensaje a mostrar, el título y tras cuantos arranques deseamos que se muestre al usuario (por defecto este valor es de 5 inicios).

A continuación veremos los pasos en detalle para cada plataforma.

ReviewNotifier en Windows 8.X

Como comentamos anteriormente, lo primero que necesitamos es instalar el paquete de NuGet ReviewNotifier. A continuación, vamos a editar el archivo app.xaml.cs y a añadir el siguiente código en el método OnLaunched:

Inicializar ReviewNotifier
protected override async void OnLaunched(LaunchActivatedEventArgs e)
{
    await ReviewNotifier.Windows8.ReviewNotification.InitializeAsync();
    
    
}

A continuación, en la Viewmodel de nuestra página inicial, VMMainPage, vamos a añadir el siguiente código en el constructor:

Código lanzamiento
public VMMainPage()
{
    this.rateAppCommand = new DelegateCommand(this.RateAppExecute);

    ReviewNotifier.Windows8.ReviewNotification.TriggerAsync(«Please, rate this app.», «Rate my app», 5);
}

Y listo, tras ejecutar 5 veces nuestra aplicación, se mostrará el mensaje que hemos definido al usuario:

image

P.D.: Solo dos cosas: En una aplicación real, no pongáis el texto escrito sin más, usad un archivo de recursos y localizadlo en varios idiomas, si el usuario no os entiende, no os valorará. A sí, y sed algo más amables que en este ejemplo.

ReviewNotifier en Windows Phone 8

El proceso en Windows Phone 8 es exactamente el mismo. Tendremos que añadir la inicialización del objeto ReviewNotifier al método Application_Launching:

Inicializar ReviewNotifier
private async void Application_Launching(object sender, LaunchingEventArgs e)
{
    await ReviewNotifier.Apollo.ReviewNotification.InitializeAsync();
}

Y, al igual que en Windows 8.X, en nuestra Viewmodel VMMainPage incluiremos el código para lanzar el aviso:

Código de lanzamiento
public VMMainPage()
{
    this.rateAppCommand = new DelegateCommand(this.RateAppExecute);

    ReviewNotifier.Apollo.ReviewNotification.TriggerAsync(«Please, rate my app.», «Rate my app», 5);
}

Voliá! Tras ejecutar 5 veces nuestra aplicación Windows Phone, obtendremos el mensaje sugiriendo cortésmente al usuario que valore nuestra aplicación:

image

Conclusión

Con estas dos sencillas técnicas, le facilitamos al usuario realizar una tarea que no le es atractiva en principio, pues no es capaz de percibir ningún beneficio en ella. Si nuestros mensajes explican porqué le interesa valorar y dar su opinión, nuestra valoración mejorará, con lo que tendremos mucha más visibilidad en la store y mejoraremos las descargas e indirectamente nuestro beneficio.

A continuación os dejo el código fuente de una solución con los proyectos de Windows Phone 8 y Windows 8.1 que hemos usado en este artículo para que podáis usarlos como referencia.

Un saludo y Happy Coding!

[EVENTO] Windows Phone Week

Hola a todos!

Aprovechando que estoy de vacaciones y mientras dedico algo de tiempo a desarrollar, la he liado de nuevo… Y es que no puedes reunir a 20 MVPs de Windows Phone en una reunión de Lync y pedir que no se organicen para montar un buen evento… a nivel mundial!

WindowsPhone-WebBanner-01

Y este evento se llama ni más ni menos que Windows Phone Week. El planteamiento muy sencillo: Cada MVP organiza un evento de un día entero de duración, durante la primera semana de Octubre, con gente de la comunidad, para dar a conocer la plataforma. Pero no desde un punto de vista comercial. Desde un punto de vista de desarrolladores.

Pues, ni corto ni perezoso, me dispuse a reclutar a valientes para que me ayudasen en la causa, Rafa Serna, Javier Suarez Ruíz y Alejandro Campos. Junto a estos magníficos compañeros de la comunidad Windows Phone empezamos a preparar el evento, buscar la sala donde realizarlo y reunir premios para los asistentes.

Desde Microsoft Corp. nos envían un teléfono Windows phone 8 para sortear entre los asistentes, licencias de desarrollador de Windows Phone y algunas cosas más que mantendremos como sorpresas.

Hablaremos de Windows Phone 8, de AppStudio, de NFC, de Nokia Imaging SDK, de buenas prácticas y rendimiento, distribución empresarial… todo un día cargado de conocimiento, sin dejar de lado el networking. Entre charla y charla dispondremos de 10 minutos para poder relacionarnos un poco y hablar con todo el mundo. Al medio día os invitaremos a comer, con el catering gracias a Microsoft Ibérica y por la tarde seguiremos con mucha fuerza!

Vale, diréis, todo esto está muy bien pero…. ¿Qué día tengo que reservar? Para que no tengas problema al asistir, vamos a organizar el evento el sábado 5 de Octubre, desde las 9 de la mañana hasta las 7 de la tarde. Así que no tendrás que pedir un día libre en el trabajo y podrás pasar un día con todos nosotros, sin prisas, con sorpresas y con mucho Windows Phone. El evento se celebrará en Madrid, aunque aún estamos cerrando la ubicación exacta.

Si te pica la curiosidad, puedes seguir el twitter global de Windows Phone Week: @WinPhoneWeek, el twitter de la edición española: @WinPhoneWeekes y sobre todo visitar nuestra web, donde encontrarás información de las sesiones, ponentes, agenda y la página de registro:

bit.ly/wpweekspain

Espero veros en el evento el día 5 y poder desvirtualizar unos, saludar a todos y pasarlo muy bien!

Un saludo y Happy Coding!