Establecer ID de usuario
Aprende a configurar los ID de usuario a través del SDK de Braze. Son identificadores únicos que te permiten realizar el seguimiento de los usuarios en distintos dispositivos y plataformas, importar sus datos a través de la API de datos de usuario y enviar mensajes dirigidos a través de la API de mensajería. Si no asignas un ID único a un usuario, Braze le asignará un ID anónimo; sin embargo, no podrás utilizar estas características hasta que lo hagas.

Para los SDK envolventes que no aparecen en la lista, utiliza el método nativo de Android o Swift correspondiente.
Acerca de los usuarios anónimos
Después de integrar el SDK de Braze, los usuarios que inicien tu aplicación por primera vez se considerarán “anónimos” hasta que llames al método changeUser y les asignes un external_id. Una vez asignado, no puedes volver a hacerlos anónimos. Sin embargo, si desinstalan y vuelven a instalar tu aplicación, volverán a ser anónimos hasta que se llame a changeUser.
Si un usuario previamente identificado inicia una sesión en un nuevo dispositivo, Braze fusiona campos específicos del perfil anónimo que aún no existan en el perfil identificado después de que llames a changeUser en ese dispositivo utilizando su external_id. No todos los datos se transfieren: solo se fusionan los campos que no están ya completados en el perfil identificado. Para consultar la lista completa de campos que se transfieren, consulta comportamiento de fusión.
Prevenir el seguimiento de usuarios anónimos
Si tu caso de uso requiere que no se recopilen datos antes de que un usuario sea identificado, puedes retrasar la inicialización del SDK de Braze hasta que el usuario inicie sesión y un external_id esté disponible. Establece una bandera en tu código que cambie a true cuando el usuario inicie sesión, y solo inicializa el SDK cuando esa bandera esté establecida.

Solo retrasa la inicialización la primera vez que un usuario descarga tu aplicación (antes de que se establezca un external_id). Si impides que el SDK se inicialice cada vez que un usuario cierra sesión o inicia una nueva sesión, interferirá con la precarga de activos de mensajes dentro de la aplicación y tarjetas de contenido, lo que puede provocar errores de capacidad de entrega en esas Campaigns.
Establecer un ID de usuario
Para establecer un ID de usuario, llama al método changeUser() después de que el usuario inicie sesión por primera vez. Los ID deben ser únicos y seguir nuestras buenas prácticas de nomenclatura.
Si estás hasheando un identificador único, asegúrate de normalizar la entrada de tu función de hashing. Por ejemplo, al hashear una dirección de correo electrónico, elimina cualquier espacio al principio o al final y ten en cuenta la localización.
Para una implementación estándar del SDK Web, puedes utilizar el siguiente método:
braze.changeUser(YOUR_USER_ID_STRING);
Si prefieres utilizar Google Tag Manager, puedes usar el tipo de etiqueta Change User para llamar al método changeUser. Úsalo siempre que un usuario inicie sesión o sea identificado de otra forma con su identificador external_id único.
Asegúrate de introducir el ID único del usuario actual en el campo External User ID, que normalmente se rellena mediante una variable de la capa de datos enviada por tu sitio web.

Braze.getInstance(context).changeUser(YOUR_USER_ID_STRING);
Braze.getInstance(context).changeUser(YOUR_USER_ID_STRING)
AppDelegate.braze?.changeUser(userId: "YOUR_USER_ID")
[AppDelegate.braze changeUser:@"YOUR_USER_ID_STRING"];

changeUser pone en cola el cambio de usuario y retorna inmediatamente en el hilo que realiza la llamada. Cualquier setter de atributos que se llame sobre braze.user después se serializa automáticamente detrás de las operaciones iniciadas por changeUser. Leer braze.user.id bloquea el hilo que realiza la llamada hasta que el cambio de usuario se complete por completo. Para contextos en el hilo principal o sensibles a la latencia, utiliza las alternativas no bloqueantes.
// Completion handler — always delivers on the main thread.
AppDelegate.braze?.user.getId { userId in
print("User ID:", userId ?? "anonymous")
}
// Async/await (iOS 13.0+, tvOS 13.0+, watchOS 6.0+, macOS 10.15+)
let userId = await AppDelegate.braze?.user.getId()
// Completion handler — always delivers on the main thread.
[AppDelegate.braze.user getIdWithCompletion:^(NSString * _Nullable userId) {
NSLog(@"User ID: %@", userId ?: @"anonymous");
}];
BrazePlugin.changeUser("YOUR_USER_ID");
m.Braze.setUserId(YOUR_USER_ID_STRING)
AppboyBinding.ChangeUser("YOUR_USER_ID_STRING");
Braze.changeUser("YOUR_USER_ID_STRING");
Cómo funciona changeUser()
Cuando llamas a changeUser(), se aplican los siguientes comportamientos:
- Llamar a
changeUser()con el mismo ID de usuario que ya está configurado no tiene efecto en el recuento de sesiones. - Llamar a
changeUser()con un ID de usuario diferente finaliza automáticamente la sesión actual e inicia una nueva. - Cuando un usuario anónimo llama a
changeUser()con un ID de usuario nuevo (que aún no existe en Braze), los datos del perfil anónimo se fusionan con el nuevo perfil identificado. - Cuando un usuario anónimo llama a
changeUser()con un ID de usuario existente, los datos del perfil anónimo no se fusionan con el perfil identificado.

