Product Analytics

Buenas prácticas para la identificación de usuarios

Eve Salvatore
Marketing Lead

Las llamadas más importantes que realizas con Segment son las llamadas de Track y Identify. Con la llamada Track, puedes asignar acciones a tu sitio web o app a los individuos y comprender mejor sus actividades, identidad y patrones de uso en el tiempo.

Cuando utilizas la llamada Identify junto con la llamada Track de Segment, puedes coimenzar a construir una imagen completa de las interacciones del usuario con tus sistemas, para ayudar a reducir el número de usuarios rastreados por mes por los que se te cobra.

Generación de AnonymousID

Las bibliotecas de Segment generan un anonymousID para cada usuario, incluso antes de identificarlos.

anonymousID es una secuencia de 36 caracteres, generada aleatoriamente y asignada automáticamente a un usuario en su primera visita a tu sitio o app móvil. Puedes usar anonymousID para vincular eventos ejecutados por el usuario mientras navega por tu sitio. Siguiendo un anonymousID, puedes asignar actividades durante varios días al mismo usuario recolectando todas las actividades con esta ID. Si un usuario elige registrarse en tu sitio o iniciar sesión en tu app, puedes identificarlo e incluso incluir el anonymousID en el payload del evento junto con el nuevo userID.

¡Tip! Solo las bibliotecas de sitios web y móviles de Segment generan automáticamente un archivo anonymousID. Si usas las bibliotecas de servidores de Segment, debes generar un anonymousID manualmente. Puede ser cualquier identificador pseudo-único, por ejemplo, puedes usar un sessionID de un servidor backend.

Identificación de usuarios

El método de Segment para identificar te permite vincular a un usuario a sus acciones y registrar características sobre él. Esto incluye una identificación de usuario exclusiva y registra todas las características que conoces sobre un usuario, como la dirección de correo electrónico y el nombre.

Segment recomienda que utilices un identificador de usuario exclusivo que no se cambie por tu userID, por ejemplo, una database ID de de los sistemas internos de tu organización (Ver abajo).

Cuando realizas una llamada Identify utilizando Analytics.js, Segment guarda el userID en las cookies del navegador y registra todas las características del usuario en el almacenamiento local. Si estás utilizando una de las bibliotecas móviles de Segment, las características del userID se almacenarán en la memoria del dispositivo. Esto permite adjuntar datos del usuario a todas las llamadas Page y Track posteriores del usuario para que puedas asignar correctamente estas acciones.

Si un usuario regresa a tu sitio después de que expiren las cookies, Analytics.js buscará una ID antigua en el localStorage del usuario y, si se encuentra, lo definirá como la ID de usuario nuevamente en una nueva cookie. Si el usuario limpia sus cookies y localStorage, se eliminarán todas las ID y el usuario recibe un anonymousID completamente nuevo la próxima vez que visite la página.

Las mejores opciones para userIDs

Una ID de usuario debería ser un identificador robusto, estático y exclusivo por el cual reconoces a un usuario en tus propios sistemas. Como estas ID son consistentes durante toda la vida del cliente, debes incluir una identificación de usuario en las llamadas Identify con la mayor frecuencia posible.

Idealmente, la ID de usuario puede ser una database ID. Por ejemplo, si estás utilizando MongoDB, puede ser un identificador de fila y ser algo como 507f191e810c19729de860ea. También pueden ser UUIDs que generas en algún lugar de tu app. También puedes usar identificadores obtenidos de otras herramientas, como Shopify o Braze, sin embargo, este enfoque puede conducir a una complejidad adicional en sus sistemas.

Segment no recomienda usar direcciones de correo electrónico o nombres de usuario como ID de usuario, ya que pueden cambiar con el tiempo. Segment recomienda que utilices IDs estáticos para que las ID nunca cambien. Al usar una ID estática, aún puedes reconocer al usuario en tus herramientas de análisis, incluso si el usuario cambia la dirección de correo electrónico. Y aún mejor, puedes vincular tus datos analíticos con tu propia base de datos interna.

¡Tip! Incluso si no usas una dirección de correo electrónico o nombre de usuario como ID de usuario, aún debes enviarlos a la carga de análisis como rasgos.

Cuando hacer una llamada Identify

