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 abandona um carrinho ainda pretende comprar — eles só precisam de um lembrete oportuno. Este guia mostra como construir uma Journey automatizada de carrinho abandonado no OneSignal que:
  • Detecta atividade no carrinho
  • Aguarda por um curto período de inatividade
  • Envia um lembrete personalizado
  • Para de enviar mensagens imediatamente após a compra ou remoção do carrinho
Você pode implementar isso usando:
  • Custom Events (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 Custom Events)
  • Um sinal de abandono claro, definido por código
  • Templates de mensagem que personalizam dados do carrinho
  • Uma Journey que:
    • Inicia quando um sinal de abandono é recebido
    • Aguarda antes de enviar
    • Envia uma mensagem de carrinho abandonado
    • Sai imediatamente quando o carrinho é esvaziado ou comprado
  • Analytics para medir o desempenho de mensagens e receita

Escolha seu método de rastreamento

Você pode rastrear a atividade do carrinho usando Custom Events ou Tags.
  • Use Custom Events se você:
    • Consegue detectar abandono após um período de inatividade
    • Deseja dados ricos do carrinho (itens, imagens, preços)
    • Está confortável em garantir que os eventos disparem uma vez por abandono
  • Use Tags se você:
    • Deseja segurança baseada em estado por padrão
    • Precisa apenas de dados simples do carrinho
    • Prefere entrada e saída controladas por segmento
Este guia mostra ambas as abordagens. Custom Events oferecem mais flexibilidade, mas exigem mais cuidado.

Como carrinhos abandonados são modelados

O OneSignal não determina automaticamente quando um carrinho é abandonado.Você decide quando um carrinho se torna abandonado no seu próprio código ou sistema, e então notifica o OneSignal.
O que cart_abandoned significa O evento cart_abandoned deve representar uma transição de estado - O carrinho estava ativo → o usuário parou de interagir → o carrinho agora é considerado abandonado. Este evento deve ser enviado:
  • Após um período significativo de inatividade (ex.: 1 hora)
  • Somente se o carrinho ainda contiver itens
Não envie cart_abandoned a cada atualização do carrinho.Enviar este evento repetidamente fará com que os usuários reentrem na Journey múltiplas vezes e pode gerar spam.

Como as Journeys usam sinais de abandono

Uma vez que o OneSignal recebe cart_abandoned:
  • O usuário se torna elegível para entrar na Journey
  • Um período de espera dá tempo para ele retornar naturalmente
  • Uma mensagem é enviada somente se ele não sair
  • O usuário sai imediatamente quando cart_emptied é recebido
As Journeys controlam tempo e repetição — elas não determinam o abandono.

Configuração

Etapa 1. Planeje os dados e a fonte do seu carrinho

Decida quais informações do carrinho você deseja mostrar e de onde esses dados vêm. Dados comuns do carrinho incluem:
  • Nome do produto, imagem, preço e quantidade
  • Número de itens no carrinho
  • Um deep link de volta ao carrinho
Sua fonte de dados determina como você envia os eventos:
Fonte de dadosMétodo recomendado
App ou websiteOneSignal Frontend SDK
Backend ou banco de dadosOneSignal REST API
Plataforma de terceirosCustom Events baseados em integração
Ao final desta etapa, você sabe quais dados vai enviar e como vai enviá-los.

Etapa 2. Envie sinais de estado do carrinho ao OneSignal