Llamar a changeUser() desencadena un envío de datos como parte del cierre de la sesión del usuario actual. El SDK envía automáticamente cualquier dato pendiente del usuario anterior antes de cambiar al nuevo usuario, por lo que no necesitas solicitar manualmente un envío de datos antes de llamar a changeUser().

No asignes un único ID de usuario compartido (por ejemplo, un ID externo predeterminado estático) ni llames a changeUser() cuando un usuario cierre la sesión. Hacerlo te impide volver a interactuar con cualquier usuario que haya iniciado sesión previamente en dispositivos compartidos y provoca que todos los datos se registren bajo un único ID de usuario, lo que puede causar que otras características no funcionen como se espera. En su lugar, haz un seguimiento de todos los ID de usuario por separado y asegúrate de que el proceso de cierre de sesión de tu aplicación permita volver a cambiar a un usuario que haya iniciado sesión previamente. Cuando se inicia una nueva sesión, Braze actualiza automáticamente los datos del perfil recién activo.
Gestión de notificaciones push después del cierre de sesión
Cuando un usuario cierra sesión en tu aplicación, llama al método logout() o unregisterPush() del SDK de Braze como parte de tu flujo de cierre de sesión. Cuando cualquiera de las dos llamadas tiene éxito, Braze elimina inmediatamente el token de notificaciones push del dispositivo del perfil de usuario actual, de modo que Braze ya no se dirige a ese dispositivo para futuras Campaigns push.
- Para un cierre de sesión completo, llama a
logout()para cancelar el registro push y, en caso de éxito, borrar los datos locales del SDK y desactivar el SDK. Unlogout()exitoso ya llama awipeData()por ti. - Para detener solo el push, llama a
unregisterPush()para eliminar el token de notificaciones push del perfil de usuario y borrar el token almacenado localmente sin eliminar otros datos del SDK.
Para detalles de implementación, manejo de errores y pasos de nuevo registro, consulta Gestionar la recopilación de datos para tu plataforma:

Si una notificación push ya está en tránsito cuando logout() o unregisterPush() tiene éxito, es posible que esa notificación aún se entregue al dispositivo.
Alias de usuario
Cómo funcionan
Aunque los usuarios anónimos no tienen external_ids, puedes asignarles un alias de usuario. Debes asignar un alias de usuario cuando quieras añadir otros identificadores al usuario pero no sepas cuál es su external_id (por ejemplo, no ha iniciado sesión). Con los alias de usuario, también puedes:
- Utilizar la API de Braze para registrar eventos y atributos asociados a usuarios anónimos
- Utilizar el filtro de segmentación External User ID is blank para dirigirte a usuarios anónimos en tu mensajería
Establecer un alias de usuario
Un alias de usuario consta de dos partes: un nombre y una etiqueta. El nombre se refiere al identificador en sí, mientras que la etiqueta se refiere al tipo de identificador al que pertenece. Por ejemplo, si tienes un usuario en una plataforma de soporte al cliente de terceros con el ID externo 987654, puedes asignarle un alias en Braze con el nombre 987654 y la etiqueta support_id, de modo que puedas rastrearlo en distintas plataformas.
braze.getUser().addAlias(ALIAS_NAME, ALIAS_LABEL);
Braze.getInstance(context).getCurrentUser().addAlias(ALIAS_NAME, ALIAS_LABEL);
Braze.getInstance(context).currentUser?.addAlias(ALIAS_NAME, ALIAS_LABEL)
Appboy.sharedInstance()?.user.addAlias(ALIAS_NAME, ALIAS_LABEL)
[[Appboy sharedInstance].user addAlias:ALIAS_NAME withLabel:ALIAS_LABEL];
{
"alias_name" : (required, string),
"alias_label" : (required, string)
}
Braze.addAlias("ALIAS_NAME", "ALIAS_LABEL");
Prácticas recomendadas de nomenclatura de ID
Te recomendamos que crees ID de usuario utilizando el estándar UUID (Universally Unique Identifier), es decir, cadenas de 128 bits aleatorias y bien distribuidas.
Como alternativa, puedes realizar un hash de un identificador único existente (como un nombre o una dirección de correo electrónico) para generar tus ID de usuario. Si lo haces, asegúrate de implementar la autenticación del SDK para evitar la suplantación de identidad de los usuarios.

No utilices un valor fácil de adivinar ni un número incremental para tu ID de usuario. Esto puede exponer a tu organización a ataques maliciosos o a la filtración de datos.
Para mayor seguridad, utiliza la autenticación del SDK.
Aunque es fundamental que nombres correctamente tus ID de usuario desde el principio, siempre puedes renombrarlos en el futuro utilizando el endpoint /users/external_ids/rename.
| Tipos de ID no recomendados | Ejemplo no recomendado |
|---|---|
| ID de perfil visible del usuario o nombre de usuario | JonDoe829525552 |
| Dirección de correo electrónico | [email protected] |
| ID de usuario con autoincremento | 123 |

Evita compartir detalles sobre cómo creas los ID de usuario, ya que esto podría exponer a tu organización a ataques maliciosos o a la filtración de datos.