Pular para o conteúdo principal

Visão geral

Carrinhos abandonados são uma das oportunidades de maior impacto para recuperar receita perdida. A maioria dos usuários que abandonam um carrinho ainda têm intenção de compra—eles só precisam de um lembrete oportuno. Este guia mostra como construir um Journey automatizado de carrinho abandonado no OneSignal que:
  • Detecta quando um usuário adiciona itens a um carrinho
  • Aguarda um curto período de inatividade
  • Envia um lembrete personalizado
  • Para o envio de mensagens imediatamente após a compra ou remoção do carrinho
Você pode implementar isso usando:
  • Eventos Personalizados (recomendado para a maioria das implementações)
  • Tags (mais simples, casos de uso limitados)
A escolha certa depende dos dados que você deseja mostrar na mensagem e de onde esses dados vêm.

O que você vai construir

Ao final deste guia, você terá:
  • Atividade do carrinho enviada ao OneSignal (via Tags ou Eventos Personalizados)
  • Um segmento que representa usuários com um carrinho ativo e abandonado
  • Um Journey que:
    • Inicia quando a atividade do carrinho é detectada
    • Aguarda a inatividade
    • Envia uma mensagem de carrinho abandonado
    • Sai imediatamente quando o carrinho é esvaziado ou comprado
  • Análises para medir o desempenho de mensagens e receita

Tags vs Eventos Personalizados

Tags e Custom Events são ambas formas de adicionar dados aos seus usuários. No entanto, existem algumas diferenças principais:
RecursoTagsCustom Events
Uso de dadosSegmentação e personalizaçãoDisparar Jornadas sem um Segmento, passos Wait Until, personalização diretamente dentro de Jornadas
Retenção de dadosVitalícia30+ dias (armazenamento vitalício está disponível)
Formato de dadosStrings ou números chave-valorJSON
Fonte de dadosOneSignal SDK, API ou integrações (limitado)OneSignal SDK, API ou integrações
Acesso aos dadosSegmentação e personalização de mensagemJornadas e personalização de Journey-message-template, Segmentação (Em breve)
A principal distinção entre Tags e Custom Events está em sua profundidade e casos de uso. Tags são propriedades de um usuário, como Nome, Status de Conta ou Localização. Eventos são coisas que o usuário fez, como Comprar um Item, Completar um Nível ou Convidar um Amigo. Tanto tags quanto eventos podem ser usados para segmentação e personalização. Na prática, você provavelmente usará ambos:
  • Tags para propriedades de usuário que são estáticas e não mudam frequentemente
  • Custom Events para cenários em tempo real, segmentação complexa e fluxos de trabalho de jornada mais sofisticados

Configuração

Passo 1. Decida quais dados do carrinho você deseja usar

Comece decidindo quais informações você deseja mostrar nas suas mensagens de carrinho abandonado. Opções comuns incluem:
  • Número de itens no carrinho
  • Nome do produto, imagem, preço e quantidade
  • Um deep link de volta ao carrinho do usuário
Sua escolha aqui determina se Tags ou Eventos Personalizados são apropriados.

Passo 2. Identifique sua fonte de dados

Onde a atividade do carrinho é rastreada determina como você envia dados ao OneSignal:
  • App ou site → Use o SDK Frontend do OneSignal
  • Backend ou banco de dados → Use a API REST do OneSignal
  • Plataforma de terceiros ou integração → Use Eventos Personalizados via integração

Passo 3. Envie atividade do carrinho ao OneSignal

Você deve enviar dois sinais (eventos ou tags):
  1. Carrinho atualizado - quando itens são adicionados
  2. Carrinho esvaziado - quando itens são removidos ou o checkout é concluído
Os nomes devem corresponder exatamente nas chamadas SDK/API, Segmentos, regras de entrada/saída do Journey e variáveis Liquid. Se cart_updated estiver escrito de forma diferente em qualquer lugar, os usuários não entrarão no segmento ou sairão do Journey corretamente.
Os SDKs Mobile e Web do OneSignal têm métodos para enviar Eventos Personalizados e Tags.
Método SDKDescrição
trackEventEnviar um Evento Personalizado (SDK Mobile, SDK Web)
addTagsAdicionar uma Tag (SDK Mobile, SDK Web)
removeTagsRemover uma Tag (SDK Mobile, SDK Web)
Exemplo de carrinho atualizado
// Adicionar os itens do carrinho às propriedades do evento
OneSignal.User.trackEvent("cart_updated", {
  product_name: "24 Pack of Acorns",
  product_image: "https://i.imgur.com/ssPCfbC.png",
  product_price: 12.99,
  product_quantity: 1,
  cart_url: "https://yourdomain.com/username/cart"
});
Exemplo de carrinho esvaziado
// Enviar o evento ao OneSignal
OneSignal.User.trackEvent("cart_emptied");
Se você não rastrear eventos de carrinho esvaziado, os usuários podem continuar recebendo mensagens de carrinho abandonado mesmo após a compra.