Você deve enviar sinais que representem mudanças de estado do carrinho.
SinalPropósito
cart_abandonedAtividade do carrinho detectada e não resolvida
cart_updatedConteúdo do carrinho alterado
cart_emptiedCarrinho esvaziado ou compra concluída
Os nomes de eventos e tags devem corresponder exatamente entre chamadas SDK/API, Segmentos, regras de Journey e templates Liquid.
Use os SDKs Web ou Mobile do OneSignal para enviar Custom Events ou Tags.
Método SDKDescrição
trackEventEnviar um Custom Event (Mobile SDK, Web SDK)
addTagsAdicionar uma Tag (Mobile SDK, Web SDK)
removeTagsRemover uma Tag (Mobile SDK, Web SDK)
Exemplo de Custom Event
O evento cart_abandoned deve ser enviado após um período de inatividade do carrinho, não quando o usuário entra ou atualiza o carrinho.O evento cart_emptied deve ser enviado imediatamente quando o carrinho é esvaziado ou uma compra é concluída.
OneSignal.User.trackEvent("cart_abandoned", {
  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/cart"
});
Exemplo de Tag
Este exemplo define a tag cart_updated como um timestamp Unix (em segundos) representando quando o carrinho foi atualizado pela última vez. Você também pode usar um valor booleano (true/false), mas um timestamp oferece mais flexibilidade com Time Operators.
OneSignal.User.addTags({
  cart_updated: unix_timestamp_seconds,
  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"
})
Se você não enviar um sinal cart_emptied, os usuários podem continuar recebendo mensagens de carrinho abandonado após a compra.

Etapa 3. Crie templates de mensagem de carrinho abandonado

