Velocidad de página percibida por usuarios orgánicos
Analiza las métricas de Core Web Vitals (LCP, FID, CLS) enviadas como eventos personalizados desde sesiones orgánicas. Requiere que el sitio tenga implementada la biblioteca web-vitals para enviar estos datos a GA4.
-- Core Web Vitals por página para usuarios orgánicos
-- Requiere implementación de web-vitals que envíe eventos a GA4
-- Nombres de evento habituales: LCP, FID, CLS, INP, TTFB
SELECT
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = 'page_location') AS pagina,
event_name AS metrica,
COUNT(*) AS muestras,
ROUND(AVG(
(SELECT value.float_value FROM UNNEST(event_params) WHERE key = 'value')
), 2) AS promedio,
ROUND(APPROX_QUANTILES(
(SELECT value.float_value FROM UNNEST(event_params) WHERE key = 'value'),
100
)[OFFSET(75)], 2) AS p75
FROM
`your-project.analytics_XXXXXXXXX.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
AND traffic_source.medium = 'organic'
AND event_name IN ('LCP', 'FID', 'CLS', 'INP', 'TTFB')
GROUP BY
pagina, metrica
HAVING
muestras >= 10
ORDER BY
pagina, metrica
Explicación paso a paso
- 3 Los nombres de eventos dependen de la implementación. Los más comunes son LCP, FID, CLS, INP y TTFB, siguiendo la convención de la biblioteca web-vitals de Google.
- 7 Agrupa por métrica para ver cada Core Web Vital por separado.
- 9 Calcula el promedio del valor de la métrica.
- 12 APPROX_QUANTILES calcula el percentil 75 (P75), que es el umbral usado por Google para evaluar Core Web Vitals.
- 22 Filtra por los nombres de eventos de Web Vitals. Ajustar según la implementación específica del sitio.
- 25 Excluye páginas con pocas muestras para obtener datos representativos.
Ejemplo de resultado esperado
| pagina | metrica | muestras | promedio | p75 |
|---|---|---|---|---|
| https://ejemplo.com/guia-seo | LCP | 245 | 2340.50 | 2890.00 |
| https://ejemplo.com/guia-seo | CLS | 245 | 0.08 | 0.12 |
| https://ejemplo.com/guia-seo | INP | 198 | 120.30 | 185.00 |
Variaciones y adaptaciones
Si los eventos se llaman diferente (web_vitals, cwv, etc.), ajustar el filtro event_name. Para ver solo páginas que no pasan los umbrales de Google (LCP > 2500, CLS > 0.1, INP > 200), añadir HAVING con la condición correspondiente. Para comparar mobile vs desktop, añadir device.category al SELECT y GROUP BY.
Queries relacionadas
Detección de URLs con caída brusca de tráfico orgánico
GA4 en BigQuery
Avanzado
Análisis de cohortes de usuarios orgánicos por semana de adquisición
GA4 en BigQuery
Avanzado
URLs con mucho tráfico orgánico pero pocas impresiones
Cruce GA4 + GSC
Avanzado
Engagement rate por landing page orgánica
GA4 en BigQuery
Intermedio