Definir IDs de usuário
Aprenda como definir IDs de usuário através do SDK da Braze. Estes são identificadores únicos que permitem rastrear usuários em dispositivos e plataformas, importar seus dados através da API de dados de usuários e enviar mensagens direcionadas através da API de envio de mensagens. Se você não atribuir um ID único a um usuário, a Braze atribuirá a ele um ID anônimo; no entanto, você não poderá usar esses recursos até que o faça.

Para wrapper SDKs não listados, use o método nativo relevante do Android ou Swift.
Sobre usuários anônimos
Após integrar o SDK da Braze, os usuários que iniciarem seu app pela primeira vez serão considerados “anônimos” até que você chame o método changeUser e atribua a eles um external_id. Uma vez atribuído, não é possível torná-los anônimos novamente. No entanto, se o usuário desinstalar e reinstalar o app, ele se tornará anônimo novamente até que changeUser seja chamado.
Se um usuário previamente identificado iniciar uma sessão em um novo dispositivo, a Braze fará o merge de campos específicos do perfil anônimo que ainda não existam no perfil identificado depois que você chamar changeUser nesse dispositivo usando o external_id dele. Nem todos os dados são transferidos — apenas os campos que ainda não estão preenchidos no perfil identificado são mesclados. Para ver a lista completa dos campos transferidos, consulte comportamento de merge.
Prevenindo o rastreamento de usuários anônimos
Se o seu caso de uso exige que nenhum dado seja coletado antes de um usuário ser identificado, você pode adiar a inicialização do SDK da Braze até que o usuário faça login e um external_id esteja disponível. Defina um sinalizador no seu código que mude para true quando o usuário fizer login, e inicialize o SDK somente quando esse sinalizador estiver definido.

Adie a inicialização apenas na primeira vez que um usuário baixar seu app (antes de um external_id ser definido). Se você impedir que o SDK seja inicializado toda vez que um usuário fizer logout ou iniciar uma nova sessão, isso interferirá no pré-carregamento de ativos de mensagens no app e cartões de conteúdo, o que pode causar erros de entregabilidade nessas Campaigns.
Definindo um ID de usuário
Para definir um ID de usuário, chame o método changeUser() depois que o usuário fizer o registro inicial. Os IDs devem ser exclusivos e seguir nossas práticas recomendadas de nomenclatura.
Se você estiver fazendo hash de um identificador exclusivo, certifique-se de normalizar a entrada da sua função de hash. Por exemplo, ao fazer hash de um endereço de e-mail, remova quaisquer espaços iniciais ou finais e considere a localização.
Para uma implementação padrão do Web SDK, você pode usar o seguinte método:
braze.changeUser(YOUR_USER_ID_STRING);
Se preferir usar o Google Tag Manager, você pode usar o tipo de tag Change User para chamar o método changeUser. Use-o sempre que um usuário fizer o registro ou for identificado de outra forma com seu identificador exclusivo external_id.
Certifique-se de inserir o ID exclusivo do usuário atual no campo External User ID, normalmente preenchido usando uma variável de camada de dados enviada pelo seu website.

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 enfileira a troca de usuário e retorna imediatamente na thread de chamada. Quaisquer setters de atributos chamados em braze.user depois disso são automaticamente serializados atrás das operações iniciadas por changeUser. A leitura de braze.user.id bloqueia a thread de chamada até que a troca de usuário seja totalmente concluída. Para contextos na thread principal ou sensíveis à latência, use as alternativas não 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");
Como o changeUser() funciona
Quando você chama changeUser(), os seguintes comportamentos se aplicam:
- Chamar
changeUser()com o mesmo ID de usuário que já está definido não tem efeito na contagem de sessões. - Chamar
changeUser()com um ID de usuário diferente encerra automaticamente a sessão atual e inicia uma nova. - Quando um usuário anônimo chama
changeUser()com um novo ID de usuário (que ainda não existe na Braze), os dados do perfil anônimo são mesclados no novo perfil identificado. - Quando um usuário anônimo chama
changeUser()com um ID de usuário existente, os dados do perfil anônimo não são mesclados no perfil identificado.