Crie templates de mensagem que referenciem dados do carrinho dinamicamente. Para mais detalhes sobre os conceitos usados nesta seção, consulte:
Referencie propriedades de eventos usando o formato de sintaxe Liquid:
Liquid
{{journey.event.name.properties.property_name | default: "fallback_value"}}
Mensagem:
Liquid
You left {{journey.event.cart_abandoned.properties.product_name | default: "items"}} in your cart.
Imagem:
Liquid
{{journey.event.cart_abandoned.properties.product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
URL de abertura:
Liquid
{{journey.event.cart_abandoned.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 é 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_abandoned.properties.product_image | default: "stock_image"}}.png
Exemplo de template de carrinho abandonado com Custom Events
Precisa de exemplos de e-mail, ajuda ou apenas mais inspiração?

Etapa 4. Crie o Segmento de carrinho abandonado (somente Tags)

Esta etapa é necessária apenas se você estiver usando Tags para rastrear a atividade do carrinho. Se você estiver usando Custom Events, pode pular esta etapa.
O Segmento determinará quem pode entrar na Journey. Consulte Segmentos para mais detalhes. Selecione o filtro User Tag para rastrear usuários onde a tag cart_updated exists E selecione o filtro Last Session como less than 7 days ago
Segmento de Carrinho Abandonado com filtro de Tag onde a tag cart_updated existe e a última sessão é menos de 7 dias atrás
Agora podemos rastrear usuários que atualizam seu carrinho e visitaram o app ou website nos últimos 7 dias.Os usuários serão automaticamente removidos do segmento quando qualquer uma das seguintes condições for atendida:
  • Após 7 dias terem passado desde a última visita ao app/website
  • Quando a tag cart_updated for removida

Etapa 5. Crie a Journey de carrinho abandonado

Crie uma Journey que reaja à atividade do carrinho. Consulte Journeys para mais detalhes.
Tela de criação de nova Journey de Carrinho Abandonado

Configurações da Journey

Revise o guia de Configurações da Journey para mais detalhes sobre regras de Entrada, Saída e Reentrada. Regras de entrada:
  • Selecione Custom Event
  • Nome do Custom Event: cart_abandoned
Os usuários entram na Journey toda vez que o evento cart_abandoned é enviado. Envie este evento somente após um período significativo de inatividade.
Regras de entrada da Journey de Carrinho Abandonado com Custom Event
Regras de saída:
  • Selecione Meet a certain condition
  • Marque Exit when custom event condition occurs
  • Nome do Custom Event: cart_emptied
Regras de saída da Journey de Carrinho Abandonado com Custom Event
Os usuários sairão da Journey quando:
  • O evento cart_emptied (da etapa 3) for executado.
  • Eles completarem a Journey.
Regras de reentrada (somente Tags):
  • Selecione Yes, after a certain amount of time
  • Defina o tempo de reentrada para 1 day
Regras de reentrada da Journey de Carrinho Abandonado
Se você seguiu este guia completamente até agora, os usuários irão:
  1. Entrar na Journey quando abandonarem/atualizarem seu carrinho
  2. Sair da Journey quando esvaziarem o carrinho ou completarem a Journey.
  3. Ser elegíveis para reentrar na Journey:
    • Custom Events: Cada vez que o evento cart_abandoned for executado
    • Tags: Após 1 dia ter passado desde a última saída da Journey e estarem no segmento.
Salve as Configurações da Journey.

Etapas da Journey

Os usuários entrarão na Journey quando corresponderem ao Segmento. Isso normalmente acontece em poucos minutos após o evento/tag ser recebido. Os usuários fluirão pela Journey etapa por etapa até chegarem ao final ou uma regra de saída ser atendida. Para uma Journey básica de carrinho abandonado, queremos fazer 2 coisas:
  1. Dar ao usuário tempo suficiente para esvaziar o carrinho (fazer uma compra ou esvaziar o carrinho manualmente)
  2. Se eles não esvaziarem o carrinho, enviar uma mensagem lembrando-os sobre os itens no carrinho
Consiga isso adicionando primeiro uma etapa de Wait à Journey.
  • Defina o tempo de espera conforme desejar. Recomendamos definir para 1 hour para que você possa enviar a mensagem enquanto eles ainda têm a intenção de comprar.
Adicione uma etapa de Message.
  • Selecione o template de Push Notification Abandoned Cart que você criou na Etapa 4.
Etapas básicas da Journey de Carrinho Abandonado
A Journey básica de Carrinho Abandonado está agora configurada.Quando um usuário entrar na Journey, ele aguardará por 1 hora. Se não sair da Journey, receberá a notificação push de carrinho abandonado.

Configuração avançada da Journey

Usando o conhecimento que você adquiriu neste guia, agora pode estender a 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 de alto desempenho muito comum é:
  1. Enviar a primeira mensagem após 1 hora (concluído neste guia).
  2. Adicionar outra etapa de Wait de 1 dia e enviar uma segunda mensagem (~24 horas desde que atualizaram o carrinho).
  3. Adicionar outra etapa de Wait de 2 dias e enviar uma terceira mensagem (~72 horas desde que atualizaram o carrinho).
Tipos e conteúdo de mensagens: Dependendo de quais canais você configurou com o OneSignal, você obterá melhores resultados usando uma abordagem omnichannel.
  1. Este guia mostra como enviar uma 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 2ª mensagem. Use esta segunda mensagem para destacar benefícios e prova social com leve urgência para incentivá-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 incentivá-los a comprar.

Mensagens de fallback

As Journeys do OneSignal fornecem lógica de ramificação Wait Until 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, enviar uma mensagem de fallback. 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 fallback podem ser encontrados em nosso guia de Mensagens de fallback.

Acompanhe o desempenho

Analytics da Journey pode ser usado para acompanhar como a Journey está se saindo como um todo. Você também pode acompanhar o desempenho de cada mensagem usando Analytics de template.

Acompanhe a receita com Outcomes

Para acompanhar a receita desta Journey, você pode usar Custom Outcomes. Quando uma compra é realizada, você pode enviar o evento como um “Custom Outcome” para acompanhar a receita associada à mensagem específica enviada. Custom Outcomes podem ser enviados via Mobile SDK ou Web SDK.
Example: Send purchase outcome via frontend SDK
// Example: capture total price and item count at 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);
  });
}
Os Outcomes podem atribuir receita às mensagens que os usuários clicaram ou foram influenciados dentro de uma janela de atribuição definida.
Você implementou com sucesso uma Journey de carrinho abandonado. Quando estiver pronto para começar a enviar mensagens, selecione Set Live.
Precisa de ajuda?Converse com nossa equipe de Suporte ou envie email para support@onesignal.comPor 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!