Cómo enviar datos a GA4 a través del protocolo de medición con Apps Scripts

¿Qué es el protocolo de medición?, ¿cómo utilizarlo?, ¿cómo puedo volcar datos a través de Google Apps Scripts?, ¿qué aplicaciones de uso tiene todo esto?…

Estas son algunas de las cosas que podrás aprender en este artículo.

La importancia de compartir

Todo empezó un día cualquiera leyendo un artículo que había compartido un compañero de Ontop por Slack.

El post era de Miguel Quesada y hablaba de Cómo conectar GA4 y Zapier con Google Sheets + Apps Script

Una vez leído, continué la mañana trabajando para un cliente que vende comida online. Tanto visualizar alitas de pollo hizo que a la hora de comer me entrara antojo. Asi que con unas tristes judías verdes en la nevera decidí bajar a un local debajo de casa que hacen comida casera con la intención de pillar un pollo asado. Eso hice, pero estaba cerrado…

Mientras subía las escaleras de casa pensaba en el dinero que estaría perdiendo el establecimiento al estar cerrado a las 14h de la tarde, hora punta.

  • ¿Sabrían cuánto dinero estaban perdiendo?
  • ¿Habría forma de saberlo?

Mi mente viró al mundo online. Y si nuestro cliente de pollos tuviera su web caída (cerrada), ¿cómo nos enteraríamos?

Entonces recordé el post que había compartido con la comunidad del dato Miguel Quesada y empezaron los “y sis”.

  • ¿Y si somos capaces de detectar cuando la web no está operativa?
  • ¿Y si conseguimos enviar un email automáticamente si eso sucede?
  • ¿Y si logramos registrar todo ello en GA4 para facilitar el análisis y comparativas con periodos anteriores en el futuro?

Un artículo compartido que había leído por la mañana estaba provocando que una idea nueva rondara por mi cabeza…

¿Por qué monitorizar las caídas del servidor?

Lo que empezó de una manera casual cobraba sentido a más preguntas me hacía. Y más cuando en algunos sectores como el de la restauración las ventas se generan en horas muy concretas.

15 minutos con la web o la app caída bastan para perder miles de euros.

O incluso en algunos ecommerce donde un gran porcentaje de las ventas del año dependen de unos días (muchas tiendas con el Black Friday por ejemplo).

Entendamos web caída o cerrada cuando no está operativa, cuando da un error 5XX.

En empresas grandes esto se monitoriza por los departamentos de IT, suele estar controlado perfectamente. El problema reside en que la información no siempre fluye entre departamentos. Asi que te puedes ver analizando una caída de ingresos sin tener ni idea de que el motivo real fue una caída del servidor de 20 minutos.

En empresas más pequeñas la monitorización de caídas es más deficiente y los recursos en infraestructuras son más limitados. Puedes lanzar una campaña que tenga mucho éxito y que el servidor colapse por la avalancha de peticiones (historia real).

Resumiendo, tanto en empresas grandes donde las ventas se concentran en momentos de tiempo muy concretos como en empresas pequeñas donde los recursos son más limitados, puede ser interesante hacer un seguimiento de las caídas del servidor.

¿Cómo monitorizar los errores 5XX del servidor?, primeros pasos

Vayamos con la parte técnica, paso por paso.

1 – Datos necesarios de GA4 – Measurement id

Nos dirigimos a nuestra propiedad de GA4 y copiamos nuestro id ya que lo necesitaremos más adelante. Acto seguido entraremos en la sección de APIs del protocolo de medición:

2 – Datos necesarios de GA4 – API secreta

Creamos una API y copiamos su valor ya que la necesitaremos más adelante:

3 – Creamos un proyecto en Google Apps Script

Entramos en script.google.com y creamos un nuevo proyecto:

Introducimos los datos de GA4 en sus variables:

Los datos que hemos copiado anteriormente los introducimos en las variables measurement_id y api_secret. Así mismo introducimos la url que queremos monitorizar:

¿Cómo enviar un email con Apps Script?

El siguiente dato que debemos introducir en el email donde queremos recibir la notificaciones:

¿Cómo enviar los datos a GA4 vía protocolo de medición con Apps script?

Por último editamos el nombre del evento que vayamos a enviar y sus parámetros asociados. En el ejemplo vemos como se enviaría el evento exception con un parámetro description que recoge el valor con la frase “error servidor 5XX”:

¿Cómo comprobar que funciona?

Para corroborar que todo funciona correctamente, dado que no podemos provocar un error del servidor salvo que le pidamos ayuda a Chema Alonso, lo que haremos es colocar un 200 en los valores posibles del estado del servidor. El valor 200 es la respuesta esperada, lo que nos indica que la web carga perfectamente:

Una vez hecho esto pulsamos en run:

Y si todo está ok deberíamos recibir un mensaje en nuestro correo:

Y su respectivo hit entrando en real time en GA4:

Ojo, la disponibilidad de una web no es del 100%. Las caídas momentaneas son normales. El problema surge cuando los periodos de disponibilidad están por debajo del 99%.

Automatización

Para conseguir monitorizar la web de forma continuada debemos seleccionar desde el menú izquierdo un trigger y especificar cada cuánto se ejecutará la función.

Si lo hacemos cada minuto, el día de mañana, podremos saber que si X día hubo 23 eventos de errores del servidor significa que la web estuvo caída durante 23 minutos.

En la captura vemos una configuración para hacer un chequeo cada 5 minutos:

¿Dónde puedo descargar el código?

Aquí: https://github.com/RodriCU/data/blob/main/check-status-code

Qué otros usos puedo darle a este sistema

A continuación voy a enumerar unos cuantos pero seguro que hay muchos más. Dependerá de las casuísticas de cada proyecto. Algunas ideas:

  • Leads potenciales vs clientes cerrados: entrada de un lead (potencial) que se convierte en cliente tras semanas de negociación, entonces se envía la información desde el CRM a un Google Sheets (con Zapier por ejemplo) y desde ahí a GA4 lo que nos permitirá monitorizar la calidad de los leads entrantes.
  • Membresías: productos que se pagan de forma automática cada x tiempo aunque el cliente no visite la web. De cara a tener un ROAS y un LTV más realista podemos enviar esa información a GA4 (nuevamente con una automatización entre el CRM y Zapier o Make ).
  • Devoluciones: enviamos la información de las devoluciones vía protocolo a GA4.
  • Metereología: en sectores relacionados con el turismo y el ocio la meteorología afecta notablemente a la venta de entradas, por ejemplo. Volcar los datos nos puede ayudar a entender fluctuaciones por regiones. Nuevamente Zapier puede facilitarnos la tarea.
  • Anuncios en TV: teniendo un calendario programado de las apariciones en televisión (registrado en un Google Sheets) podemos llegar a entender subidas y bajadas de tráfico y conversiones en momentos puntuales por la aparición en medios.

Resumiendo

Este es un mero ejemplo de cosas que se puden hacer con el protocolo de medición y Apps Script. Pero para mí lo importante no es el código en sí, sino el hecho de ver como al leer un artículo que alguien había compartido de forma altruista ha dado fruto a esta idea. Qué mejor sitio que Datola, la comunidad entorno al dato, donde compartir las cosas que vamos aprendiendo por el camino.

Rodrigo Carnicero
Rodrigo Carnicero

Trabajo como consultor en Ontop Media, hablo de CRO en la newsletter de CRO School, soy formador... Pero en LinkedIn verás que me presento como Zaurín digital. Y es que "zaurín" es una palabra aragonesa para definir a quien es un culo inquieto

Deja un comentario