domingo, 11 de marzo de 2012

Google Analytics en QlikView



Recientemente he estado probando las distintas posibilidades de integrar datos de Google Analytics en una aplicación QlikView. Ahora mismo existen dos opciones. Una es gratuita y un poco más de andar por casa. La otra, es de pago y algo más profesional.

En este post voy a comentar la primera de ellas. El coste del resultado final es de 0 € y alrededor de 30 minutos como máximo. Este post va dirigido tanto a los que conocéis QlikView como a los que no.



¿qué vamos a hacer?

Utilizar una aplicación QlikView para extraer nuestros datos de Google Analytics y usar la potencia y facilidad de uso de QlikView para analizarlos.


necesitamos...

A modo de receta, os enumero lo que necesitaremos para tener nuestra aplicación QlikView para analizar datos de Google Analytics:
  1. QlikView instalado.
  2. Una cuenta de Google Analytics con al menos un perfil configurado.
  3. Fichero GoogleAnalyticsClient.jar (descárgalo aquí).
  4. Aplicación QlikView de ejemplo (descárgala aquí).

¿qué es QlikView?

Primero, para los que no conozcáis QlikView, os diré de manera muy resumida que es una herramienta estupenda y fácil de usar para hacer cuadros de mando, análisis multidimensional, e incluso reporting. Es muy fácil integrar datos de diversas fuentes (bases de datos, ficheros XLS, de texto, páginas y servicios web, SAP, salesforce, etc…) y también se desarrolla muy rápido, pudiendo tener cuadros de mando completamente funcionales en cuestión de días.


Es gratuito para uso personal y podéis descargarlo gratuitamente desde la página web de descarga tras rellenar el típico formulario. Una vez instalado, podréis crear vuestras propias aplicaciones QlikView sin límite de funcionalidad, volumen de datos a cargar u objetos (gráficos, tablas, …) a utilizar. La limitación de esta edición gratuita está en que los documentos QlikView que creéis serán para uso vuestro personal. No es posible compartir documentos entre diferentes personas que usen edición gratuita.


información de acceso a Google Analytics

Para extraer la información, necesitamos especificar una cuenta (email) con acceso a Google Analytics, su contraseña, y el perfil de Google Analytics que queremos usar.
Para los que sois como yo novatos en esto, os diré cómo saber el ID de perfil de manera rápida. Cuando accedéis a Google Analytics, en la barra naranja en su parte izquierda hay un desplegable para seleccionar un perfil. Seleccionáis uno, vais al Dashboard y en la barra de direcciones del navegador debería aparecer algo así:


El profile ID que necesitamos es el número que aparece tras la “p”. En este caso, el perfil sería 97855379.

Con todo esto listo, vamos al siguiente paso.


directorios y ficheros

Para comenzar, necesitaremos juntar en un mismo directorio el fichero .JAR, el documento QlikView de ejemplo. Además, crearemos una carpeta que se llame “data” en ese mismo directorio, ahí volcaremos los ficheros de datos que nos devuelva Google Analytics para después cargarlos en QlikView. Tendremos algo así:



QlikView

Necesitaremos una aplicación QlikView para cargar y mostrar la información. Podríais crearla desde cero o reutilizar una. Utilizaremos la que os he puesto más arriba en el punto 4 del menú. Os explicaré los pasos a realizar sobre este ejemplo.

Bien, abrimos la aplicación QlikView (Google Analytics - Ejemplo.qvw) y veremos este diálogo:



Nos os preocupéis por ese mensaje, para seguir adelante tendremos que marcar el check de que queremos continuar (aunque ponga no recomendado, lo marcamos) y hacer click en “Continue”. Una vez abierta la aplicación, vemos que no hay datos cargados. Tendremos que ir a la pestaña “Configuration” para introducir nuestros datos de Google Analytics y el período del que queremos extraer información:



En este ejemplo, se han establecido unas dimensiones y métricas como punto de partida, y sobre ello se ha construido la aplicación. Si conocéis Google Analytics, os costará poco cambiar estos parámetros y extraer otra información de Google Analyticis.
Sobre las fechas, os recomiendo poner un período de 2-3 días en las primera prueba, ya que para cada día se lanzará una ventanita de CMD un poco incómoda. Cuando veáis que todo es correcto, entonces podéis poner un período mayor y dejarlo recargando mientras hacéis otras cosas.

Antes de pulsar el botón de “Reload” y cargar nuestros datos, tendremos que cambiar unos ajustes de seguridad de QlikView para que nos permita lanzar procesos externos (en este caso ejecutar el .JAR desde línea de comandos). Para ello, seleccionamos en el menú superior la opción de Configuración, Preferencias de Usuario, y en la pestaña Seguridad marcar la 2ª y 3ª opción:


Ahora sí. Ya tenemos los datos de conexión a Google Analytics y podemos ejecutar desde QlikView el cliente java para extraer la info de Google Analytics. Pulsamos el botón Reload y QlikView ejecutará el script de carga y dependiendo del período que hayamos establecido tendremos que ver más o menos pop-ups de línea de comandos.



Veremos algo como esto:




