Saltar al contenido principal

Descripción general

Recordar a los usuarios sobre artículos dejados en sus carritos de compras es una de las formas más efectivas de impulsar conversiones y recuperar ingresos perdidos. Cuando se implementan correctamente, las campañas de carrito abandonado entregan resultados comprobados como se muestra en nuestros Casos de estudio. Esta guía paso a paso muestra cómo implementar notificaciones de carrito abandonado con código de ejemplo para dos escenarios:
  1. Usando las poderosas herramientas de etiquetado y segmentación de OneSignal en un Journey basado en segmentos.
  2. Usando las nuevas características integrales de Eventos personalizados de OneSignal y dos Journeys simples activados por eventos.
Si ya tiene una solución de carrito abandonado configurada, puede usar nuestros Feeds de datos para sincronizar datos del carrito directamente en sus mensajes de OneSignal.
  • Usando etiquetas y segmentos
  • Usando eventos personalizados

Configuración

1. Rastrear actividad del carrito con etiquetas

Use etiquetas para rastrear cuándo los usuarios agregan artículos a su carrito. Estas etiquetas pueden incluir nombre del producto, imagen y una marca de tiempo:
  • cart_update: Marca de tiempo Unix de cuándo se actualizó el carrito
  • product_name: Nombre del producto legible para personalización
  • product_image: URL directa a la imagen del producto para engagement visual
Aquí hay un ejemplo básico para etiquetar artículos agregados a un carrito:
let productName = "Name of the Product"; // Reemplazar con el nombre del artículo
let productImageURL = "https://yoursiteurl.com/image-file.jpg"; // Reemplazar con la url de la imagen

// Usar este método de ejemplo cuando el usuario agregue artículo al carrito
async function addTagsUponCartUpdate(productName, productImageURL) {
await OneSignalDeferred.push(async function (OneSignal) {
let timestamp = Math.floor(Date.now() / 1000);
await OneSignal.User.addTags({
cart_update: timestamp,
product_name: productName,
product_image: productImageURL,
});
// Llamar getTags después de agregar etiquetas
const tags = await OneSignal.User.getTags();
console.log(tags);
});
}

// Llamar la función, o adjuntar al botón agregar al carrito
addTagsUponCartUpdate(productName, productImageURL);

Si los usuarios finalizan la compra o eliminan artículos, asegúrese de eliminar las etiquetas para evitar falsos positivos.Eliminar etiquetas cuando la compra esté completa:
//Elimina las etiquetas del carrito, llamar cuando el usuario compre o elimine artículos del carrito
async function removeCartTags() {
  await OneSignalDeferred.push(async function (OneSignal) {
    let timestamp = Math.floor(Date.now() / 1000);
    await OneSignal.User.addTags({
      cart_update: "",
      product_name: "",
      product_image: "",
    });
    // Llamar getTags después de eliminar etiquetas
    const tags = await OneSignal.User.getTags();
    console.log(tags);
  });
}
Si el usuario deja su sitio sin finalizar la compra (abandonando su carrito), ahora tiene suficiente información para dirigirse a ellos con una notificación personalizada de carrito abandonado.

2. Crear segmento de carrito abandonado

Una vez que la configuración de etiquetado esté completa, necesitaremos dirigirnos a estos usuarios y enviarles mensajes después de que haya pasado algo de tiempo. En su panel de OneSignal, vaya a Audience > Segments.Los Segmentos permiten agrupar suscripciones basadas en los datos recopilados: 1 - si tienen artículos en el carrito y 2 - cuánto tiempo ha pasado desde que esos artículos se dejaron en el carrito.
  • Con filtro de última sesión
  • Con operadores de tiempo
