Páginas de salida más frecuentes en sesiones orgánicas
Identifica las páginas donde los usuarios orgánicos abandonan el sitio con mayor frecuencia. Permite detectar problemas de contenido o UX que provocan la salida.
-- Páginas de salida más frecuentes en sesiones orgánicas
-- Identifica la última página vista de cada sesión
WITH ultima_pagina 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,
ARRAY_AGG(
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location')
ORDER BY event_timestamp DESC
LIMIT 1
)[OFFSET(0)] AS pagina_salida
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'
GROUP BY
session_id
)
SELECT
pagina_salida,
COUNT(*) AS salidas,
ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2) AS porcentaje_salidas
FROM
ultima_pagina
GROUP BY
pagina_salida
ORDER BY
salidas DESC
LIMIT 30
Explicación paso a paso
- 3 El CTE identifica la última página vista de cada sesión orgánica.
- 11 ARRAY_AGG con ORDER BY event_timestamp DESC y LIMIT 1 obtiene la página con el timestamp más reciente de la sesión.
- 22 Filtra por page_view para considerar solo las páginas que el usuario efectivamente visitó.
- 28 Cuenta cuántas sesiones terminaron en cada página.
- 29 Calcula el porcentaje de salidas respecto al total con una window function.
Ejemplo de resultado esperado
| pagina_salida | salidas | porcentaje_salidas |
|---|---|---|
| https://ejemplo.com/contacto | 1876 | 12.34 |
| https://ejemplo.com/guia-seo | 1243 | 8.18 |
| https://ejemplo.com/precios | 987 | 6.50 |
| https://ejemplo.com/blog/analytics | 765 | 5.04 |
Variaciones y adaptaciones
Para calcular la tasa de salida (salidas / vistas totales de esa página), cruzar con un CTE que cuente page_views por página. Para ver solo páginas de blog como punto de salida, añadir WHERE pagina_salida LIKE '%/blog/%'. Para comparar la página de entrada vs la de salida, añadir la primera página vista con ORDER BY ASC.
Queries relacionadas
Análisis de páginas zombi: sin clics ni conversiones
Cruce GA4 + GSC
Avanzado
Eventos personalizados disparados en sesiones orgánicas
GA4 en BigQuery
Intermedio
Tráfico orgánico segmentado por tipo de contenido
GA4 en BigQuery
Avanzado
URLs con mucho tráfico orgánico pero pocas impresiones
Cruce GA4 + GSC
Avanzado