resultado final

Et voilá! Ya tenemos nuestra aplicación QlikView con datos de Google Analytics lista para analizar en profundidad qué está pasando en nuestra web!



Esto no es más que un ejemplo de partida tanto para aquellos que conocéis QlikView y no mucho Google Analytics, como para aquellos que conocéis Google Analytics y no  QlikView, y para aquellos que controláis ambas pero no sabíais lo bien que se llevan juntas.
Usa este ejemplo bajo tu responsabilidad y ten en cuenta que obviamente no tiene ningún tipo de soporte, lo que hagas a partir de ahora con esta aplicación es cosa tuya ;)

Como véis, este post está orientado a conseguir el resultado final más que en explicar la parte técnica. El detalle de cómo se extraen los datos a CSV y se leen en QlikView he preferido obviarlo porque es un script bastante sencillo y creo que es fácilmente comprensible gracias a los comentarios dentro del propio script.

Más adelante en otro post comentaré la segunda posibilidad, esta ya de pago, para hacer lo mismo. Se llama QVsource, y para los que no podáis esperar, podéis leer sobre esto en el blog de QlikMetrics (post en inglés aquí).

Espero que este post os haya sido de ayuda, y como diría Leo Harlem: "no te lo quedes pa’ti hombre, no seas egoísta! Compártelo, tuitéalo!"

30 comentarios:

  1. Felicidades por el tremendo post.
    Una pregunta, es posible agregar segmentos a los datos que deseo descargar desde Analytics?

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. muy util la verdad, incluso para los no tecnicos como yo.
    He visto que solo me baja 1000 registros por dia.
    ¿Como lo hago si tengo mas?
    Gracias y ya estoy a la espera del siguiente post

    ResponderEliminar
  4. Gracias Anónimo.
    Sobre lo que comentas de los segmentos, no estoy seguro de si este cliente tiene el parámetro para especificar los segmentos (no he encontrado apenas documentación sobre él, lo siento).

    Ahora, dependiendo de la complejidad del segmento, te diría que algunos de ellos se pueden replicar en QlikView con funciones similares, marcadores de selecciones, etc.

    ResponderEliminar
  5. jfo,

    Así es, por defecto devuelve 1000 resultados si no especificamos lo contrario.

    En el script, cambia la línea 72 por esta, que contiene el parámetro maxresults, y podrás especificar un número mayor de resultados:

    EXECUTE java -jar GoogleAnalyticsClient.jar -u $(gUserName) -p $(gPassword) -f $(gProfileId) -d $(gDimensions) -m $(gMetrics) -s $(myDate) -e $(myDate) --max-results=5000 -o data\$(myFile);

    Cambia el 5000 por el número que veas que cubra al menos todos los resultados de un día (un csv). El valor máximo permitido es 10.000.

    ResponderEliminar
    Respuestas
    1. Estoy intentando ejecutar esa misma linea de comandos para obtener las 5000 lineas y no funciona, puedes por favor ayudarme

      Eliminar
  6. Buenas,

    Enhorabuena por el post, sencillo de entender y fácil de aplicar.

    A la hora de hacer el montaje, yo tengo el inconveniente de que trabajo con proxy,que tiene seguridad. ¿cómo puedo implementar esto en la llamada?

    Muchas gracias

    ResponderEliminar
  7. Hola Anónimo, gracias!

    Entiendo que lo único que tendrías que hacer es permitir en el proxy las llamadas desde la máquina hasta a las IP de google. Por ejemplo, analizando las peticiones que hace desde mi equipo, veo que cada vez que llama para traer los datos hace llamadas a la IP 209.85.148.99 (google).

    Ocurre lo mismo si queremos integrar mapas de Google Maps en QlikView, tendremos que añadir la excepción en el proxy para que pueda salir a internet y pedirle a Google la información.

    Un saludo.

    ResponderEliminar
  8. Excelente tuto amigo...me ha ayudado muchísimo, y entre nos prefiero tu solución gratuita a la que ofrece QVSource.

    Sigue adelante

    ResponderEliminar
  9. Hola Borja, muy bueno y muchas gracias por la info. Te molesto porque hice funcionar todo, con datos de una cuenta de GA que tiene info cuando lo veo desde la web, pero el proceso corre y genera los csv sin datos. Sabrías decirme qué puedo revisar? Muchas gracias.

    ResponderEliminar
  10. Hola Borja, estuve haciendo más pruebas y ya pude obtener datos. El tema es de acceso, pues desde una PC que está fuera del proxy pude obtener los datos. Gracias de todos modos.

    ResponderEliminar
  11. Muy buena toda la info.

    Oye, ¿Conoces algun tutorial en castellano para controlar la herramienta QlikView?

    ResponderEliminar
  12. ¿Este método sigue vigente?

    ResponderEliminar
  13. Thank you for sharing this blog !! QlikView Software is a software vendor specializing in data visualization, executive dashboards, and self-administration business knowledge items. Analyst firm Gartner consistently rates qlik as one of the top information perception and business intelligence (BI) merchants on the lookout, including Tableau and Microsoft.

    ResponderEliminar