Este segmento incluirá usuarios que tienen artículos en su carrito y han dejado el sitio o aplicación móvil hace más de 1 hora. El usuario agrega un artículo al carrito, luego deja la aplicación o sitio, 1 hora después estará en este segmento.
  1. Seleccione el filtro “User Tag”
  2. Establezca cart_update en “exists”
  3. Seleccione “Add Filter” para crear una relación “AND”.
  4. Seleccione el filtro “Last Session” y establezca “greater than” 1.
  5. Seleccione “Add Filter” nuevamente y establezca otro filtro “Last Session” en “less than” 24. (el usuario dejará el segmento después de 24 horas).
  6. Nombre el segmento Abandoned Cart 1 Hour (no es obligatorio pero ayuda a recordar).

Ejemplo de segmento de carrito abandonado

A medida que los usuarios agregan/eliminan artículos de su carrito y dejan/regresan al sitio, se moverán automáticamente dentro y fuera de este segmento.Siempre puede volver a este segmento más tarde si desea cambiar el marco de tiempo de 1 hora a un marco de tiempo más alto.Los segmentos se pueden duplicar para crear más y configurar diferentes marcos de tiempo si también desea enviar diferentes mensajes después de marcos de tiempo más largos.

3. Crear mensaje de carrito abandonado

¡Aquí es donde podemos usar algo de creatividad! Si su sitio/aplicación tiene ciertas frases, lenguaje o emojis que le gustan, ¡úselos! Todo eso es genial para el reconocimiento de marca, hacer que los usuarios hagan clic y lograr que finalicen la compra.Además, usando las etiquetas product_name y product_image, podemos incluir estos datos dentro del mensaje para Personalización de mensajes.Por ejemplo, podemos decir: “¡Oye Gato Cool 😸! ¡Tu nuevo plato de agua para gatos amarillo te está esperando!”. E incluir la imagen del artículo en el mensaje.En el panel de OneSignal, vaya a Messages > Templates y seleccione “New Push Template”.Las Plantillas son una forma de crear mensajes reutilizables y monitorear cuántas veces se han enviado y clicado.
  1. Nombre la plantilla: Abandoned Cart 1 Hour o como sea que nombró el segmento.
  2. Agregue su título, ejemplo: ¡Oye Gato Cool 😸!
  3. Agregue su mensaje, ejemplo: ¡Tu nuevo {{product_name | default: "artículo"}} te está esperando!
  • aquí {{product_name | default: "artículo"}} será reemplazado por cualquier valor que esté establecido para esa etiqueta. Si no hay etiqueta establecida, se usará “artículo”.
  1. Establezca la imagen en: {{product_image}}
  • aquí {{product_image}} será reemplazado con la URL de la imagen del producto. Si el valor de la etiqueta no es un enlace directo a la imagen, entonces no se mostrará.
  1. Establezca la URL de lanzamiento para que sea la URL de su página de pago
  • aquí si la página de pago es única por usuario, necesitaríamos enlazar a la página del carrito (si no es única) o usar más sustitución de etiquetas. Por ejemplo, si su página de pago es: https://yoursite.com/username/checkout necesitamos etiquetar al usuario con una etiqueta user_name para que su nombre de usuario pueda ser reemplazado si usamos: https://yoursite.com/{{user_name}}/checkout

Ejemplo de mensaje de carrito abandonado

Importante: puede usar cualquier idioma en estos campos (no tiene que ser inglés) y si desea agregar más de 1 idioma, simplemente seleccione “Add Languages” para poner su propia traducción para el mensaje.
  1. Debajo de la vista previa, haga clic en “Send Test Message” para probar cómo se ve.
  2. Cuando termine, presione “Save” en la parte inferior.
Ahora que nuestra plantilla reutilizable está configurada, podemos regresar a la página Messages > Templates para vigilar cuántas veces se ha enviado y abierto.Puede crear tantas plantillas como desee y en todos los canales diferentes desde los que desee enviar.

4. Configurar journey de carrito abandonado

Navegue a Journeys > New Journey.

Configuración del Journey

  1. Nombre el Journey: Abandoned Cart o cualquier cosa que le guste para reconocer qué hace este Journey.
  2. Reglas de entrada: Incluya el segmento Abandoned Cart 1 Hour.
  3. Reglas de salida: Marque Exit when a user no longer matches the audience conditions.
  4. Reglas de reingreso: Seleccione Yes, after a certain amount of time y establezca en 1 día.

