Hola a todos!
Hoy quiero enseñaros como añadir Google Analytics a nuestras aplicaciones Windows Phone 8. Un paso importante de la evolución de una aplicación es conocer como es usada por los usuarios. Esto implica saber cuanto tiempo pasa un usuario en la aplicación cada vez que la abre, que navegación realiza, que páginas usa y cuantas veces al día usa nuestra aplicación.
Además, tener una forma sencilla, a parte de la que nos ofrece la propia página de publicación de Windows Phone, de poder registrar y analizar posibles errores y/o excepciones, puede simplificarnos mucho el trabajo de mantenimiento.
Google Analytics nos permite realizar todo esto y más, como definir eventos personalizados, por ejemplo cuando el usuario usa una característica en concreto de nuestra aplicación, cuando llega a cierta puntuación… En definitiva, podemos disponer de una forma de seguir los indicadores que nos interesen sobre nuestra aplicación de forma sencilla.
NOTA: Aunque en este artículo solo hablo de Windows Phone 8, el SDK de Google Analytics está disponible para Windows Store también y su uso es exactamente el mismo, así que no deberías tener problemas en usarlo también en las apps Windows Store.
¿Por donde empezamos? Bien, el uso del SDK es muy sencillo, pero primero…
Cuenta de Google Analytics
Necesitaremos, claro está, tener una cuenta de Google Analytics. Para ello, lo primero es disponer de una cuenta de google, si tienes una cuenta de gmail o google+, esa te servirá. Con ella podrás hacer login en el sitio web de Analytics. Una vez dentro, tendremos que ir a la sección de administración y seleccionar la opción “Crear una nueva cuenta”. Aquí seleccionaremos el tipo “Aplicación” e indicaremos los datos que nos piden: Nombre de la aplicación, categoría, región y zona horaria y un nombre para la cuenta.
El proceso nos avisa que, si ya tenemos una cuenta para realizar el seguimiento de una aplicación, podemos reutilizar el ID de seguimiento que ya tenemos. En nuestro caso presionamos el botón “Obtener ID de seguimiento” (azul) que tenemos en la parte inferior de la pantalla y aceptamos las condiciones de uso. A continuación se mostrará una pantalla con nuestro ID de seguimiento con la forma UA-XXXXXXXX-X donde las X serán números.
Ese ID es todo lo que necesitamos de Google Analytics por ahora, podemos abrir Visual Studio 2013 y empezar a trabajar en nuestra aplicación.
Integrar Google Analytics en Windows Phone 8
Vamos a crear un nuevo proyecto de Windows Phone 8. Lo primero que haremos tras tener nuestro proyecto disponible, es abrir el gestor de paquetes de NuGet y buscar el paquete Google Analytics SDK. podemos instalarlo también desde la consola de NuGet con la orden:
Install-Package GoogleAnalyticsSDK
Una vez instalado el paquete, además de una referencia al ensamblado GoogleAnalytics, se añadirá un archivo xml llamado analytics en la raíz del proyecto. Es en este archivo en el que configuraremos los datos de nuestra cuenta de Analytics. Exactamente necesitaremos el ID de seguimiento, el nombre de la aplicación y la versión de la misma:
<trackingId>UA-XXXXXXXX-Y</trackingId>
<appName>AnalyticsApp</appName>
<appVersion>1.0.0.0</appVersion>
</analytics>
En el archivo xml tenemos muchas más opciones comentadas, que tienen un valor por defecto, a no ser que las indiquemos nosotros.
En este proyecto de ejemplo, voy a tener botones que simularán acciones en Google Analytics, como la vista de una página, una excepción, un evento… Realmente el trabajo duro ya está hecho, ahora solo nos queda lo más sencillo.
Vamos, por ejemplo, a registrar que el usuario a entrado a una página llamada “MainPage” y luego ha navegado a una página llamada “VideoDetails”. Simplemente necesitamos incluir este código en el evento OnNavigatedTo de cada una de las páginas:
{
base.OnNavigatedTo(e);
GoogleAnalytics.EasyTracker.GetTracker().SendView(«MainPage»);
}
Con este simple código, indicamos a Google Analytics que se ha visitado una página. Simplemente tendremos que cambiar El nombre de cada página que queramos enviar. ¿Y no lo podemos automatizar un poco más, para no tener que acordarnos de poner esto en cada página que hagamos? Bueno, si los nombres de tus páginas (clases) son lo suficientemente descriptivos, podríamos hacer una página base, algo así:
{
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
string thisPageName = this.GetType().Name;
GoogleAnalytics.EasyTracker.GetTracker().SendView(thisPageName);
base.OnNavigatedTo(e);
}
}
Si hacemos que todas nuestras páginas hereden de BasePage, en vez de PhoneApplicationPage, cada vez que naveguemos a una página se extraerá el nombre de la clase que la compone y se enviará a google analytics. Esto, nos facilita la vida, solo existe un punto en el que realizar cambios en nuestro código de analytics, pero también nos va a exigir que los nombres de nuestras páginas sean más descriptivos de la reaidad. Creedme, he visto proyectos donde las páginas se llamaban Page1.xaml, Page2.xaml … PageN.xaml. Eso no nos va a servir de nada.
Si ejecutamos nuestra aplicación, este código enviará una visita a Google Analytics por cada página en la que entremos. Para ver esta información, solo tendremos que entrar en la cuenta de nuestra aplicación en www.google.es/analytics:
Aquí podemos ver los datos de ejecutar la aplicación con el código anterior, usando el emulador. Es curioso que al usar el emulador, se informe como modelo HTC 8X, cuando ni siquiera hemos usado el emulador 720P, que es la resolución del HTC. Solo con esta primera vista, con un resumen de datos, podemos ver la importancia y la potencia de implementar Google Analytics: Modelos de móviles que ejecutan nuestra app, usuarios totales, usuarios nuevos, usuarios por países… Mucha información en nuestras manos para controlar el desarrollo y crecimiento de nuestra aplicación.
Ahora también podemos querer registrar, por ejemplo, cuando se produce una excepción. De esta forma podemos tener información precisa de que ha ocurrido, cuando y a quién. Esto puede ser muy útil a la hora de ofrecer una solución al origen de la excepción. Para trazar una excepción indicaremos dos parámetros: Un mensaje que sea suficientemente descriptivo y un valor que indique si ha sido fatal o continua la ejecución de nuestra aplicación:
{
var exception = new ArgumentOutOfRangeException(«ListVideos»);
string exceptionMessage = string.Format(«{0}||{1}», exception.Message, exception.StackTrace);
GoogleAnalytics.EasyTracker.GetTracker().SendException(exceptionMessage, false);
}
Podremos consultar estas excepciones en la página de Google analytics, en la sección de interacciones – Bloqueos y Excepciones:
Además de vistas (páginas) y excepciones, podemos controlar transacciones, por ejemplo cuando alguien compra algo mediante IAP, eventos, cosas compartidas a redes sociales, inicio y final de sesión. Incluso crear nuestras propias métricas. En definitiva, podemos controlar a fondo el uso de nuestra aplicación por parte de los usuarios y obtener una información muy valiosa para el éxito de la misma. Si los grandes lo usan, ¿Porqué no lo vas a usar tú?
A continuación os dejo el proyecto de ejemplo que he usado en este artículo. Por supuesto, por motivos de uso, he quitado la cuenta de google analytics usada, así que tendréis que poner la vuestra en su lugar, en el archivo analytics.xml.
Un saludo y Happy Coding!
Te presentamos nuestra colección de Tips & Tricks de desarrollo de apps para Windows Phone