Pular para o conteúdo principal

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.
Exemplo:
  • 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=true e 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.
Exemplo: Usuário anônimo
  • 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)
Exemplo: Usuário identificado
  • Subscription Web push com External ID External_ID_AOneSignal_ID_1
  • Subscription Mobile com mesmo External_ID_A → merged into OneSignal_ID_1
  • Subscription Email com mesmo External_ID_A → merged into OneSignal_ID_1
  • Subscription SMS com mesmo External_ID_A → merged into OneSignal_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.login cedo no ciclo de vida do seu app.

Propriedades de user

PropertyDescription
ChannelAs Subscriptions que o usuário tem, como Push, Email ou SMS.
OneSignal IDUm UUID v4 auto-gerado pelo OneSignal para cada usuário. Pode mudar ao atribuir um External ID.
Last sessionO timestamp mais recente de interação com o app.
First sessionQuando o usuário foi inicialmente criado no OneSignal.
EmailEmail da Subscription Email mais recente.
PhoneNúmero de telefone da Subscription SMS mais recente.
IP AddressDa Subscription atualizada mais recentemente.
External IDUm identificador único que você atribui para unificar o usuário com seu sistema.
TagsMetadados personalizados (ex: preferências, comportamento). Veja Data Tags.
LocationCoordenadas GPS de subscriptions móveis (se rastreamento de localização estiver habilitado). Veja Location-Triggered Notifications.
Timezonetimezone_id em formato IANA TZ, definido pelo SDK. Pode ser atualizado via API.
LanguageIdioma do usuário em formato ISO 639-1. Pode ser atualizado via API ou setLanguage.
AliasesPares 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
Uma vez que um External ID é usado via 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, chamar OneSignal.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.

Você pode definir ou remover o External ID via:

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:
  • NA
  • NULL
  • -1
  • 0
  • 1
  • all
  • 00000000-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 para OneSignal.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 com optIn ao 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
  • Email
  • SMS
Apenas as Subscriptions móveis iOS e Android contam, resultando em 2 MAUs. O status da subscription não importa para cobrança MAU.

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.
  1. Chame setConsentRequired() antes de inicializar o SDK – isso previne auto-criação de uma Subscription
  2. Chame setConsentGiven() quando estiver pronto para criar uma Subscription para o usuário