Ejemplo de configuración del Journey

  1. Presione Save.

Pasos del Journey

Actualmente los usuarios que ingresan al segmento comenzarán a fluir a través del Journey. Si dejan el segmento, dejarán el Journey y no podrán reingresar hasta que haya pasado 1 día.
  1. Agregue un paso de mensaje Push Notification, seleccione la plantilla Abandoned Cart 1 Hour y Save.

Ejemplo de pasos del Journey

  1. Agregue un paso Wait, seleccione 1 Week y Save.
  2. Seleccione Save & Close.
Sus usuarios recibirán la plantilla personalizada de Carrito abandonado una vez cada 8 días (1 semana de nodo de espera + 1 día de regla de reingreso) hasta que actualicen su carrito o finalicen la compra.
¡Ha terminado exitosamente la configuración mínima de Carrito abandonado! Ahora puede crear más plantillas, agregar más pasos de Journey, mensajes y actualizar según sea necesario.Cuando esté listo, simplemente presione Set Live.

5. Configuración opcional de seguimiento de rendimiento de carrito abandonado

Una vez que los mensajes de carrito abandonado estén configurados, puede rastrear qué tan bien funcionan yendo a Plantillas y mirando las tasas de apertura y clics.Si tiene una cuenta paga de OneSignal, también puede usar Outcomes para rastrear los ingresos reales generados.Cuando el cliente finalice el pago, al seleccionar el botón “Submit Payment” llame al siguiente método.
//Ejemplo para obtener el precio y el total de artículos en el carrito
// reemplazar ".checkout-price-total" con el nombre de clase del elemento que contiene el precio total del carrito
const checkoutPriceTotal = document.querySelector(".checkout-price-total").innerText;
// opcional reemplazar ".checkout-items-total" con el nombre de clase del elemento que contiene el total de artículos en el carrito a comprar
const checkoutItemsTotal = document.querySelector(".checkout-items-total").innerText;
//Llamar este método en el evento de clic para el botón final para enviar el pago
function updateOSOnCartPurchase(checkoutPriceTotal, checkoutItemsTotal) {
  let purchasePriceTotal = parseFloat(checkoutPriceTotal);
  let purchasedItemCount = parseInt(checkoutItemsTotal);
  OneSignalDeferred.push(function (OneSignal) {
    OneSignal.sendOutcome("Purchase", purchasePriceTotal);
    OneSignal.sendOutcome("Purchased Item Count", purchasedItemCount);
  });
}
//ejemplo de agregar este método al botón "submit-payment"
const submitPurchaseButton = document.querySelector(".submit-payment");
if (submitPurchaseButton) {
  submitPurchaseButton.addEventListener("click", () => {
    updateOSOnCartPurchase(checkoutPriceTotal, checkoutItemsTotal);
  });
}
  • OneSignal.sendOutcome("Purchase", purchasePriceTotal); - enviará a OneSignal el monto total de la compra y acumulará esos ingresos para todas las compras realizadas por todos los clientes que hicieron clic en un push o recibieron un push dentro de un marco de tiempo específico (influenciados) e hicieron la compra.
  • OneSignal.sendOutcome("Purchased Item Count", purchasedItemCount); - enviará a OneSignal la cantidad total de artículos comprados asociados con el cliente que hizo clic directamente en el push para realizar una compra o hizo la compra “influenciada” por un push.
¡Ahora es un experto de OneSignal! ¡Logró una implementación en profundidad de la oferta de OneSignal y está listo para hacer más! Continúe agregando más mejores prácticas descritas en nuestros Casos de uso o siga los enlaces a continuación para profundizar más en estas características individuales.
Need help?Chat with our Support team or email support@onesignal.comPlease include:
  • Details of the issue you’re experiencing and steps to reproduce if available
  • Your OneSignal App ID
  • The External ID or Subscription ID if applicable
  • The URL to the message you tested in the OneSignal Dashboard if applicable
  • Any relevant logs or error messages
We’re happy to help!