Chamar changeUser() aciona um flush de dados como parte do encerramento da sessão do usuário atual. O SDK faz automaticamente o flush de quaisquer dados pendentes do usuário anterior antes de trocar para o novo usuário, então você não precisa solicitar manualmente um flush de dados antes de chamar changeUser().

Não atribua um único ID de usuário compartilhado (por exemplo, um ID externo padrão estático) nem chame changeUser() quando um usuário fizer logout. Fazer isso impede que você reengaje usuários que fizeram login anteriormente em dispositivos compartilhados e faz com que todos os dados sejam registrados em um único ID de usuário, o que pode causar comportamentos inesperados em outros recursos. Em vez disso, mantenha o rastreamento de todos os IDs de usuário separadamente e garanta que o processo de logout do seu app permita voltar para um usuário que fez login anteriormente. Quando uma nova sessão é iniciada, a Braze atualiza automaticamente os dados do perfil recém-ativo.
Gerenciando notificações por push após o logout
Quando um usuário faz logout do seu app, chame o método logout() ou unregisterPush() do SDK da Braze como parte do seu fluxo de logout. Quando qualquer uma das chamadas for bem-sucedida, a Braze remove imediatamente o token por push do dispositivo do perfil de usuário atual, de modo que a Braze não direcione mais aquele dispositivo para futuras Campaigns de push.
- Para um logout completo, chame
logout()para cancelar o registro de push e, em caso de sucesso, limpar os dados locais do SDK e desativá-lo. Umlogout()bem-sucedido já chamawipeData()automaticamente. - Para interromper apenas o push, chame
unregisterPush()para remover o token por push do perfil de usuário e limpar o token armazenado localmente sem apagar outros dados do SDK.
Para detalhes de implementação, tratamento de erros e etapas de re-registro, consulte Gerenciar coleta de dados para a sua plataforma:

Se uma notificação por push já estiver em trânsito quando logout() ou unregisterPush() for concluído com sucesso, essa notificação ainda poderá ser entregue ao dispositivo.
Aliases de usuário
Como funcionam
Embora usuários anônimos não tenham external_ids, você pode atribuir a eles um alias de usuário. Você deve atribuir um alias de usuário quando quiser adicionar outros identificadores ao usuário, mas não souber qual é o external_id dele (por exemplo, ele não está logado). Com aliases de usuário, você também pode:
- Usar a API da Braze para registrar eventos e atributos associados a usuários anônimos
- Usar o filtro de segmentação ID de Usuário Externo está em branco para direcionar usuários anônimos no seu envio de mensagens
Definindo um alias de usuário
Um alias de usuário consiste em duas partes: um nome e um rótulo. O nome se refere ao próprio identificador, enquanto o rótulo se refere ao tipo de identificador ao qual ele pertence. Por exemplo, se você tem um usuário em uma plataforma de suporte ao cliente de terceiros com o ID externo 987654, é possível atribuir a ele um alias na Braze com o nome 987654 e o rótulo support_id, para que você possa rastreá-lo entre 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");
Melhores práticas de nomenclatura de IDs
Recomendamos que você crie IDs de usuário usando o padrão Identificador Único Universal (UUID), o que significa que são strings de 128 bits aleatórias e bem distribuídas.
Alternativamente, você pode fazer hash de um identificador único existente (como um nome ou endereço de e-mail) para gerar seus IDs de usuário. Se fizer isso, certifique-se de implementar a autenticação do SDK para evitar a simulação de usuários.

Não use um valor previsível ou um número incremental para seu ID de usuário. Isso pode expor sua organização a ataques maliciosos ou exfiltração de dados.
Para maior segurança, use a autenticação do SDK.
Embora seja essencial que você nomeie corretamente seus IDs de usuário desde o início, você sempre pode renomeá-los no futuro usando o endpoint /users/external_ids/rename.
| Tipos de ID não recomendados | Exemplo não recomendado |
|---|---|
| ID de perfil visível do usuário ou nome de usuário | JonDoe829525552 |
| Endereço de e-mail | [email protected] |
| ID de usuário auto-incremental | 123 |

Evite compartilhar detalhes sobre como você cria IDs de usuário, pois isso pode expor sua organização a ataques maliciosos ou exfiltração de dados.