Debes hacer una llamada Identify en las siguientes situaciones:

  • Cuando creas un usuario (por lo que se asigna un userID)
  • Cuando un usuario cambia de información en su perfil
  • Cuando un usuario hace log in
  • Opcionalmente, cuando llames Identify al cargar cualquier página accesible por un usuario conectado

Fusionar perfiles de usuarios identificados y anónimos

La siguiente ilustración muestra una línea de tiempo con las interacciones de un usuario en un sitio, incluidas muestras de llamadas API anteriores que muestran llamadas de Segment y los anonymousID y userID de un usuario

Cuando el usuario visita una página por primera vez, Analytics.js asigna automáticamente al usuario un anonymousID y lo guarda en el almacenamiento local del usuario. A medida que el usuario interactúa con el sitio, por ejemplo, haciendo clic en diferentes páginas, Analytics.js incluye este anonymousID y alguna información contextual en cada llamada y seguimiento de la página. La información contextual puede ser la dirección IP del usuario, el navegador y más.

Cuando un usuario se inscribe para crear una cuenta en el sitio, los eventos .identify(UID) y .track(“Signed Up”) se disparan consecutivamente. Tomás el userID unico de ese usuario desde tus sistemas y lo envías a la biblioteca de Segment para etiquetar los últimos eventos de ese usuario con su ID. La consecuente llamada Track (“Signed Up”) contiene el userID y el anonymousID recopilado automáticamente del usuario y cualquier otra información que captures sobre él, como el nombre, el apellido y la dirección de correo electrónico.

El siguiente ejemplo muestra una llamada Identify que incluye características del usuario y utiliza una database ID (97980cfea0067) como el userID.

analytics.identify("97980cfea0067", {

  name: "Peter Gibbons", //user trait

  email: "peter@example.com", //user trait

  plan: "premium" //user trait

});

Con la llamada Track, la información sobre este evento se almacena en el campo context o en las propiedades del evento. El siguiente ejemplo muestra una llamada de pista que incluye propiedades que le indican al usuario.

analytics.track("Signed Up", {

  userId: "97980cfea0067", //event property

  name: "Peter Gibbons", //event property

  email: "peter@example.com", //event property

  plan: "premium" //event property

});

Además, Analytics.js agrega un message_id y cuatro timestamps a la llamada.

Ahora, a medida que el usuario interactúa con tu sitio y diferentes botones o enlaces que rastreas usando Segment, el userID y el anonymousID son enviados con cada llamada API de seguimiento.

Ejemplos de fusiones de userID

Veamos algunos escenarios más para explicar cómo se atribuye un anonymousID y cómo se puede mezclar con un userID.

Escenario No. 1 - Varios días, un único dispositivo.

Si un usuario hace clic en un anuncio y se dirige a una página web, recibirá un anonymousID. Si bien este usuario es anónimo, navega por diferentes páginas y hace clic en el sitio. Supongamos que regresa dos días después desde el mismo dispositivo, se suscribe y recibe un userID.

Para simplificar, asumimos que el usuario no ha limpiado las cookies o el localStorage donde se almacena el anonymousID original. Si lo hubiera hecho, recibiría un nuevo anonymousID cuando visitara el sitio, y el userID que obtuvo cuando se registró en el sitio no se agregaría a las actividades rastreadas con el antiguo anonymousID.

Escenario No. 2 - Varios días, varios dispositivos, inicio de sesión único

En este escenario, la persona usa un navegador web y una app móvil para interactuar con tu sitio. En cada caso, se atribuye a un anonymousID. En este escenario, el usuario se inscribe desde el navegador web, por lo que Segment atribuye la sesión web al userID. Sin embargo, como no inicia sesión en la app móvil, Segment no puede vincular la actividad móvil a este usuario específico. La actividad de la app móvil sigue siendo anónima a menos que inicie sesión allí.

Escenario No. 3 - Varios días, varios dispositivos, varios inicios de sesión

Similar al escenario anterior, el usuario accedió a tu sitio web y app móvil y también inició sesión en ambos. En este caso, tanto las sesiones web como la app móvil reciben el userID para que Segment pueda vincular la actividad web anónima y los dispositivos móviles con este usuario.

Perfiles de usuario en warehouses

