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
External IDUm identificador único que você atribui para unificar o usuário com seu sistema.
OneSignal IDUm UUID v4 auto-gerado pelo OneSignal para cada usuário. Pode mudar ao atribuir um External ID.
AliasesPares chave-valor como mixpanel_id : 1234. Veja Aliases.
ChannelAs Subscriptions que o usuário tem, como Push, Email ou SMS.
CountryCódigo de país no formato ISO 3166-1 Alpha-2.
EmailEmail da Subscription Email mais recente.
First sessionQuando o usuário foi inicialmente criado no OneSignal.
IP AddressDa Subscription atualizada mais recentemente.
LanguageIdioma do usuário em formato ISO 639-1. Pode ser atualizado via API ou setLanguage.
Last sessionO timestamp mais recente de interação com o app.
LocationCoordenadas GPS de subscriptions móveis (se rastreamento de localização estiver habilitado). Veja Location-Triggered Notifications.
PhoneNúmero de telefone da Subscription SMS mais recente.
TagsMetadados personalizados (ex: preferências, comportamento). Veja Tags.
Test User nameUm rótulo atribuído ao marcar um User como usuário de teste. Definido via dashboard ou a propriedade test_user_name na API. Veja Test Subscriptions.
Timezonetimezone_id em formato IANA TZ, definido pelo SDK. Pode ser atualizado via API.

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.
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