«

»

dic 12 2011

Localytics, todas las estadisticas de uso de tus apps

Hoy he empezado mi vida laboral como Android Developer y para celebrarlo voy a compartir con vosotros lo primero que he aprendido y que sin duda os será muy útil. Si conocéis Google Analytics esto no os sonará a chino, se trata de una librería gracias a la cual podremos obtener unas estadísticas del uso de nuestras aplicaciones tan exhaustiva como deseemos, con la siguiente ayuda que nos proporcionara esta información a la hora de mejorar nuestras aplicaciones en función del uso que les dan nuestros usuarios. Este servicio nos lo proporcionará Localytics a través de su web en la que podremos encontrar multitud de datos que van desde el número de usuarios diarios o sesiones hasta los países de origen de los usuarios, operadoras o versión de S.O. Hasta nos divide las estadísticas por versión de la aplicación. Si os gusta lo que leéis y os apetece probarlo en vuestras aplicaciones seguid leyendo que os cuento como.

 

 

Registro

Para registrarnos accedemos a la url http://www.localytics.com/register-for-a-localytics-mobile-app-analytics-account/ e introducimos nuestros datos. Por defecto aparecerá seleccionada la versión Premium de la cuenta pero no os asusteis, para lo que os explico solo necesitareis la version Community que es 100% gratuita.

Una vez creada la cuenta nos pedirá que creemos un perfil para nuestra aplicación (será necesario crear uno por cada aplicacion de la que queramos generar estadisticas). Al crear el perfil se no generará una key que deberemos usar en nuestra aplicación de manera similar a como lo hacemos en Google Maps.

 

Descarga e instalación

Lo primero que tenemos que hacer es descargarnos el zip de aquí que contendrá el codigo fuente de la libreria en cuestión y una vez descomprimido lo copiamos a al raiz de nuestro proyecto.

Nota: A mi particularmente me ha dado tres errores por @override que he solventado simplemente comentandolos sin ningun tipo de problema posterior a la hora de usar la libreria.

Una vez hecho esto bastará con importar la librería en las activities que nos interese:

 

import com.localytics.android.*;

 

Implementación del uso

En nuestras activities deberemos de tener un objeto de la clase LocalyticsSession que será el que nos proporcione la funcionalidad deseada.

 

private LocalyticsSession localyticsSession;

 

La idea es que gracias a este objeto que deberemos instanciar en el onCreate() vayamos informando a Localytics de cuando entramos y salimos de la aplicación tal y como os mostramos en el código a continuación en las funciones onCreate(), onPause() y onResume().

 

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 
    // Activity Creation Code      
 
    // Instantiate the object
    this.localyticsSession = new LocalyticsSession(
                   this.getApplicationContext(),  // Context used to access device resources
                   "APP KEY");       // Key generated on the webservice
 
    this.localyticsSession.open();                // open the session
    this.localyticsSession.upload();      // upload any data
 
    // At this point, Localytics Initialization is done.  After uploads complete nothing
    // more will happen due to Localytics until the next time you call it.
}

public void onResume()
{
    super.onResume();
    this.localyticsSession.open();
}

public void onPause()
{
    this.localyticsSession.close();
    this.localyticsSession.upload();
    super.onPause();
}

 

Cómo podeis comprobar en la función onCreate() instanciamos el objeto localyticsSession y es aquí donde se nos pide la Key de la que os hablé antes cuando dimos de alta la aplicación en nuestra cuenta.

Nota: Como recomendación os aconsejaría externalizar esta key en un archivo de recursos para no tener que cambiar todas sus apariciones en el código si por alguna razón este cambiara.

IMPORTANTE: Para que todo esto funcione y como es evidente es necesario acceso a Internet y por tanto deberemos pedir permiso para tal efecto en el AndroidManifest.xml.

 

<uses-permission android:name="android.permission.INTERNET">

 

Funcionalidades Extras

Con lo explicado ya tendriamos multitud de información disponible en nuestras estadisticas pero si queremos profundizar aun mas Localytics nos proporciona dos servicios estras, Flujo de Pantallas (solo versión Premium) y Control de Eventos, este último os lo pasamos a explicar ya que realmente no proporcionara una herramienta genial sobre el modo y uso que hacen los usuarios de nuestras aplicaciones.