Tu data warehouse tiene un esquema para cada uno de las fuentes de Segment. La información del usuario se almacena en dos tablas en sus esquemas de origen: las tablas identifies y users.

La tabla identifies contiene todos tus eventos de identificación y los timestamps de estos eventos. Cada vez que realizas una llamada de identificación, Segment agrega el UserID, anonymousID, cualquier característica de usuario actualizada o agregada en la llamada, así como el timestamp de cuando se realizó la llamada. Su identificación es su primera parada cuando tiene preguntas sobre los usuarios y sus características.

La tabla users contiene solo llamadas Identify únicas y es una agrupación de la tabla Identifies. La tabla users es la única fuente confiable para las características más actualizadas de un usuario.

Estas tablas solo contienen información sobre un usuario después de haber sido identificado. Sin embargo, aún puedes encontrar información de un usuario anónimo en las tablas pages, screens y track, así como tablas de seguimiento individual de eventos.

Expiración y sobreescritura de IDs

La cookie de identificación de Segment se define con una expiración de un año. Sin embargo, hay algunas formas de redefinir o sobreescribir una identificación:

  • Si llamas reset durante la sesión de navegador de un usuario, se eliminará su userID y anonymousID, lo que significa que el usuario genera un nuevo anonymousID en la próxima visita.
  • Si el usuario limpia manualmente sus cookies y su almacenamiento local, generará un nuevo anonymousID en la próxima visita.
  • Si invocsa alguna llamada antes de establecer un anonymousID, Segment antes definirá automáticamente anonymousID. Esto significa que si defines explícitamente un anonymousID, podrías proporcionar al usuario dos anonymousIDs o sobreescribir uno existente.
  • Si obtienes anonymousID usando analytics.user().anonymousID() antes deque se defina uno, Segment genera y define un anonymousID en lugar de devolver null.
  • Si llamas a Analytics.identify() con un userID diferente al de caché almacenado en userID actual, esto puede sobreescribir el existente y causar problemas de atribución.
  • Si generas un nuevo anonymousID en una biblioteca del servidor y lo pasas desde el servidor al navegador, esto puede sobreescribir el archivo anonymousID.
Recuerda, si un usuario tiene varios dispositivos, puede tener diferentes anonymousID en cada dispositivo.

Vinculación de ID generadas por el servidor y el cliente

Hay algunas ventajas de enviar detalles sobre sus usuarios directamente desde su servidor a medida que el usuario se registra. En la biblioteca del servidor, las llamadas Identify son invisibles para el usuario final, lo que las hace más seguras y mucho más confiables.

Si deseas enviar datos de usuario que sean confidenciales o que no desees exponer ante el cliente, puedse hacer una llamada de identificación desde el servidor con todas las características que conoces sobre el usuario.

Aliasing desde una biblioteca de servidor

Si planeas rastrear a los visitantes anónimos del navegador y simplemente realizas llamadas Identify de la biblioteca de tu servidor, KissMetrics y MixPanel pueden requerir que hagas una llamada alias para enlazar los registros. La llamada Alias enlaza a los visitantes anónimos del lado del cliente con los usuarios identificados por el servidor. Esto no se recomienda, pero de hacerlo, lee los documentos específicos de alias de KissMetrics y MixPanel.

Preguntas comunes

Hay algunas cosas que pueden hacer que sus números no sean precisos.

Inscripciones faltantes

El problemas más común que puedes encontrar al rastrear nuevos registros de usuarios desde el lado del cliente es que solo una porción de los nuevos usuarios se muestra en los reportes.

Esto generalmente es causado por redirigir o volver a cargar la página antes de que las llamadas de seguimiento tengan la oportunidad de ejecutarse. Segment recomienda que realices estas llamadas desde una página de bienvenida luego de que el usuario se registre en lugar de intentar rastrear las llamadas de seguimiento en la página de registro.

La historia anónima se pierde

Esto suele ser un problema solo en MixPanel, ya que es el único destino que requiere una llamada Alias en el navegador para vincular el historial de navegación anónimo a un nuevo usuario identificado.

Recuerda que para los destinos que requieren alias, debes hacer la llamada Alias antes de hacer la llamada Identify a este usuario. Incluso si realizas una llamada Identify para una biblioteca de servidor, esto no puede suceder antes de que el lado del cliente tenga un alias.

//Facebook Pixel