Pular para o conteúdo principal
OneSignal Custom Outcomes permitem que você rastreie ações significativas do usuário resultantes de notificações push e mensagens in-app. Essas ações—como compras, inscrições ou eventos do aplicativo—podem ser rastreadas com métricas de contagem, soma e únicas, dando-lhe insights sobre o impacto de suas campanhas de mensagens.
Custom Outcomes estão disponíveis nos planos Professional e Enterprise. Saiba mais sobre nossos preços.

Tipos de outcome e métodos SDK

Você pode acionar um Outcome adicionando uma linha de código quando um usuário completa uma ação específica (por exemplo, toca em “Adicionar ao Carrinho” ou “Upgrade”).
Tipo de OutcomeMétodo SDK MóvelMétodo SDK WebDescrição
Standard CountaddOutcomesendOutcomeAumenta a contagem em 1 toda vez que é chamado. Sem rastreamento de valor.
Value (Sum)addOutcomeWithValuesendOutcomeAumenta a contagem em 1 e a soma pelo valor numérico especificado. Útil para rastreamento de receita.
Unique CountaddUniqueOutcomesendUniqueOutcomeAumenta a contagem em 1, apenas uma vez por janela de atribuição. Melhor para ações binárias de usuário como “Sessão de Swipe Iniciada” ou “CTA Tocado”.
Eventos de outcome são armazenados em cache localmente se offline e tentados novamente na próxima inicialização do OneSignal.

Count vs sum

Outcomes suportam duas métricas principais:
MétricaDescrição
CountNúmero de vezes que o evento de outcome foi acionado
SumTotal de todos os valores numéricos enviados com o outcome (se aplicável)
Outcomes com valores sempre arredondam para o número inteiro mais próximo. Exemplo: Para rastrear receita de uma compra:
// Botão "Purchase" pressionado no aplicativo
   ...
   OneSignal.Session.addOutcomeWithValue("Purchase", 18.76);

Atribuição de outcome

Cada Outcome é rastreado com um tipo de atribuição que explica como foi gerado:
  • direct — o Outcome ocorreu quando o usuário interagiu diretamente com a mensagem. Alguns Outcomes, como os__click e os__confirmed_delivery, têm apenas atribuição direta porque acontecem apenas como resultado da mensagem.
  • influenced — o Outcome ocorreu dentro da janela de tempo de atribuição após a mensagem ser enviada, mas o usuário nunca interagiu diretamente com a mensagem.
  • unattributed — o Outcome ocorreu sem uma relação direta ou influenciada com a mensagem.
  • total (padrão) — a soma de direct + influenced + unattributed.

Casos de uso

Site de e-commerce

Lojas online podem usar notificações push do OneSignal para levar usuários de volta a carrinhos abandonados, vendas relâmpago, promoções e mais. Com Outcomes, proprietários de lojas agora podem facilmente correlacionar notificações push a ações do usuário como adicionar ao carrinho, compra ou cupom resgatado. Para compras, outcomes vão ainda mais além do que simples contagens e podem rastrear valores de compra. Isso permite que proprietários de sites vejam facilmente a soma total da receita gerada por pushes individuais.
OneSignal.Session.addOutcomeWithValue("Purchase", 18.76);

Aplicativos sociais

Aplicativos sociais podem querer reengajar usuários usando um push para notificá-los de um match ou solicitação de amizade, um novo like ou simplesmente para fazê-los deslizar. Usando Outcomes, um desenvolvedor pode ver se uma notificação push levou a um evento de usuário como iniciar um chat com um match ou uma sessão de 34 segundos de swipe. Esses dados podem então ser usados para refinar estratégias de notificação e segmentação. No exemplo a seguir, queremos rastrear se um usuário começou a deslizar perfis de namoro após um push. Como não queremos contar cada swipe como uma conversão, usamos sendUniqueOutcome Este outcome “Swipe” só será atribuído uma vez ao push que o acionou. Exemplos:
  • Se o usuário clicou no push e realizou a ação que chamou este método, será uma atribuição direta.
  • Se o usuário recebeu o push mas não clicou nele e realizou a ação dentro da janela de atribuição, será uma atribuição influenciada. Mesmo se mais tarde clicar no mesmo push e realizar a ação novamente, ainda será apenas influenciada.
  • Se o usuário executar o método fora de uma janela de atribuição, será não atribuído uma vez por sessão.
OneSignal.Session.addUniqueOutcome("Swipe");

Pushes clicados por idioma

