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 mensagens de carrinho abandonado
    • Sai imediatamente quando o carrinho é esvaziado ou comprado
  • Analytics para medir o desempenho de mensagens e receita
Como carrinhos abandonados são modelados Este guia assume que você está rastreando eventos de “carrinho atualizado”, ou seja, toda vez que um usuário adiciona ou remove itens do carrinho. Isso pode ser um único item, como uma assinatura do seu conteúdo, ou vários itens, como um carrinho de compras. Uma vez que o OneSignal recebe um evento cart_updated:
  • 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 o carrinho é esvaziado

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 atividade do carrinho ao OneSignal

Quando o estado do carrinho muda, envie os dados atualizados ao OneSignal para que a atividade possa ser rastreada. Este guia usa o evento ou tag cart_updated para rastrear a atividade do carrinho e pelo menos uma propriedade. Selecione o método que você escolheu na Etapa 1:
Envie um Custom Event cart_updated toda vez que o carrinho mudar. Inclua propriedades do produto quando houver itens no carrinho e omita-as quando o carrinho for esvaziado.
ReferênciaDescrição
Método trackEventEnviar via Frontend SDK (Mobile SDK, Web SDK)
API de Custom EventsEnviar via REST API
IntegraçõesEnviar via integração
Exemplo do método trackEvent do Frontend SDK
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/cart"
});
Exemplo da API de Custom Events
{
  "events": [
    {
      "name": "cart_updated",
      "properties": {
        "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"
      },
      "external_id": "ID_OF_THE_USER"
    }
  ]
}
A atividade do carrinho agora está sendo enviada ao OneSignal. Cada vez que o carrinho muda, o OneSignal recebe os dados atualizados necessários para acionar e personalizar as mensagens.

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_updated.properties.product_name | default: "items"}} in your cart.
Imagem:
Liquid
{{journey.event.cart_updated.properties.product_image | default: "https://i.imgur.com/ssPCfbC.png"}}
URL de abertura:
Liquid
{{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 é 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
Exemplo de template de carrinho abandonado com Custom Events
Precisa de exemplos de e-mail, ajuda ou apenas mais inspiração?

Personalizar mensagens com Custom Events

Guia completo para usar Custom Events em Journeys. Inclui armazenamento de eventos, configuração de Journey, exemplo de carrinho abandonado, melhores práticas e solução de problemas.

Personalizar mensagens com Propriedades

Guia completo para usar Propriedades e Tags em Journeys. Inclui armazenamento de eventos, configuração de Journey, exemplo de carrinho abandonado, melhores práticas e solução de problemas.

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. Adicione dois filtros ao Segmento:
  1. User Tagcart_updated exists
  2. Last Sessionless 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_updated
  • Filtrar por propriedade: Com todas as seguintes propriedades: product_name exists
O uso de Custom Events permite que usuários individuais entrem em Journeys múltiplas vezes.Use propriedades para filtrar usuários de forma que eles só entrem quando uma propriedade específica existir.
Regras de entrada da Journey de Carrinho Abandonado com Custom Event
Regras de saída:
Os usuários devem sair da Journey quando esvaziam o carrinho ou completam a Journey.
  • Selecione Meet a certain condition
  • Marque Exit when custom event condition occurs
  • Nome do Custom Event: cart_updated
Regras de saída da Journey de Carrinho Abandonado com Custom Event
Esta configuração usa o mesmo nome de Custom Event (cart_updated) tanto para as regras de entrada quanto de saída.Isso permite que o usuário esteja em apenas uma instância da Journey por vez. Cada vez que ele atualiza o carrinho, aquela instância do usuário sai e uma nova instância do mesmo usuário entra na Journey. Por isso é importante usar propriedades para filtrar usuários nas Regras de Entrada.
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_updated 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 com base nas Regras de Entrada. 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 3.
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

Estenda a Journey para enviar mais mensagens ao longo do tempo para taxas de recuperação mais altas.

Sequência de mensagens

Uma cadência comum de alto desempenho é:
  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.

Perguntas frequentes

Devo usar Custom Events ou Tags para rastrear o carrinho?

Custom Events são recomendados para a maioria das implementações. Eles suportam dados mais ricos, permitem filtragem baseada em propriedades nas regras de entrada da Journey e lidam automaticamente com a reentrada quando o mesmo evento é acionado novamente. Tags funcionam para casos de uso mais simples onde você só precisa rastrear se um carrinho existe, mas requerem criação manual de segmento e configuração de reentrada.

Quanto tempo devo esperar antes de enviar o primeiro lembrete?

Uma a duas horas é um ponto de partida comum. Isso dá ao usuário tempo suficiente para retornar por conta própria enquanto a intenção de compra ainda é recente. Teste diferentes tempos de espera e use analytics da Journey para descobrir o que funciona melhor para o seu público.

O que acontece se um usuário atualizar o carrinho enquanto estiver na Journey?

Com Custom Events, o usuário sai da instância atual da Journey (porque cart_updated é acionado como condição de saída) e imediatamente reentra com os dados do evento atualizado. Com Tags, o usuário permanece na mesma instância da Journey porque a tag ainda existe — ele só reentra após sair e aguardar o período de reentrada.
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!