Páginas más vistas por usuarios orgánicos en una sola sesión
Muestra cuántas páginas ven en promedio los usuarios orgánicos por sesión y cuáles son las páginas más frecuentes en sesiones con alto número de vistas. Indica la profundidad de navegación del tráfico SEO.
-- Páginas más vistas en sesiones orgánicas y profundidad de navegación
WITH paginas_sesion AS (
SELECT
CONCAT(
user_pseudo_id, '.',
CAST(
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id')
AS STRING)
) AS session_id,
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = 'page_location') AS pagina
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 = 'page_view'
)
SELECT
pagina,
COUNT(*) AS vistas_totales,
COUNT(DISTINCT session_id) AS sesiones_con_pagina,
ROUND(COUNT(*) * 1.0 / COUNT(DISTINCT session_id), 2) AS vistas_por_sesion
FROM
paginas_sesion
GROUP BY
pagina
ORDER BY
vistas_totales DESC
LIMIT 50
Explicación paso a paso
- 2 El CTE extrae la combinación de sesión y página vista para cada evento page_view orgánico.
- 10 Extrae la URL de cada página vista dentro de la sesión.
- 18 Filtra por page_view para contar solo vistas de página efectivas.
- 22 Cuenta el total de vistas de cada página sumando todos los page_view.
- 23 Cuenta en cuántas sesiones distintas apareció cada página.
- 24 Calcula la ratio de vistas por sesión: valores altos indican que la página se recarga frecuentemente o aparece varias veces en la misma sesión.
Ejemplo de resultado esperado
| pagina | vistas_totales | sesiones_con_pagina | vistas_por_sesion |
|---|---|---|---|
| https://ejemplo.com/ | 5432 | 4210 | 1.29 |
| https://ejemplo.com/guia-seo | 3876 | 3654 | 1.06 |
| https://ejemplo.com/blog | 2345 | 1890 | 1.24 |
Variaciones y adaptaciones
Para ver la profundidad media de navegación (páginas por sesión), usar un CTE que cuente pages por session_id y luego calcular AVG(). Para filtrar solo sesiones con más de 3 páginas vistas, añadir HAVING COUNT(*) > 3 en un CTE previo. Para ver las rutas de navegación más comunes, usar STRING_AGG(pagina, ' > ' ORDER BY event_timestamp) agrupado por session_id.