Visão geral
No OneSignal, um User representa um indivíduo com uma ou mais Subscriptions através dos seus canais de mensagens (push móvel, push web, email e SMS).- Cada User pode ter até 20 Subscriptions.
- Cada User recebe automaticamente um OneSignal ID (UUID v4).
- Users começam como anônimos até que você atribua a eles um External ID. Atribuir um External ID vincula Subscriptions juntas e pode substituir o OneSignal ID existente se o usuário já existir no seu app.
- Users e Subscriptions têm propriedades diferentes. Por exemplo, Tags são armazenadas no nível de User, enquanto subscription status (opted-in/out) pertence à Subscription.
- Quando o contexto de User muda — por exemplo, fazendo login (anônimo → identificado) ou trocando de conta (UserA → UserB) — a Subscription é reatribuída do User antigo para o novo.
- A Subscription agora herdará as propriedades do novo User.
- Propriedades vinculadas ao User anterior (como Tags, idioma ou External ID) não se aplicarão mais.
- UserA tem Tag
premium=true - UserB tem Tag
premium=false - Se uma Subscription move de UserA para UserB, ela não estará mais associada com
premium=truee em vez disso refletirá as propriedades de UserB.
Usuários anônimos vs. identificados
- Usuário anônimo: Não tem External ID → cada Subscription é separada com seu próprio OneSignal ID (tratada como Users separados).
- Usuário identificado: Tem um External ID → OneSignal faz merge de todas as Subscriptions sob um único OneSignal ID.
- Subscription Web push →
OneSignal_ID_1 - Subscription Mobile →
OneSignal_ID_2 - Subscription Email →
OneSignal_ID_3 - Subscription SMS →
OneSignal_ID_4 - Resultado: Quatro Users (cada Subscription é um User separado com propriedades únicas)
- Subscription Web push com External ID
External_ID_A→OneSignal_ID_1 - Subscription Mobile com mesmo
External_ID_A→ merged intoOneSignal_ID_1 - Subscription Email com mesmo
External_ID_A→ merged intoOneSignal_ID_1 - Subscription SMS com mesmo
External_ID_A→ merged intoOneSignal_ID_1 - Resultado: Um User com quatro Subscriptions (todas vinculadas ao mesmo User)
Sempre atribua um External ID. Isso garante que Subscriptions através de canais e dispositivos se unifiquem sob um único perfil de User e previne duplicação.
- Use identificadores estáveis e não genéricos (ex: seu ID de usuário interno ou endereço de email).
- Chame
OneSignal.logincedo no ciclo de vida do seu app.
Propriedades de user
| Property | Description |
|---|---|
| Channel | As Subscriptions que o usuário tem, como Push, Email ou SMS. |
| OneSignal ID | Um UUID v4 auto-gerado pelo OneSignal para cada usuário. Pode mudar ao atribuir um External ID. |
| Last session | O timestamp mais recente de interação com o app. |
| First session | Quando o usuário foi inicialmente criado no OneSignal. |
| Email da Subscription Email mais recente. | |
| Phone | Número de telefone da Subscription SMS mais recente. |
| IP Address | Da Subscription atualizada mais recentemente. |
| External ID | Um identificador único que você atribui para unificar o usuário com seu sistema. |
| Tags | Metadados personalizados (ex: preferências, comportamento). Veja Data Tags. |
| Location | Coordenadas GPS de subscriptions móveis (se rastreamento de localização estiver habilitado). Veja Location-Triggered Notifications. |
| Timezone | timezone_id em formato IANA TZ, definido pelo SDK. Pode ser atualizado via API. |
| Language | Idioma do usuário em formato ISO 639-1. Pode ser atualizado via API ou setLanguage. |
| Aliases | Pares chave-valor como mixpanel_id : 1234. Veja Aliases. |
OneSignal ID
O OneSignal ID é um UUID v4 interno gerado para representar unicamente um usuário. É criado automaticamente em cenários como:- Primeira abertura do app móvel (ou após reinstalação)
- Nova Subscription de web push
- Criação de Users/Subscriptions via Create user ou CSV Import
- Limpeza de cache do navegador e retorno ao site
- Logout com
OneSignal.logout
OneSignal.login, qualquer OneSignal ID existente vinculado à Subscription atual é substituído pelo associado àquele External ID. Subscriptions através de plataformas (Push, Email, SMS) serão mescladas sob o mesmo OneSignal ID se compartilharem o mesmo External ID.
Reatribuição e comportamento
Se um usuário reinstala o app ou limpa o cache, um novo OneSignal ID e Subscription são criados. No entanto, chamarOneSignal.login vinculará a nova Subscription de volta ao perfil de usuário original.
Subscriptions adicionadas via OneSignal.User.addEmail ou addSms herdarão o OneSignal ID atual.
Referências do SDK:
External ID
O External ID é uma string única que você atribui a usuários para rastreá-los através de dispositivos e subscriptions.
Use o External ID para rastrear o usuário através de suas subscriptions.
OneSignal.login- Recomendado veja Mobile SDK e Web SDK- API Create user
- API Transfer subscription
OneSignal.logout(para remover)
IDs restritos
Não use valores placeholder ou valores temporários para External IDs. Os seguintes valores não podem ser usados para External IDs:NANULL-101all00000000-0000-0000-0000-000000000000
Múltiplos usuários no mesmo dispositivo
Quando múltiplos usuários compartilham um dispositivo, cada novo login deve acionar uma chamada paraOneSignal.login com um External ID diferente. Isso reatribui o OneSignal ID e Subscription ao novo usuário.
Para lidar com logout, você pode fazer o seguinte para remover o contexto do usuário:
- Chame
OneSignal.logout()→ limpa External ID, remove propriedades de usuário anteriores (Tags, Aliases, etc.) e atribui OneSignal ID anônimo. - Opcionalmente desabilite notificações usando
optOut, e reabilite comoptInao fazer login novamente.
Usuários ativos mensais (MAU)
MAU é usado para cobrança e é definido como uma Subscription móvel que tem uma última sessão dentro do período de cobrança de 30 dias. Isso inclui:- Usuários que abrem seu app pela primeira vez, criando uma Subscription móvel via nosso SDK
- Usuários que reinstalam o app e o abrem novamente, criando outra Subscription móvel via nosso SDK
- Usuários que são importados via nossa API
Exemplo de cobrança MAU
Se um User tem estas Subscriptions:- iOS mobile (ativo nos últimos 30 dias)
- Android mobile (ativo nos últimos 30 dias)
- Web push
- SMS
Reduzindo MAUs (ex: casos de uso de paywall)
Você pode atrasar a inicialização do SDK e criação de Subscription usando os métodos de privacidade do mobile SDK.- Chame
setConsentRequired()antes de inicializar o SDK – isso previne auto-criação de uma Subscription - Chame
setConsentGiven()quando estiver pronto para criar uma Subscription para o usuário