Dentro dos métodos listener de Notificação Aberta/Clicada do nosso SDK, você pode configurar Outcomes para incrementar quantos dispositivos clicaram em um push por seu idioma definido. Isso exigirá algum código nativo para detectar o idioma do dispositivo, mas você pode então passar esse idioma para o Outcome assim:
  public void notificationOpened(OSNotificationOpenResult result) {
    String languageCode = Locale.getDefault().getLanguage();
    System.out.println("languageCode " + languageCode);
    OneSignal.Session.addOutcome(languageCode);
  }

Pushes clicados por sistema operacional e navegador

Dentro dos métodos listener de Notificação Aberta/Clicada do nosso SDK, você pode configurar Outcomes para incrementar quais plataformas especificamente foram clicadas. Isso é genérico para iOS e Android como você pode definir OneSignal.addOutcome("iOS") ou OneSignal.addOutcome("Android") no manipulador de clique do seu aplicativo móvel, mas se você quiser rastrear plataformas de push web também, você pode usar isto por exemplo:
// Exemplo retirado do Stackoverflow: https://stackoverflow.com/questions/11219582/how-to-detect-my-browser-version-and-operating-system-using-javascript
var os = "Unknown OS";
if (navigator.userAgent.indexOf("Win") != -1) os = "Windows";
if (navigator.userAgent.indexOf("Mac") != -1) os = "Macintosh";
if (navigator.userAgent.indexOf("Linux") != -1) os = "Linux";
if (navigator.userAgent.indexOf("Android") != -1) os = "Android";
if (navigator.userAgent.indexOf("like Mac") != -1) os = "iOS";
console.log('Your os: ' + os);

var browserType = "Unknown Browser Type";
if (navigator.userAgent.indexOf("Safari") != -1) browserType = "Safari";
if (navigator.userAgent.indexOf("Chrome") != -1) browserType = "Chrome";
if (navigator.userAgent.indexOf("OPR") != -1) browserType = "Opera";
if (navigator.userAgent.indexOf("Firefox") != -1) browserType = "Firefox";
console.log('Your Browser: ' + browserType);

OneSignal.push(["addListenerForNotificationOpened", function(data) {
OneSignal.Session.sendOutcome(os);
OneSignal.Session.sendOutcome(browserType);
}]);


Desabilitar rastreamento de Outcome

Desabilite Outcomes específicos de serem rastreados no painel Settings > Push & In-App > Outcomes Tracking. A partir daqui, você pode clicar no botão Stop Tracking para selecionar um outcome para parar de rastrear no painel. Uma vez que você parou de rastrear outcomes, você os verá listados aqui e pode começar a rastreá-los novamente clicando no link Start Tracking.

FAQ

Por quanto tempo os dados de Outcome são armazenados?

  • Notificações enviadas do painel mantêm seus dados de Outcome para sempre.
  • Notificações enviadas via API têm uma retenção de 30 dias de outcomes antes de serem purgados.

Quais canais suportam custom outcomes?

Atualmente custom outcomes podem ser adicionados a ações em Push e Mensagens In-App apenas. Outcomes enviados através de mensagens In-App aparecerão como “Unattributed” e definirão uma tag no dispositivo no formato: nome do outcome : true.

Posso exportar Outcomes?

Você pode exportar um conjunto de outcomes ou todos os outcomes como um CSV. Também fornecemos acesso à API para outcomes para uma notificação individual ou para todas as notificações.

Posso armazenar strings como valores em Custom Outcomes?

Isso não é suportado.

O que acontece se um dispositivo estiver offline?

Dados de outcomes disparados são enfileirados para serem enviados ao OneSignal uma vez que o dispositivo esteja online novamente.

Se um usuário coloca o aplicativo em segundo plano após clicar em uma notificação e depois volta a ele, disparando um Outcome, ele é contado como direto ou influenciado?

Enquanto o usuário retornar ao aplicativo dentro de 30 segundos após colocá-lo em segundo plano, a sessão ainda será considerada a sessão original e obterá atribuição direta.

Quando a nova Janela de Atribuição entra em vigor?

Se você alterar a janela de atribuição de 24 horas para 1 hora, por exemplo, então a janela de 1 hora entrará em vigor por dispositivo uma vez que cada dispositivo abra o aplicativo de uma nova sessão. Esta nova sessão é criada após 30 segundos de estar fora do aplicativo.

Por que as sessões não correspondem com outras análises?

O OneSignal só conta uma sessão após o usuário ter saído do aplicativo por mais de 30 segundos. Se você fechar o aplicativo ou site e retornar a ele dentro de 30 segundos, não será uma nova sessão. Por exemplo, as análises da Apple rastreiam a sessão como o número de vezes que o aplicativo foi usado por pelo menos dois segundos. Se o aplicativo está em segundo plano e é usado novamente depois, isso conta como outra sessão.