Seguimiento de conversiones
Revolink puede registrar lo que hacen los visitantes después de hacer clic en tu enlace: registros, compras, leads, visualizaciones de página y cualquier evento personalizado que definas. Los resultados se muestran desglosados por enlace, regla de enrutamiento y variante A/B, para que sepas exactamente qué variación da más resultados.
Esta guía cubre: configurar el seguimiento, instalar el SDK, registrar eventos y leer los datos.
Cómo funciona
Cuando un visitante hace clic en tu enlace de Revolink, el SDK detecta que la visita viene de tu enlace e inicia una sesión. Todos los eventos que se disparan durante esa sesión se atribuyen al enlace (y a la regla de enrutamiento o variante A/B concreta con la que coincidió el visitante).
La atribución empieza por el enlace
El SDK solo registra eventos de los visitantes que llegaron a través de un enlace de Revolink. Si alguien abre tu sitio web directamente, sin hacer clic en un enlace de Revolink, sus eventos no se cuentan. Así tus datos se mantienen limpios y la atribución es precisa.
Paso 1 — Genera la clave de tu espacio de trabajo
Ve a Configuración del espacio de trabajo → Seguimiento de conversiones.

Haz clic en Generar clave. Revolink genera una clave única para tu espacio de trabajo y te muestra el fragmento de instalación.

