Cuando empezamos a trabajar con GA4 es común que nos choquen cosas como que los datos no nos cuadran con Universal Analytics o que las filas de una tabla suman más que el total de la misma. En este artículo vamos a ver de forma práctica y sencilla por qué ocurren algunas de estas discrepancias.
Introducción
Sobre las discrepancias con Universal, hay que recordar que hay diferencias en cuanto a criterios y a cómo se procesan los datos: identificación de los usuarios para calcular las métricas, cardinalidad, modelado, algoritmo HyperLogLog++, etc. Algunas de las causas son las mismas de porqué los datos de la IU no coinciden con BigQuery.
Pero, ¿y dentro de la propia interfaz de GA4? ¿Por qué cuando desagregamos por una dimensión, por ejemplo el país, el sumatorio de usuarios de los diferentes países no nos coincide con la métrica de usuarios totales? ¿o por qué la suma de las sesiones de los diferentes canales de atribución da más que el total de sesiones? Esto en Universal no pasaba.
Marco teórico
Pues en realidad, depende de cómo se procesa el ámbito de las dimensiones.
Vamos a centrarnos en el ámbito usuario y dejaremos para otro post el ámbito sesión.
Resulta que no tenemos más usuarios, pero puede haber usuarios que han navegado desde diferentes países en ese rango temporal o tienen eventos atribuidos a varios países. La asignación de valores que la herramienta haga para los valores de ese usuario pueden marcar la diferencia.
En Universal el criterio para para asignar los valores de las dimensiones en los diferentes ámbitos estaba claro.
Un usuario que ha navegado desde diferentes países es clasificado en uno de ellos (si estamos usando una dimensión de ámbito usuario para hacer la desagregación, este usuario pertenece al último país en el que ha estado). El valor del último hit de la sesión se extiende al resto de hits de la sesión, y el valor de la dimensión de ámbito usuario es uno y aplicable a las siguientes sesiones mientras no se actualice.
Sin embargo, en GA4, vamos a ver lo que pasa con un ejemplo práctico.
Clasificando por país, ejemplo práctico
Somos el equipo de Datola y queremos analizar el número de usuarios que nos han visitado desde los diferentes países del globo durante el mes de mayo de 2023.
Para ello vamos tomar las métrica de usuario totales y segmentarlos por la dimensión «Country».
Antes de continuar, vamos a hacer algunos apuntes sobre esta dimensión.
Country (geográfico)
- Es una dimensión que se registra automáticamente por Google.
- Es de ámbito usuario como puedes ver en la chuleta.
- Toma el país en el que está ubicado geográficamente el usuario, siempre que puede.
- Si el usuario usa VPN´s puede no ser fiable.
- Va asociado a todos los eventos, incluso a los automáticos.
Si vamos a Universal Analytics obtenemos los siguientes resultados:
Country | Users |
TOTAL | 962 |
Spain | 826 |
Argentina | 20 |
Chile | 12 |
United States | 11 |
Mexico | 10 |
Peru | 10 |
United Kingdom | 9 |
Colombia | 6 |
Brazil | 5 |
Germany | 5 |
Italy | 4 |
Netherlands | 3 |
Poland | 3 |
El Salvador | 3 |
Canada | 2 |
Costa Rica | 2 |
Ecuador | 2 |
Honduras | 2 |
Croatia | 2 |
Puerto Rico | 2 |
Sweden | 2 |
Venezuela | 2 |
Austria | 1 |
Bolivia | 1 |
Switzerland | 1 |
Dominican Republic | 1 |
Egypt | 1 |
Finland | 1 |
Guatemala | 1 |
Israel | 1 |
Kenya | 1 |
Cambodia | 1 |
Lithuania | 1 |
Malaysia | 1 |
Nicaragua | 1 |
Norway | 1 |
Panama | 1 |
Portugal | 1 |
Paraguay | 1 |
Romania | 1 |
Taiwan | 1 |
Podemos ver como el sumatorio de todos los países nos cuadra con la métrica total de usuarios (962).
«La cosa concuerda»
Hacemos el mismo ejercicio para GA4:
Country | Total users |
TOTAL | 1025 |
Spain | 889 |
Argentina | 20 |
Chile | 12 |
United States | 12 |
Mexico | 10 |
Peru | 10 |
United Kingdom | 10 |
Colombia | 7 |
Germany | 5 |
Italy | 4 |
Brazil | 3 |
Ecuador | 3 |
El Salvador | 3 |
Netherlands | 3 |
Poland | 3 |
Canada | 2 |
Costa Rica | 2 |
Croatia | 2 |
Honduras | 2 |
India | 2 |
Puerto Rico | 2 |
Sweden | 2 |
Venezuela | 2 |
Austria | 1 |
Bolivia | 1 |
Cambodia | 1 |
Dominican Republic | 1 |
Egypt | 1 |
Finland | 1 |
France | 1 |
Indonesia | 1 |
Iraq | 1 |
Ireland | 1 |
Israel | 1 |
Kenya | 1 |
Lithuania | 1 |
Malaysia | 1 |
Moldova | 1 |
Nicaragua | 1 |
Norway | 1 |
Panama | 1 |
Paraguay | 1 |
Portugal | 1 |
Romania | 1 |
Russia | 1 |
Switzerland | 1 |
Taiwan | 1 |
Ya hago yo la suma de todos los países: 1.034 usuarios (≠ 1.025 usuarios que nos marca el total)
«La cosa no tiene pies ni cabeza»
Pues resulta que si un usuario ha visitado Datola en el mes de mayo desde Irlanda pero también lo ha hecho desde Países Bajos, porque estaba allí de vacaciones, dicho usuario se contará dentro del subconjunto de datos de Irlanda y también dentro del subconjunto de datos de Países Bajos. Si no desagregamos por países, para el total, contará como un único usuario.
Me podéis decir que estos son casos residuales, la mayoría de activos digitales no tienen muchos usuarios que se vayan conectando y cambiándose de país pero…
«Vamos a complicar la cosa»
Imaginémonos, que por lo que sea, algunos eventos de la navegación de un usuario no consiguen establecer el país. Puede que ese usuario tenga «Country = (not set)» (como muestra la tabla anterior). Si en el resto de eventos el país sí se establece, por ejemplo Irlanda, al final del mes, ese usuario estará contabilizado en la fila «(not set)» y también saldrá en la fila «Irlanda».
Esto es más habitual cuando tenemos dimensiones personalizadas.
country_user (de ámbito usuario)
Supongamos también que los usuarios de Datola navegan de forma logada y les hemos preguntado a qué país pertenecen. En este caso no estaremos midiendo el país desde el que navega el usuario, sino el país donde reside habitualmente el usuario y que este ha tenido a bien facilitarnos.
Las características de esta dimensión son las siguientes:
- Es una dimensión personalizada de ámbito usuario.
- Los eventos automáticos no registran este country_user personalizado.
- Una vez que se establece un country_user para un usuario este se mantiene en el tiempo para ese usuario en los eventos posteriores.
El segundo punto es especialmente relevante, ya que en las navegaciones del usuario podrá haber eventos automáticos de GA4 que lleven el valor de country igual a «(not set)», mientras el resto de eventos registrarán el país que el datolista nos ha indicado.
Evento automático sin propiedad de usuario «country»:
Evento personalizado con propiedad de usuario «country»:
La suma de todas las filas desagregadas por country será diferente al total de usuarios sin segmentar por país. Además la diferencia será más pronunciada que con la dimensión Country geográfica que GA4 registra por defecto. Habrá muchos usuarios contabilizados en la fila (not set) que también lo estarán en la fila de algún otro país.
Hay que matizar que sólo reflejará el valor (not set) en los primeros eventos automáticos de la primera sesión del usuario, pero cuando se setee un país este ya se mantendrá para los siguientes eventos.
Como consecuencia de esto el valor del país establecido no propagará a los eventos ocurridos antes aunque sean de la misma sesión como sí ocurría en Universal. La suma de usuarios de todas las filas dará, una vez más, un número mayor que el total de usuarios agregado.
Conclusiones
En Universal, cuando una dimensión de ámbito usuario tiene un valor en una sesión, este valor se extiende a todos los hits de la sesión, incluso a los anteriores a informarse el valor:
En GA4, podemos tener diferentes valores para esa dimensión en la misma sesión, y por tanto diferentes valores para un mismo usuario.
Esto hace que, a la hora de utilizar la métrica usuarios, un mismo usuario pueda estar clasificado en dos grupos diferentes (en este caso en dos países distintos).
Si yo navego como usuario no registrado y luego me registro en la misma sesión, cuando pregunte a GA4 por los usuarios totales me dirá 1. Cuando pregunte por los usuarios no registrados me dirá 1. Y cuando pregunte los usuarios registrados también me dirá 1.
Es cierto que ha habido 1 usuario no registrado que ha navegado, y 1 usuario registrado que ha navegado, aunque ambos fueran el mismo. Para Universal yo sería tan sólo 1 usuario registrado.
No hay un criterio bueno ni malo, lo importante es saber cómo funciona la herramienta antes de analizar los datos. Espero que este artículo te haya hecho reflexionar y que si tienes alguna aportación al respecto estaremos muy agradecidos de que nos la comentes.