BigQuery + GA4: Informe de páginas de salida
¿Recuerdas de Universal Analytics los informes de salida?
Era un informe predeterminado que estaba dentro del epígrafe de comportamiento en el apartado de Contenido o Site content en el que se mostraba esta tabla
Era un informe de las principales páginas de salida de nuestra web, es el informe que está al otro lado del informe de páginas de entrada o landing pages.
En el informe tal y como su nombre indicaba mostraba las principales urls por la que los usuarios se marchan de nuestro sitio web.
El propósito de esta consulta es identificar cuáles son las páginas de salida más comunes en un sitio web, lo que puede proporcionar información valiosa sobre el comportamiento del usuario, posibles puntos de fricción en el diseño del sitio web o el flujo del usuario, y oportunidades para mejorar la retención de usuarios o optimizar las conversiones.
Te ofrecemos también una descripción de lo que hace la consulta por si quieres saberlo, pero puedes saltarte la explicación y copiar y pegar directamente la query.
Esta consulta de BigQuery está diseñada para identificar las páginas de salida de las sesiones de usuarios en un sitio web utilizando datos de Google Analytics 4 exportados a BigQuery. Aquí está el desglose de lo que hace la consulta:
- Subconsulta "prep":
- Selecciona los identificadores de usuario ('user_pseudo_id'), los identificadores de sesión ('session_id'), y las URL de las páginas ('page') donde se ha producido un evento de vista de página ('page_view').
- Recoge el 'event_timestamp' para cada evento de vista de página.
- Filtra para incluir sólo eventos que son vistas de página (event_name = 'page_view').
- Ordena los resultados por 'event_timestamp' para obtener una secuencia de eventos por tiempo.
- Subconsulta "prep_exit":
- Utiliza la tabla temporal 'prep' para seleccionar los mismos campos.
- Aplica la función de ventana 'FIRST_VALUE' para obtener la última página vista ('exit_page') en cada sesión por usuario, ordenando los eventos por 'event_timestamp' de manera descendente, lo que significa que obtiene la página con el último timestamp como la página de salida.
- Consulta principal:
- Selecciona la página ('exit_page') solo si coincide con la última página vista en la sesión (indicando que es la página de salida).
- Cuenta el número de sesiones únicas ('exits') que terminaron en cada página de salida específica, usando 'COUNT(DISTINCT ...') sobre la concatenación de 'user_pseudo_id' y 'session_id'.
- Agrupa los resultados por 'exit_page'.
- Filtra para incluir solo aquellas filas donde 'exit_page' no es nula, asegurando que solo se cuentan las páginas de salida.
- Ordena los resultados por el número de salidas en orden descendente.
Te vamos a pasar la query que has de usar en Bigquery en tu dataset o conjunto de datos de GA4 de tu web para poder ver este tipo de informe.
Recuerda que para hacer esto no es necesario que sepas Bigquery, solo has de copiar y pegar lo que viene a continuación.
WITH prep AS (
SELECT
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE event_name = 'page_view'AND KEY = 'ga_session_id') AS session_id,
(SELECT value.string_value FROM UNNEST(event_params) WHERE event_name = 'page_view'AND KEY = 'page_location') AS page,
event_timestamp
FROM
-- Aquí pon el nombre de tu conjunto de datos de GA4.En events_2023* puedes poner una fecha concreta: _20231001 (1 de octubre de 2023), _202310* (todo octubre de 2023), _2023* (todo lo que llevamos de 2023)...
`<project>.<dataset>.events_2023*`
WHERE
event_name = 'page_view'
ORDER BY
event_timestamp
),
prep_exit AS(
SELECT
user_pseudo_id,
session_id,
page,
event_timestamp,
FIRST_VALUE(CONCAT(page, event_timestamp)) OVER (PARTITION BY user_pseudo_id, session_id ORDER BY event_timestamp DESC) AS exit_page
FROM
rep
ORDER BY
event_timestamp
)
SELECT
CASE
WHEN concat (page, event_timestamp) = exit_page THEN page
ELSE
NULL
END
AS exit_page,
COUNT(DISTINCT CONCAT(user_pseudo_id,session_id)) AS exits
FROM
prep_exit
GROUP BY
exit_page
HAVING
exit_page IS NOT NULL
ORDER BY
exits desc
Si quieres un rango de fechas “cerrado”, por ejemplo del 8 de agosto al 23 de septiembre.
Coge este fragmento de la query de arriba:
FROM
-- Aquí pon el nombre de tu conjunto de datos de GA4.En events_2023* puedes poner una fecha concreta: _20231001 (1 de octubre de 2023), _202310* (todo octubre de 2023), _2023* (todo lo que llevamos de 2023)...
`<project>.<dataset>.events_2023*`
WHERE
event_name = 'page_view'
Y lo sustituyes por:
FROM
`<project>.<dataset>.events_*`
WHERE
event_name = 'page_view'
AND _TABLE_SUFFIX BETWEEN '20230808'
AND '20230923'
Y listo!
Al ejecutar la query obtendrías una tabla así:
En la tabla ya podremos ver las principales páginas de salida de nuestra web y las veces que los usuarios han salido por ellas en el periodo seleccionado.
Hasta aquí el artículo de hoy. Espero que sea útil y provechoso.