Adiós Google Analytics, hola Umami

Published on
5 minutos

¿Cansado de Google Analytics? ¿Te preocupa la privacidad, las cookies o qué pasa con los datos de los usuarios de tu web? ¿Te gustaría ser el dueño de tus datos? Si tú también te haces estas preguntas, estás en el sitio correcto, hoy toca hablar de los datos que genera tu web y a quién se los estás regalando.

Después de la migración del blog, otra de las cosas que tenía en mente era cambiar el sistema de analíticas del blog. Realmente nunca me han importado mucho los números, pero sí que veo útil saber, qué post ha gustado más o qué temáticas han hecho llegar más gente al blog, para eso, necesito analíticas. En 2015 metí en Wordpress Google Analytics, y desde entonces he estado siguiendo cómo funcionaban los post, pero es complejo y la migración a GA4 me ha hecho mirar otras opciones. Además no tienes control sobre los datos que tú generas, los donas a Google para que haga lo que quiera con ellos. Está feo.

De entre todas las opciones que hay en el mercado, he elegido Umami. Umami, de código abierto y gratuito ofrece exactamente lo que busco, métricas de tu sitio web de una forma rápida y sencilla. No trackea ningún dato personal del usuario y permite no tener que poner el famoso aviso de cookies (tampoco lo tengo puesto ahora). Además tú eres el dueño de tus datos y los guardas en tu propia base de datos. Umami ha sido desarrollado por Mike Cao y explica sus razones en un post muy recomendable.

thumbnail-image

Umami (en el momento que escribo este post) solo ofrece la opción de usarlo de manera self-hosted. ¡Qué buen momento elegí para eliminar mi servidor!(ironia) Supongo que en no mucho tiempo, ofrecerán hospedarlos ellos mismos, aunque es un terreno algo pantanoso cuando hablamos de datos. Si no habéis trabajado con datos, os diré que no se pueden almacenar y mover libremente, hay algunas restricciones y algunos países no permiten que esos datos salgan fuera de sus fronteras.

A pesar de no tener servidor, hay muchas opciones para montar Umami usando servicios de terceros y que todo funcione correctamente. Umami es un proyecto que necesita una base de datos (MySQL / Postgresql) para guardar la información, así que en mi caso he optado por crear una base de datos en Supabase y desplegar el proyecto en Vercel (el mismo sitio donde tengo la alojada la web), el proceso no es complejo, pero sí que he tenido que hacer algunos pequeños tweaks para que funcione.

Ahora al igual que hicimos con Giscus, veremos paso a paso como configurar nuestro blog con Umami:

  • Configuramos nuestra base de datos en Supabase
    • Creamos un nuevo proyecto
    • Creamos una nueva base de datos y elegimos una contraseña, en mi caso he optado por usar el generador de contraseñas, he leido que algunos han tenido problemas en la conexión desde Umami si el password tenía caracteres especiales, por si acaso yo los he evitado.
    • Una vez creada la base de datos, necesitamos lanzar algunos scripts para ‘afinarla’ para Umami, creación de tablas y algunas otras características. Desde Umami ya nos dejan los scripts preparados para copiar, pegar y lanzar.
  • Desplegar en Vercel
    • Tampoco me voy a extender mucho en este apartado, de hecho, Umami tiene una documentación que pulsando en el botón de ‘deploy’ ya te prepara todo. Únicamente tenéis que configurar dos parámetros: la cadena de conexión a la base de datos de SupaBase y la contraseña de acceso.
    • Rellenamos los datos en el apartado que nos lo pide.
    • Desplegamos

Es posible que si has llegado hasta este punto, te hayas encontrado ya con algunos fallos. En la mayor parte de tutoriales exceptuando el problema de los passwords y los caracteres especiales todo va de lujo. En mi caso, los principales problemas que he encontrado son por permisos en tablas (estaría bien hacer una PR a Umami cambiando el script) y con las migraciones.

Para solucionarlo los permisos he lanzado estos dos scripts:

grant all privileges on all tables in schema public to postgres, anon, authenticated, service_role;
grant all privileges on all functions in schema public to postgres, anon, authenticated, service_role;
grant all privileges on all sequences in schema public to postgres, anon, authenticated, service_role;

alter default privileges in schema public grant all on tables to postgres, anon, authenticated, service_role;
alter default privileges in schema public grant all on functions to postgres, anon, authenticated, service_role;
alter default privileges in schema public grant all on sequences to postgres, anon, authenticated, service_role;

Y tras clonarme localmente mi proyecto (usando el botón de vercel te lo clona en Github directamente), instalar yarn y lanzarlo manualmente, el despliegue ha ido bien. Por aquí os dejo los comandos:

yarn install
yarn build
yarn prisma migrate resolve --applied "02_add_event_data"

¡Ya tenemos nuestra instancia propia de Umami corriendo en Vercel!

Ya solo nos queda configurar la web para que capture la información de las visitas. La configuración en Umami es sencilla, creamos un nuevo proyecto, y obtenemos el ID de proyecto y el script que debemos ‘inyectar’ en nuestra web para que envíe la información de cada visita.

En mi caso, la plantilla que usé para el blog ya viene preparada para configurar diferentes sistemas de analiticas y Umami está entre ellas. Añadimos al sitemap el id de nuestro proyecto y en el componente, el script correspondiente y voilá, ya tenemos nuestra web capturando la información de las visitas y guardándola en la base de datos de Supabase.

Ahora ya solo queda mantener unos días ambos sistemas de analiticas y comprobar que los datos son similares. Si pasado cierto tiempo, los datos cuadran ya podremos eliminar Google Analytics de nuestra web. Yo ya lo he hecho.

Y hasta aquí llega mi post sobre cómo decir adiós a Google Analytics y hola a Umami. Espero que os haya resultado interesante, si es así, compartidlo, si tenéis alguna duda dejadme un comentario y os responderé lo antes posible. Recordad también que podéis suscribiros y recibir en vuestro correo electrónico cada post para no perderos nada. Un saludo,