6/11/21

GA4: Cómo asignar user_id a la primera visita de un usuario no logueado (Web)


Antes de comenzar, debes cumplir con los siguientes requisitos:

  1. Uno o más flujos Web capturando datos para la misma propiedad de GA4. 
  2. Variable de user_id configurada en GA4 para usuarios que inician sesión. 
  3. Enlace de la propiedad de GA4 con Bigquery. 
  4. Bigqury activado (recuerda que usar BQ no es gratuito).
Si cumples con estos requisitos, puedes hacer muchas cosas que no se pueden lograr solo con los reportes. 

Con el siguiente ejemplo, puedes recuperar todos los user_pseudo_id (Client ID) asignados al evento first_visit, que corresponde al primer ingreso de un usuario al sitio Web y que no tiene un user_id asignado; y si el usuario se registra y se le asigna un user_id, puedes hacer match con su user_pseudo_id para conocer el user_id retroactivamente.

SELECT
    client_id, user_id,
    first_visit, device
FROM (
    SELECT
        primera.user_pseudo_id as client_id, 
        segunda.user_id as user_id,
        primera.event_date AS first_visit,
        primera.device.category as device, 
        ROW_NUMBER() OVER(PARTITION BY primera.user_pseudo_id ORDER BY primera.event_timestamp DESC) AS row_num
    FROM `********.events_*` as primera
    JOIN (SELECT user_id, user_pseudo_id 
      FROM `********.events_*`
      WHERE _TABLE_SUFFIX BETWEEN '20210601' AND '20211031'
      AND user_id IS NOT NULL
      GROUP BY user_id, user_pseudo_id) as segunda
    ON primera.user_pseudo_id = segunda.user_pseudo_id
    WHERE event_name="first_visit"
    AND _TABLE_SUFFIX BETWEEN '20210601' AND '20211031')
WHERE row_num=1


No olvides editar el origen de los datos y las fechas.  En este ejemplo el origen de los datos es el mismo en ambos "FROM".

Comenta si te funcionó. Si tienes otras soluciones para compartir o hay algún dato que no puedes rescatar, también comenta 💝

No hay comentarios:

Publicar un comentario