Passo 4. Crie modelos de mensagem de carrinho abandonado

Crie um modelo de mensagem que referencia dados do carrinho dinamicamente. Para mais detalhes sobre os conceitos usados nesta seção, veja:
Referencie propriedades do evento usando formato de sintaxe liquid:
{{journey.event.name.properties.property_name | default: "fallback_value"}}
  • Título: Oi, Gatinho Legal 😸!
  • Mensagem: Você deixou {{journey.event.cart_updated.properties.product_name | default: "itens"}} no seu carrinho.
  • Imagem: {{journey.event.cart_updated.properties.product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
  • URL de Lançamento: {{journey.event.cart_updated.properties.cart_url | default: "https://yourdomain.com/cart"}}
A imagem não será exibida se product_image não for uma URL de imagem direta e publicamente acessível.Se seu product_image for o nome de um arquivo de imagem disponível online, você pode referenciar a imagem usando o seguinte formato: https://yourdomain.com/images/{{journey.event.cart_updated.properties.product_image | default: "stock_image"}}.png
Modelo push de carrinho abandonado mostrando uma imagem de produto e nome de produto personalizado
Precisa de exemplos de e-mail, ajuda ou mais inspiração?Veja nosso tutorial de conteúdo dinâmico de carrinho abandonado para mais exemplos.

Passo 5. Crie o Segmento de carrinho abandonado

O Segmento determinará quem pode entrar no Journey. Veja Segmentos para mais detalhes.
Selecione o filtro de Evento Personalizado para rastrear usuários onde o evento cart_updated foi realizado pelo menos 1 vez nos últimos 24 horas
Segmento de Carrinho Abandonado com Filtro de Evento Personalizado tendo sido realizado pelo menos uma vez nas últimas 24 horas
Agora podemos rastrear usuários que atualizam seu carrinho pelo menos uma vez a cada 24 horas.Os usuários serão automaticamente removidos do segmento após 24 horas terem passado desde que atualizaram seu carrinho pela última vez.

Passo 6. Crie o Journey de carrinho abandonado

Crie um Journey para reagir à entrada do Segmento. Para mais detalhes sobre os conceitos usados nesta seção, veja:
Tela de criação do novo Journey de Carrinho Abandonado

Configurações do Journey

Regras de Entrada:
  • Selecione Segmento de Público
  • Incluir Segmento: Carrinho Abandonado - cart_updated
Regras de entrada do Journey de Carrinho Abandonado
Regras de Saída:
  • Selecione Atender a uma determinada condição
  • Marque Sair quando a condição do evento personalizado ocorrer
  • Nome do Evento Personalizado: cart_emptied
Regras de Saída de Evento Personalizado do Journey de Carrinho Abandonado
Os usuários sairão do Journey quando:
  • O evento cart_emptied (do passo 3) for realizado.
  • Eles completarem o Journey.
Regras de Reentrada:
  • Selecione Sim, após um determinado período de tempo
  • Defina o tempo de reentrada para 1 dia
Regras de Reentrada do Journey de Carrinho Abandonado
Se você seguiu este guia completamente até agora, então os usuários irão:
  1. Entrar no Journey quando atualizarem seu carrinho
  2. Sair do Journey quando esvaziarem seu carrinho ou completarem o Journey.
  3. Estar elegíveis para reentrar no Journey após 1 dia ter passado desde que saíram pela última vez. Eles devem estar no segmento para reentrar no Journey.
Salve as Configurações do Journey.

Passos do Journey

Os usuários entrarão no Journey quando corresponderem ao Segmento. Isso normalmente acontece dentro de alguns minutos após o evento/tag ser recebido. Os usuários fluirão pelo Journey passo a passo até chegarem ao fim ou uma regra de saída ser atendida. Para um Journey básico de carrinho abandonado, queremos fazer 2 coisas:
  1. Dar ao usuário tempo suficiente para esvaziar seu carrinho (fazer uma compra ou esvaziar seu carrinho manualmente)
  2. Se eles não esvaziarem seu carrinho, enviar uma mensagem lembrando-os sobre os itens em seu carrinho
Alcance isso primeiro adicionando um passo de Aguardar ao Journey.
  • Defina o tempo de espera pelo tempo que você desejar. Recomendamos defini-lo para 1 hora para que você possa enviar mensagens a eles enquanto ainda têm a intenção de comprar.
Adicione um passo de Mensagem.
  • Selecione o modelo de Notificação Push de Carrinho Abandonado que você criou no Passo 4.
Passos Básicos do Journey de Carrinho Abandonado
O Journey básico de Carrinho Abandonado está agora configurado.Quando um usuário entrar no Journey, ele aguardará por 1 hora. Se não saírem do Journey, receberão a notificação push de carrinho abandonado.

Configuração Avançada do Journey

Usando o conhecimento que você ganhou deste guia, agora pode estender o Journey para enviar mais mensagens ao longo do tempo.

Sequência de Mensagens

Uma sequência de tempo de melhores práticas para uma cadência muito comum de alto desempenho é:
  1. Enviar a primeira mensagem após 1 hora (completado neste guia).
  2. Adicionar outro passo de Aguardar por 1 dia e enviar uma segunda mensagem (~24 horas desde que atualizaram seu carrinho).
  3. Adicionar outro passo de Aguardar por 2 dias e enviar uma terceira mensagem (~72 horas desde que atualizaram seu carrinho).
Tipos de Mensagem e Conteúdo: Dependendo de quais canais você configurar com o OneSignal, você alcançará melhores resultados usando uma abordagem omnichannel.
  1. Este guia mostra como enviar uma mensagem de notificação push após a primeira hora. Isso é usado como um lembrete útil para tentar capturar a venda enquanto o usuário ainda pode estar online.
  2. Considere usar tanto push quanto e-mail para sua segunda mensagem. Use esta segunda mensagem para destacar benefícios e prova social com leve urgência para encorajá-los a comprar.
  3. Para a mensagem final da sequência, use um e-mail ou talvez um SMS (dependendo do caso de uso) como uma “última chamada”. Considere usar um código de desconto ou outro incentivo para encorajá-los a comprar.

Mensagens de Contingência

Os Journeys do OneSignal fornecem lógica de ramificação Aguardar Até que você pode usar para verificar se uma mensagem foi confirmada como entregue, clicada ou aberta e, se não realizada dentro de um determinado período de tempo, enviar uma mensagem de contingência. Isso é extremamente útil para usuários que podem ter cancelado a inscrição de um canal de mensagem específico. Mais detalhes sobre como configurar mensagens de contingência podem ser encontrados em nosso guia de Mensagens de Contingência.

Rastrear desempenho

Análises do Journey podem ser usadas para rastrear como o Journey como um todo está tendo desempenho. Você também pode rastrear o desempenho de cada mensagem usando análises de Modelo.

Rastrear receita com Outcomes

Para rastrear receita deste Journey, você pode usar Outcomes Personalizados. Quando uma compra é feita, você pode enviar o evento como um “Outcome Personalizado” para rastrear a receita associada à mensagem específica enviada. Outcomes Personalizados podem ser enviados via SDK Mobile ou SDK Web.
Exemplo: Enviar outcome de compra via SDK frontend
// Exemplo: capturar preço total e contagem de itens no checkout
const checkoutPriceTotal = document.querySelector(".checkout-price-total").innerText;
const checkoutItemsTotal = document.querySelector(".checkout-items-total").innerText;

function updateOSOnCartPurchase(checkoutPriceTotal, checkoutItemsTotal) {
  const purchasePriceTotal = parseFloat(checkoutPriceTotal);
  const purchasedItemCount = parseInt(checkoutItemsTotal);

  OneSignalDeferred.push(function (OneSignal) {
    OneSignal.Session.sendOutcome("Purchase", purchasePriceTotal);
    OneSignal.Session.sendOutcome("Purchased Item Count", purchasedItemCount);
  });
}

const submitPurchaseButton = document.querySelector(".submit-payment");
if (submitPurchaseButton) {
  submitPurchaseButton.addEventListener("click", () => {
    updateOSOnCartPurchase(checkoutPriceTotal, checkoutItemsTotal);
  });
}
Outcomes podem atribuir receita a mensagens que os usuários clicaram ou foram influenciados dentro de uma janela de atribuição definida.
Você implementou com sucesso um Journey de carrinho abandonado. Quando estiver pronto para começar a enviar mensagens, selecione Ativar.
Precisa de ajuda?Converse com nossa equipe de Suporte ou envie email para [email protected]Por favor inclua:
  • Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
  • Seu OneSignal App ID
  • O External ID ou Subscription ID se aplicável
  • A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
  • Quaisquer logs ou mensagens de erro relevantes
Estamos felizes em ajudar!