BigQuery: como consultar que parámetros hay dentro de un campo anidado

Cuando conectamos nuestra cuenta de Google Analytics a BigQuery, uno de los inconvenientes más comunes que nos encontramos es cómo desanidar los parámetros que se encuentran dentro de las estructuras de datos anidadas.

Este proceso puede ser complicado debido a la forma en que los datos se organizan y almacenan en Google Analytics, lo que puede dificultar su análisis y manipulación directa. Este tema lo abordamos en detalle en el artículo titulado BigQuery: Cómo desanidar (unnest) los parámetros de eventos de GA4, donde proporcionamos una guía paso a paso de como desanidar los parámetros de forma efectiva.

Sin embargo, antes de poder desanidar, hay un problema previo que es saber cuál es el contenido exacto de esa dimensión, ya que esto nos permitirá entender mejor la estructura de los datos y cómo podemos trabajar con ellos de manera más eficiente.


Índice:

Consultar variables en event_param

Consultar variables en user_properties


Entre todas las dimensiones del esquema de GA4 en BigQuery, existen algunas que son especialmente importantes. Estas dimensiones anidadas pueden ser complejas de manejar, pero son impresecindibles para obtener una comprensión completa de los datos.

Por un lado, tenemos los event_params, que son parámetros específicos asociados a cada evento registrado en Google Analytics. Estos parámetros pueden incluir detalles como la categoría del evento, la acción realizada, la etiqueta, y otros datos personalizados que se hayan configurado para el seguimiento de eventos.

Por otro lado, están las user_properties, que son propiedades relacionadas con los usuarios que interactúan con el sitio o la aplicación. Estas propiedades pueden abarcar información demográfica, intereses, o cualquier otro dato relevante que se haya recopilado sobre los usuarios. Para poder trabajar eficazmente con estas dimensiones anidadas, es fundamental desanidar los datos y extraer los parámetros específicos que se encuentran ocultos dentro de estas variables.

A continuación, vamos a ver y explicar el código necesario para identificar y extraer estos parámetros, lo que nos permitirá analizar los datos de manera más detallada y precisa.

Consultar variables en event_param

Para consultar que parámetros están anidados en event_params utilizamos este codigo:

SELECT
 event_parameter.key AS event_param,
 COUNT(*) AS occurrences
 FROM `[PROJECT_ID].[DATASET_ID].[TABLA_EVENTS_YYYYMMDD]`, UNNEST(event_params) AS event_parameter
GROUP BY 1
ORDER BY 2 DESC;

Vamos a ver con atención que hace esta consulta:
 

SELECT event_parameter.key AS event_param, COUNT(*) AS occurrences: Esta parte especifica qué columnas recuperar y cómo nombrarlas.

  • event_parameter.key AS event_param: Selecciona el valor del campo key dentro de la matriz anidada event_params. Esta key representa el nombre de un parámetro de evento (por ejemplo, "page_title", "ga_session_id", etc.). 
  • COUNT(*) AS occurrences: Esto proporciona el número total de veces que aparece cada parámetro de evento en todos los eventos analizados. 

FROM webappanalyzing.analytics_435491063.events_202501*, UNNEST(event_params) AS event_parameter: Esta es la parte importante ya que maneja la estructura anidada de los eventos de GA4.

  • UNNEST(event_params): Los eventos de GA4 tienen un campo llamado event_params, que es una matriz de pares clave-valor. UNNEST toma esta matriz y la expande en filas separadas. Por lo tanto, si un evento tiene tres parámetros, generará tres filas para ese evento, una para cada parámetro.Esto permite acceder a los elementos individuales de la matriz no anidada, como event_parameter.key y event_parameter.value (aunque esta consulta solo usa la key).

Consultar variables en user_properties

 De la misma manera que hemos abordado el proceso con los event_params, aplicaremos un enfoque similar para trabajar con las user_properties. Estas propiedades de usuario son igualmente importantes para el análisis detallado de los datos, ya que proporcionan información valiosa sobre los usuarios que interactúan con nuestro sitio o aplicación. Al igual que con los event_params, hay que desanidar estas propiedades para poder acceder a los datos específicos que contienen.

El código que emplearemos para este propósito será prácticamente idéntico al utilizado para los event_params, pero lo adaptaremos específicamente para las user_properties.


SELECT
 user_properties.key AS user_props,
 COUNT(*) AS occurrences
FROM `[PROJECT_ID].[DATASET_ID].[TABLA_EVENTS_YYYYMMDD]`, UNNEST(user_properties) AS user_properties
GROUP BY 1
ORDER BY 2 DESC;

 

De esta manera, hemos logrado acceder al contenido de estas dos dimensiones anidadas, que son, posiblemente, las dos dimensiones más importantes del esquema de datos de GA4 en BigQuery. Al desanidar estas dimensiones, podemos extraer información valiosa que nos permite comprender mejor el comportamiento del usuario, optimizar nuestras estrategias de marketing y mejorar la experiencia general del usuario.

En resumen, el acceso a estas dimensiones anidadas es esencial para cualquier análisis de datos que busque ser preciso y efectivo, ya que nos ofrece una perspectiva más rica y detallada de los datos recopilados a través de Google Analytics 4.


 

David Hernández

Digital Analyst


Soy un apasionado de los datos, la tecnología, la ciencia y el aprendizaje continuo.

Trabajo como Digital Analyst desde 2020.

Participo en el ciclo completo de los datos: definición e implementación de recolección, procesado y distribución, análisis de datos y reporting.

Submit Your Comment