BLOG DE ANALÍTICA WEB, CRM Y ESTRATEGIA DE NEGOCIO

BigQuery + GA4: Informe de páginas de salida

Escrito por Laura Cloquell | Apr 21, 2024 10:00:00 PM

¿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.