Paso 2 — Instala el script
Copia el fragmento de script y pégalo en el <head> de cada página que quieras rastrear, normalmente en tu archivo de diseño global.
<script src="https://cdn.revolink.link/sdk/conversion.js"
data-workspace-key="YOUR_KEY"></script>
Sustituye YOUR_KEY por tu clave real (ya viene rellenada en el fragmento de tus ajustes).
Una clave por espacio de trabajo
La clave pertenece al espacio de trabajo. Si usas varios espacios de trabajo, cada uno tiene su propia clave: usa la correcta para cada sitio.
Qué registra el SDK automáticamente
Una vez instalado, el SDK registra estos eventos sin código adicional, pero solo para los visitantes que llegaron a través de un enlace de Revolink:
page_view
Se dispara en cuanto el visitante abre la página. Es el primer evento de cualquier sesión: confirma que la atribución se capturó correctamente. Se envía con fetch para que el SDK pueda detectar una clave de espacio de trabajo no válida y suprimir el seguimiento posterior si hace falta.
scroll_depth
Se dispara cuando el visitante abandona la página (la pestaña pasa a segundo plano o se cierra el navegador). Captura el porcentaje máximo de desplazamiento alcanzado durante la sesión, agrupado en 25, 50, 75 o 100. Solo se envían los valores distintos de cero.
Usa upsert: si el visitante vuelve a la misma página dentro de la misma sesión, se actualiza el valor en lugar de insertar un registro nuevo.
time_on_page
Se dispara junto con scroll_depth al ocultar la página. Cuenta solo el tiempo en que la pestaña estuvo realmente visible: cambiar a otra pestaña pausa el temporizador. El valor está en segundos.
También usa upsert, de modo que volver y salir de la pestaña se acumula en un único registro por página y sesión.
outbound_click
Se dispara cada vez que el visitante hace clic en un enlace (<a href>) que apunta a otro dominio. Captura el href completo como metadata.url. Útil para saber qué enlaces externos pulsan más tus visitantes.
Eventos de interacción y cuotas
scroll_depth, time_on_page y outbound_click no cuentan para la cuota mensual de conversiones de tu plan. Solo cuentan los eventos explícitos.
Todos los eventos disponibles
Automáticos (los registra el SDK)
| Evento | Se dispara cuando | Cuenta para la cuota |
|---|---|---|
page_view | Se carga la página y el visitante llegó mediante un enlace de Revolink | Sí |
scroll_depth | El visitante abandona la página | No |
time_on_page | El visitante abandona la página | No |
outbound_click | El visitante hace clic en un enlace a un dominio externo | No |
Estándar (regístralos manualmente, recomendado)
Usa estos nombres para eventos que corresponden a etapas habituales del embudo. Aparecen en las tarjetas predefinidas del panel (leads, ventas, ingresos).
| Evento | Cuándo dispararlo | Admite value/currency |
|---|---|---|
lead | Se envía un formulario de contacto, se captura un email | No |
complete_registration | Se crea una cuenta nueva | No |
initiate_checkout | Se abre la página de pago | No |
subscribe | Se inicia una suscripción | Sí |
purchase | Se completa un pago | Sí |
view_content | Se ve una página de contenido clave (producto, precios) | No |
Lógica del embudo
lead tiene deduplicación: si la misma combinación de sesión + enlace ya tiene un evento lead, no se inserta un segundo. Así se evita contar dos veces los reenvíos de formularios. Los eventos personalizados con countAs: 'lead' reciben la misma deduplicación.
Los eventos que tienen un value definido (incluidos los de nombre no estándar) se cuentan como ventas en el panel.
Eventos personalizados
Puedes disparar cualquier nombre de evento de hasta 64 caracteres. Los eventos personalizados aparecen en el desglose por evento de la página Conversiones junto con los estándar. Cuentan para tu cuota mensual.
revolink.track('video_played');
revolink.track('calculator_used', { tool: 'roi' });
revolink.track('coupon_applied', { code: 'SUMMER10' }, 0, 'USD');
Por defecto, los eventos personalizados aparecen como clics en el resumen del panel (recuentos de Leads / Ventas). Para que cuenten como leads o ventas, añade countAs a los metadatos:
revolink.track('signup_completed', { countAs: 'lead' });
revolink.track('order_placed', { countAs: 'sale' }, 59.99, 'USD');
Valores permitidos: 'lead', 'sale'. Si omites countAs, el evento cuenta como clic (valor por defecto).
Seguimiento mediante atributos HTML
No hace falta JavaScript: añade data-revolink-action a cualquier elemento y el SDK dispara el evento automáticamente cuando se hace clic en él:
<button
data-revolink-action="purchase"
data-revolink-value="49.99"
data-revolink-currency="USD"
data-revolink-metadata='{"plan":"pro"}'>
Buy now
</button>
| Atributo | Obligatorio | Descripción |
|---|---|---|
data-revolink-action | Sí | Nombre del evento a disparar |
data-revolink-value | No | Valor monetario (número) |
data-revolink-currency | No | Código de moneda de 3 letras |
data-revolink-metadata | No | Objeto JSON con datos adicionales (hasta 10 claves) |
Identificación de usuarios
Llama a revolink.setUser() antes de registrar eventos para asociar un identificador a cada evento. Esto mejora la atribución cuando una misma persona visita desde varios dispositivos o en distintas sesiones.
revolink.setUser({
userId: 'user_123', // your internal user ID
hashedEmail: sha256(email) // SHA-256 hash of the email, never raw
});
Nunca envíes el email en claro
Aplica siempre un hash SHA-256 al email antes de pasarlo. Revolink solo guarda hashedEmail y no puede revertirlo.
Tras llamar a setUser, todas las llamadas posteriores a revolink.track() de esa sesión incluyen los identificadores.
Seguimiento desde el servidor
Enviar eventos desde tu backend evita los bloqueadores de anuncios y ITP (Intelligent Tracking Prevention). Úsalo para eventos de alto valor, como las compras, donde la precisión importa más.
Endpoint: POST /apiv1/track-conversion
Autenticación: Authorization: Bearer YOUR_KEY
Para protegerte de peticiones falsificadas, Revolink admite la firma de peticiones con HMAC. Tu secreto HMAC aparece en la pestaña Seguimiento de conversiones, en HMAC Secret.
// Node.js example
const crypto = require('crypto');
const payload = JSON.stringify({
event: 'purchase',
value: 49.99,
currency: 'USD',
userId: 'user_123',
linkSlug: 'my-campaign' // optional — attribute to a specific link
});
const signature = crypto
.createHmac('sha256', HMAC_SECRET)
.update(payload)
.digest('hex');
fetch('https://api.revolink.link/apiv1/track-conversion', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer YOUR_KEY`,
'X-Revolink-Signature': signature
},
body: payload
});
Campos del cuerpo:
| Campo | Tipo | Descripción |
|---|---|---|
event | string | Nombre del evento (obligatorio) |
value | number | Valor monetario |
currency | string | Código de moneda ISO de 3 letras |
sessionId | string | ID de sesión (para vincular con una sesión del navegador) |
userId | string | Tu ID de usuario interno |
hashedEmail | string | Hash SHA-256 del email del usuario |
linkSlug | string | Slug del enlace de Revolink al que atribuir este evento |
ruleId | string | ID de la regla de enrutamiento (para atribución a nivel de regla) |
abVariantId | string | ID de la variante A/B (para atribución a nivel A/B) |
metadata | object | Datos personalizados clave/valor (hasta 10 claves, 64 caracteres cada una). Define countAs: 'lead' o countAs: 'sale' para controlar cómo se cuenta un evento personalizado en los resúmenes del panel. |
page | string | URL de la página donde ocurrió el evento |
referrer | string | URL del referente |
Si conversionHmacSecret está definido en tu espacio de trabajo, la cabecera X-Revolink-Signature es obligatoria: las peticiones sin una firma válida se rechazan.
Ver los datos de conversión
Ve a la sección Conversiones del menú izquierdo.

La página tiene dos pestañas:
Pestaña Eventos
Muestra todos los eventos registrados (salvo los eventos automáticos de interacción).
Arriba: métricas de resumen: conversiones totales, recuento de leads, recuento de ventas e ingresos por moneda.
Debajo: un gráfico de conversiones del periodo seleccionado y una tabla de eventos individuales con nombre del evento, dispositivo, página, valor y marca de tiempo.
Filtros: acota los datos por nombre de evento, tipo de dispositivo, moneda, valor o slug del enlace.
Pestaña Engagement

Muestra las métricas automáticas de interacción:
- Profundidad de desplazamiento: distribución de hasta dónde bajaron los visitantes (25%, 50%, 75%, 100%)
- Tiempo en la página: desglose de sesiones por duración: menos de 30 s, de 30 a 60 s, más de 60 s; además de la media
- Clics salientes: las URL externas más pulsadas, con su recuento
Atribución: enlaces, reglas y variantes A/B
Cada evento se atribuye al enlace, la regla de enrutamiento y la variante A/B concretos con los que coincidió el visitante al hacer clic en tu enlace.
Puedes ver este desglose en:
- Analítica del enlace: abre cualquier enlace, ve a la pestaña Analítica y baja hasta Conversiones para ver los eventos atribuidos a ese enlace
- Página Conversiones: filtra por enlace para ver solo los eventos de una campaña concreta

Si ejecutas una prueba A/B o reglas de enrutamiento en un enlace, los datos de conversión muestran los resultados por regla y por variante, para que puedas comparar directamente qué versión convierte mejor.
Regenerar la clave
Puedes regenerar la clave de tu espacio de trabajo en cualquier momento desde Configuración del espacio de trabajo → Seguimiento de conversiones (solo para propietarios del espacio de trabajo).
Actualiza de inmediato tu etiqueta de script
Tras regenerarla, la clave antigua deja de funcionar. Cualquier página que siga usando la clave antigua registrará una advertencia en la consola del navegador y dejará de rastrear. Actualiza cuanto antes el atributo data-workspace-key de tu etiqueta de script en todas las páginas.

Límites del plan
Cada plan incluye una cuota mensual de eventos de conversión. Los eventos de interacción (scroll_depth, time_on_page, outbound_click) no cuentan para la cuota; solo cuentan los eventos explícitos.
Al alcanzar la cuota, los eventos nuevos se rechazan con HTTP 429 y recibes una notificación. Los eventos existentes se conservan. La cuota se restablece con tu ciclo de facturación.
Preguntas frecuentes
¿El SDK rastrea a los visitantes que no llegaron desde un enlace de Revolink?
No. El SDK busca una cookie de atribución de Revolink (_rvl_rl). Si no está, el SDK sale de inmediato y no rastrea nada. Es a propósito: solo se cuenta el tráfico que se origina en tus enlaces.
¿Qué pasa si un visitante bloquea JavaScript o usa un bloqueador de anuncios?
Los eventos del SDK en el navegador se bloquearán. Usa el seguimiento desde el servidor para los eventos de alto valor que no puedes permitirte perder.
¿Puedo registrar el mismo evento desde el SDK del navegador y desde el servidor?
Puedes, pero podrías contar la misma conversión dos veces. Usa sessionId en el evento del servidor para vincularlo con la sesión del navegador y mantén tu lógica coherente.
¿Se guardan los datos del email de forma segura?
Revolink nunca guarda direcciones de email en claro. Solo se guarda el hash SHA-256. Debes aplicar tú mismo el hash al email antes de llamar a revolink.setUser() o de incluirlo en un evento del servidor.
¿Qué es la firma HMAC y la necesito?
La firma HMAC permite a Revolink verificar que los eventos del servidor los envió tu backend y no están falsificados. Si tu espacio de trabajo tiene un secreto HMAC configurado, cada petición del servidor debe incluir la cabecera X-Revolink-Signature. Se recomienda encarecidamente en producción.
¿Puedo enviar eventos monetarios sin moneda?
No. Si pasas value sin currency (o al revés), ambos campos se descartan en silencio. Envíalos siempre juntos.
¿Qué nombres de evento debo usar?
Usa los nombres estándar (lead, purchase, subscribe, complete_registration, initiate_checkout) siempre que puedas: corresponden a los embudos predefinidos del panel. Los nombres personalizados también funcionan, pero solo aparecen en el desglose «por evento».
¿Cómo hago que un evento personalizado cuente como lead o venta?
Añade countAs: 'lead' o countAs: 'sale' a los metadatos del evento. Esto indica a Revolink cómo categorizar el evento en el resumen de Leads/Ventas y en los gráficos del embudo. Sin countAs, los eventos personalizados se cuentan como clics.
¿Cuántas claves de metadatos puedo asociar a un evento?
Hasta 10 claves por evento. Las claves se truncan a 64 caracteres. Los valores deben ser cadenas, números o booleanos.