Para controlar los eventos será tan facil como definir un tag para nuestro evento y mediante una funcion comunicar a Localytics que este evento se ha producido. A continuación os mostramos un ejemplo de dos funciones asociadas a botones mediante las cuales controlaremos cuantas veces se pulsan dichos botones:

 

public void botonUno(View v) {
    this.localyticsSession.tagEvent("Boton 1");
}
   
public void botonDos(View v) {
    this.localyticsSession.tagEvent("Boton 2");
}

 

Estos eventos los podriamos incluir en cualquier lugar de nuestro código en función de nuestras necesidades, generando toda la información que necesitemos.
 

A estos eventos tambien podremos añdirles informacion adicional a almacenar para generar estadisticas propias:
 

Map <String,String> values = new HashMap<String,String> ();
values.put("Param1", "ValueParam1");
values.put("Param2", "ValueParam2");
this.localyticsSession.tagEvent("Action", values);

 
Y esto es todo, espero que os sirva de ayuda y le saqueis provecho.

 

via | IngensBlog

 

Acerca del autor

JMPergar

Mobile Developer at @BeRepublic & Founder of @AndroCode. Silver Speaker & Member of Core Team at @GDGBarcelona.

  • http://www.pixhunting.com Carlos

    Hola buenas, justo lo que buscaba, pero se me ocurre una pregunta, estoy haciendo una app que usarán mucha gente que esté sin conexión de datos, es una app para turismo por lo que supongo que los visitantes a nuestro pais o incluso nosotros cuando viajemos no tendremos datos, que sucede en ese caso. Lo guarda y lo envia a la que tiene conexión? o hay que controlar que tenga conexión antes de poner esas lineas.

    • http://hackedbrain.blogspot.com/ JMPergar | Editor Jefe

      Es justo asi, almacena los datos en una cola y cuando tiene conexion los envia. Si la cola se hace muy grande para de recolectar. Aqui podras encontrar toda la informacion http://www.localytics.com/docs/faq/

  • Fernando

    Hola, este post es justo el que estaba buscanco, pero no se como debo de importar a eclipse el fichero que me descargo desde la web de Localytics para que cuando coloco el “import com.localytics.android.*;” en mi Activity.java me lo reconozca y no me de error.

    He probado a importar la carpeta com completa y tambien la carpeta src, pero no lo consigo.

    Como podria hacerlo??

    • http://www.linkedin.com/in/jmpergar JMPergar | Editor Jefe

      Copialo el codigo de manera integra dentro de tu proyecto, como un paquete mas dentro de tu app.

      • Fernando

        Si, el codigo del onCreate() tengo claro que es copiarlo y añadir mi propio key, el problema que creo que tengo es que no se como importar a Eclipse el fichero zip (el que incluye una carperta src con ficheros .ja mas un fichero que llama licence) que me descargo al dar de alta una app en Localytics.

        Porque directamente en el primer paso cuando he de escribir “import com.localytics.android.*;” , ya me da error “cannot be resolved” ese es el error que da eclipse.
        asique imagino que será porque no importo bien los ficheros que me proporcionan desde Localytics.

        gracias por el interes mostrado.

        • http://www.linkedin.com/in/jmpergar JMPergar | Editor Jefe

          Ese zip descomprimelo y copia todo el contenido dentro de la raiz de tu proyecto. Con eso lo tendras solucionado.

          • Fernando

            Muchas gracias!!!! por fin he conseguido que funcione.

            Por cierto, hoy he descubierto este blog gracias a Localytics, pero me parece genial, os seguire a partir de hoy.

          • http://www.linkedin.com/in/jmpergar JMPergar | Editor Jefe

            Muchas gracias a ti por leernos, nosotros por nuestra parte seguiremos intentando traeros buenos tutoriales. Y si te gustan ya sabes, no dudes en recomendarnos, la información es para compartirla.

  • http://www.androidsx.com Omar

    alguien ha usado flurry y localytics puede dar su opini’on? Llevamos usando flurry mucho tiempo y la verdad es que nos sirve mucho. Probamos ganalytics pero fue volver a la prehistoria.

    Saludos,
    Omar

    • http://www.linkedin.com/in/jmpergar JMPergar | Editor Jefe

      Yo no lo he usado a ver si algun lector aporta su opinion.