La conexión nativa de Google Analytics con BigQuery es una auténtica maravilla aunque la curva de aprendizaje sea un poco más grande que con la interfaz normal de la herramienta.
Hoy vamos a ver cómo poder visualizar datos del mismo día en el que estás sin tener que esperar las dichosas 24 horas de procesamiento de datos gracias a BigQuery.
En realidad se trata de un proceso que Google hace «por detrás» todos los días. Cada día se genera una tabla con los pero hay un lag de hasta 72 horas desde que esa tabla se comunica con Google Analytics 4. Si accedes a ella y manipulas esa data para visualizarla de una manera más agradable, ya lo tienes.
Pasos previos. Tener conectada la cuenta de GA4 y BigQuery y activar el streaming
Lo primero de todo y más importante es conectar las cuentas. Hay muchos tutoriales por ahí para hacerlo , te dejo este de DATOLA que me gusta mucho.
Para que puedas ver los datos en tiempo real necesitas activa la opción de Streaming que encontrarás en un menú como este:
De esta manera estarás recogiendo todos los datos, tanto procesados como no procesados y tu data será mucho más fiable que en la interfaz usual de GA4.
Yo uso esta funcionalidad sobre todo para ver número de usuarios ya que es una métrica que en Marketing4All y webs similares es bastante importante.
¿Tiene coste esta funcionalidad de BigQuery en Google Analytics 4?
Si, pero es muy bajo y si tu negocio depende de él, ya te digo que no te va a importar pagarlo. Estamos hablando de 0.05 USD por 1GB (1GB son aproximadamente 600.000 eventos) . Se te factura por la cantidad de datos leídos. Tienes más información del pricing aquí.
Cómo ver los datos de hoy en Google Analytics 4 con BigQuery
Una vez tengas ya los datos en tu interfaz de BigQuery podrás acceder a ellos con las siguientes instrucciones en SQL:
select
event_date,
count (distinct user_pseudo_id) as users
from
`your-project-name.analytics_999999999.events_intraday_*` # change your project name and analytics ID
where
_table_suffix between ‘20230801’ and ‘20230809’
group by
1
order by
event_date asc
Esto te mostrará una tabla parecida a esta:
Row | event_date | users |
---|---|---|
1 | 2024-02-08 | 100 |
2 | 2024-02-09 | 150 |
3 | 2024-02-10 | 200 |
¿Y si quieres combinar los datos de las tablas normales de días anteriores y las tablas en tiempo real?
Con este código SQL lo podrías tener:
select
event_date,
count (distinct user_pseudo_id) as users
from
(
select
*
from
`your-project-name.analytics_999999999.events_*` # Replace with your project name and analytics ID
where
_table_suffix between ‘20230801’ and ‘20230809’
union all
select
*
from
`your-project-name.analytics_999999999.events_intraday_*` # Replace with your project name and analytics ID
where
_table_suffix between ‘20230801’ and ‘20230809’
)
group by
1
order by
event_date asc