Widgets de intención de salida
Pro FeatureCapte a los visitantes antes de que se vayan. Los widgets de intención de salida son popups definidos por el cliente que se disparan en el momento exacto en que un visitante señala que está a punto de abandonar la página — con análisis integrado para cada impresión, clic y cierre.
Los widgets de intención de salida están disponibles en los planes Pro, Scale y Enterprise. Actualice su plan para activar esta función.
Resumen
Un widget es una pequeña superposición configurable que el script de tracking de Zenovay renderiza cuando se detecta una señal de intención de salida. Usted diseña el contenido y define la segmentación, y Zenovay se encarga de la entrega, el límite de frecuencia y la analítica.
Cuándo se disparan los widgets
El tracker utiliza dos señales de salida específicas por dispositivo:
| Dispositivo | Señal |
|---|---|
| Escritorio | Evento mouseleave cuando el cursor cruza el borde superior del viewport |
| Móvil / tableta | Scroll rápido hacia arriba (gesto back-to-top) o regreso de la página desde una pestaña en segundo plano vía visibilitychange |
Ambas señales tienen anti-rebote y respetan el límite de frecuencia configurado por widget, de modo que el mismo visitante no vea el mismo widget dos veces en una sesión.
Los widgets mostrados por el tracker se ejecutan del lado del cliente. En modo cookieless, el tracker no persiste IDs de visitante entre cargas de página, por lo que la deduplicación entre pestañas es solo de mejor esfuerzo — un solo visitante que abra la misma página en dos pestañas puede ver el widget en cada una.
Configuración
Los widgets se gestionan completamente desde el panel de Zenovay — no se requieren cambios de código más allá de tener el script de tracking instalado.
- Vaya a su panel y seleccione el sitio web al que desea añadir un widget.
- Abra la pestaña Widgets.
- Haga clic en New widget.
- Recorra el constructor de cuatro pasos.
El constructor en 4 pasos
Paso 1 — Contenido
Defina lo que muestra el widget.
- Título — el encabezado (máx. 120 caracteres)
- Cuerpo — el texto de apoyo (máx. 500 caracteres, texto plano)
- CTA principal — etiqueta del botón y URL de destino (o un nombre de
goal_eventsi prefiere registrar la finalización de un objetivo en lugar de una redirección)
Paso 2 — Segmentación
Decida quién lo ve.
- Patrón de página — en qué URLs se ejecuta el widget (consulte Semántica de segmentación)
- País — lista de códigos ISO 3166-1 alfa-2 (p. ej.
US,DE,FR); déjelo vacío para todos los países - Dispositivo — uno o más entre
desktop,mobile,tablet - Límite de frecuencia — número máximo de impresiones por visitante en N días (p. ej. una vez cada 7 días)
- Mínimo de visitas — disparar solo a partir de la N-ésima visita del visitante a este sitio (requiere modo no-cookieless)
Paso 3 — Diseño
Personalice el widget para que encaje con su marca.
- Posición, ancho, radio de borde (consulte Enumeraciones de diseño)
- Colores de fondo, texto y botón (hex)
- Imagen con posición seleccionable (arriba, izquierda, derecha o fondo a sangre completa)
- Botón secundario (opcional) — bien una acción pasiva
dismiss, bien unlinksecundario
Paso 4 — Programación
- Estado —
draft,activeopaused - Fecha de inicio / Fecha de fin (opcional) para campañas con plazo
Pulse Guardar y el widget estará en producción en menos de un minuto (el tracker recargará la lista de widgets activos en la siguiente carga de página).
Semántica de segmentación
Patrón de página
Por defecto, el campo de patrón de página es una coincidencia por subcadena contra el pathname del visitante.
| Patrón | Coincide con |
|---|---|
/blog | /blog, /blog/post-1, /de/blog/x, /team-blog/about |
/checkout | /checkout, /checkout/payment, /api/checkout/v2 |
* | todas las páginas |
Para una coincidencia más precisa, use globs explícitos:
| Patrón | Coincide con |
|---|---|
/blog/* | /blog/post-1, /blog/category/x (NO /de/blog/...) |
/checkout/*/payment | /checkout/abc/payment, /checkout/xyz/payment |
/products/[id] | /products/123, /products/abc-def |
La subcadena es el valor por defecto porque la mayoría de clientes esperan que "/blog" coincida con todas las páginas de blog independientemente del prefijo de idioma. Use globs (*) cuando necesite anclar el inicio o el final de la ruta.
País
Códigos ISO 3166-1 alfa-2 separados por coma:
US,CA,GB,DE,FR
La detección de país usa la geolocalización IP del visitante en el momento de la carga de la página. Los visitantes de la UE con GPC activado no son enriquecidos, por lo que la segmentación por país recae en "todos los países" para esos visitantes.
Dispositivo
Elija uno o más de los tres grupos:
desktop
mobile
tablet
El tracker clasifica los dispositivos por User-Agent y ancho del viewport, idéntico al resto del panel.
Límite de frecuencia
Definido como max_shows_per_n_days. El tracker almacena una marca de tiempo de impresión por widget en el registro del visitante (del lado del servidor, nunca en cookies/localStorage). Mientras frequency_cap_n_days no haya transcurrido desde el último evento shown para este par widget × visitante, el widget se suprime.
Mínimo de visitas
Establecer min_visit_count > 1 exige que el tracker recuerde cuántas veces ha cargado el sitio este visitante. Como el tracker de Zenovay funciona cookieless por defecto mientras no se haya dado consentimiento, esta regla de segmentación recae silenciosamente en "disparar en la primera visita" para cualquier visitante en modo cookieless.
Si depende de esta regla, asegúrese de que el tracker se cargue con data-cookieless="false" (es decir, después del consentimiento); de lo contrario, la regla no surte efecto para la gran mayoría del tráfico de la UE.
Enumeraciones de diseño
Los campos de diseño son enumeraciones bloqueadas por seguridad — la API solo acepta los valores siguientes. Esto protege a todos los widgets servidos por Zenovay frente a la inyección de CSS.
Posición
center
top-banner
bottom-banner
top-right
top-left
bottom-right
bottom-left
top-banner y bottom-banner son tiras de ancho completo. Las cuatro posiciones de esquina son tarjetas más pequeñas y fijas.
Ancho
sm (320px máx.)
md (480px máx.)
lg (640px máx.)
xl (800px máx.)
Los anchos son responsivos — se adaptan a viewports más pequeños y nunca exceden la pantalla del visitante.
Radio de borde
none
sm
md
lg
full
full redondea el widget hasta convertirlo en una píldora (solo tiene sentido con una posición de banner).
Posición de la imagen
top
left
right
background
background coloca la imagen como fondo a sangre completa con un velo de contraste detrás del texto.
Acción secundaria
dismiss
link
dismiss cierra el widget sin registrar un clic. link registra un evento secondary_clicked y navega a la URL configurada.
Analítica
Cada widget registra cuatro tipos de eventos:
| Evento | Cuándo se dispara |
|---|---|
shown | El widget se hizo visible en el viewport |
clicked | El visitante hizo clic en el CTA principal |
secondary_clicked | El visitante hizo clic en el botón secundario (cuando se configura como link) |
dismissed | El visitante cerró el widget sin hacer clic |
Vista de detalle
Abra cualquier widget desde la pestaña Widgets para ver:
- CTR —
clicked / shown, con comparación frente al promedio del sitio - Gráfico diario — barras diarias de impresiones / clics / cierres con sparklines
- Funnel de conversión —
shown → clicked → goal completed(cuando el CTA apunta a un objetivo rastreado) - Páginas principales — las URLs en las que más se disparó el widget, con CTR por página
- Desglose por dispositivo — split desktop / móvil / tablet para impresiones vs clics
Todas las métricas respetan los mismos filtros de fecha y segmento que el resto del panel.
Privacidad
Los eventos de analítica de los widgets utilizan el mismo pipeline de eventos cookieless que el resto de Zenovay:
- El ID de visitante es un hash SHA-256 con sal diaria calculado del lado del servidor sobre (subred IP + User-Agent + sal del día). No se escriben cookies ni
localStorageen el navegador del visitante. - La deduplicación entre pestañas (para que el mismo visitante no vea el widget dos veces en dos pestañas) es solo de mejor esfuerzo en modo cookieless — sin almacenamiento persistente, dos pestañas son indistinguibles de dos visitantes con la misma huella IP/UA.
- Los visitantes con Global Privacy Control (
Sec-GPC: 1) no son enriquecidos — los campos de país y B2B se descartan del lado del servidor, pero el widget seguirá disparándose si el patrón de página, el dispositivo y el límite de frecuencia se cumplen. - No se recopila ningún contenido del widget, ningún snapshot del DOM ni ninguna entrada del visitante. Solo los cuatro tipos de eventos listados arriba.
Si necesita una segmentación más estricta (p. ej. mostrar solo a usuarios autenticados), condicione el widget a un evento personalizado emitido desde su propio código de aplicación en lugar de depender de la persistencia entre pestañas.
Límites por plan
| Plan | Widgets por sitio |
|---|---|
| Free | 0 (bloqueado) |
| Pro | 3 |
| Scale | 10 |
| Enterprise | Ilimitado |
Los límites se aplican en la API en el momento de la creación y se muestran como un error en el panel si intenta superarlos. Para subir su límite, actualice su plan.
Acceso a la API
Gestione los widgets de forma programática:
# Listar widgets de un sitio
GET /api/popup-widgets/:websiteId
Authorization: Bearer YOUR_API_KEY
# Obtener un widget
GET /api/popup-widgets/:websiteId/:widgetId
# Obtener la analítica de un widget
GET /api/popup-widgets/:websiteId/:widgetId/stats
# Crear
POST /api/popup-widgets/:websiteId
# Actualizar
PATCH /api/popup-widgets/:websiteId/:widgetId
# Eliminar
DELETE /api/popup-widgets/:websiteId/:widgetId
El endpoint público utilizado por el tracker (GET /api/popup-widgets/active/:trackingCode) es invocado automáticamente por el script de tracking y no requiere autenticación.
Buenas prácticas
- Empiece por el valor, no por el pánico. "Ahorre un 20 % en su primer pedido" rinde mucho mejor que "¡Espere! ¡No se vaya!".
- Limite a un máximo de una vez por visitante a la semana. Un widget en cada visita se convierte en cebo para los bloqueadores de publicidad.
- Pruebe en móvil por separado. Las señales móviles (scroll hacia arriba + retorno de visibilidad) se disparan de forma distinta al
mouseleavede escritorio. Un widget que convierte en escritorio puede ser invisible en móvil. - Empareje el CTA con un objetivo. Hacer que el CTA principal apunte a una URL rastreada o a un
goal_eventpermite ver el funnel completoshown → clicked → converteden lugar de solo los clics. - Pause antes de iterar. No elimine un widget que está testeando en A/B — póngalo en pausa para que la analítica histórica permanezca asociada.
Próximos pasos
- Conversion Funnels - Realice un seguimiento de los caminos de conversión multietapa que el widget puede alimentar
- Goals - Defina los eventos que el CTA de su widget debe completar
- Incidentes de conversión - Reciba alertas cuando las conversiones impulsadas por widgets bajen