Elido
Todo lo que hace Elido
Pro y Business

Seguimiento de conversiones. Attribute every dollar to the click that earned it.

Los receptores de webhooks de Stripe y Shopify verifican las firmas y vinculan los ingresos al enlace corto de origen. La atribución de la campaña se deriva automáticamente.

  • Server-side Stripe & Shopify attribution
  • click_id passthrough — no client JS needed
  • Revenue by link, campaign, day, platform
  • Automatic HMAC signature verification
elido.app — conversion attribution
elido.me/saleClickclick_id set?elido_cid=a3f9…cookie: cid=a3f9…Stripe Checkoutclient_ref = a3f9…€ 99.00 paidcheckout.session.completed webhook+€99 attributed
Server-side, no pixel gapsHMAC verified
Del lado del servidor
Método de atribución (sin brechas de píxel)
<5s
Retraso en la ingesta de eventos de conversión
100%
Precisión de atribución (sin muestreo)
3
Destinos de reenvío (GA4, Meta, Mixpanel)

How it works

The click_id travels the entire funnel

A UUID is stamped at click time and passed through every step — URL parameter, session cookie, Stripe session, Shopify order — until the webhook fires and closes the attribution loop server-side. No client JavaScript is required for the attribution itself.

  1. Step 01

    Click short link

    elido.me/sale

    Edge stamps UUID v4

    cid: a3f9c1…
  2. Step 02

    click_id attached

    ?elido_cid=a3f9c1…

    URL param + first-party cookie

    cid: a3f9c1…
  3. Step 03

    User converts

    client_reference_id=a3f9c1…

    Stripe session carries click_id

    cid: a3f9c1…
  4. Step 04

    Webhook fires

    checkout.session.completed

    Revenue attributed to originating link

    cid: a3f9c1…

Integrations

Drop-in webhook receivers for Stripe and Shopify

Register the endpoint in your dashboard, paste the signing secret, and attribution starts flowing. HMAC signature verification happens before any payload is processed — spoofed webhooks are rejected before they touch your data.

Stripe
checkout.session.completed · payment_intent.succeeded
HMAC verified
Webhook endpoint
POSThttps://api.elido.app/webhooks/stripe
1. Verify Stripe-Signature header
2. Extract client_reference_id → match click_id
3. Record revenue against originating link
Server-side, no client JavaScript required
Shopify
orders/paid — order deduplication included
HMAC verified
Webhook endpoint
POSThttps://api.elido.app/webhooks/shopify
1. Verify X-Shopify-Hmac-Sha256 header
2. Read click_id from order note_attributes
3. Deduplicate by order ID, attribute revenue
Server-side, no client JavaScript required

Revenue dashboard

Revenue per link, per campaign, per day

Every short link gets a live revenue total — sum of all attributable conversion values through that link. Filter by campaign tag, date range, or platform. Export as CSV or stream to BigQuery via scheduled exports.

  • Revenue per link
    Summed conversion values, any currency, in the original denomination
  • CVR over time
    Conversion rate time-series alongside click volume
  • Forwarding to GA4 / Meta CAPI
    Fanned out asynchronously after conversion is recorded
  • Deduplication
    Idempotent on click_id + event_name — double webhooks don't double-count
Revenue attribution — last 30 days
Live
Revenue trend168k total
LinkClicksConv.RevenueCVR
elido.me/bfcm18,420847
76,280
4.6%
elido.me/sale11,034512
41,430
4.6%
elido.me/nl/shop8,901398
29,104
4.5%
elido.me/email-q26,201201
14,872
3.2%
elido.me/ig-bio5,03288
6,104
1.7%
Total revenue
167,790
Total conversions
2,046
Avg CVR
4.1%

What you can do

  • Stripe checkout.session.completed
  • Stripe payment_intent.succeeded
  • Shopify orders/paid
  • Atribución de campaña derivada del enlace
  • Resumen de ingresos en el panel de control

Cómo funciona la atribución de conversiones del lado del servidor de extremo a extremo

Los píxeles del lado del cliente pierden entre un 20 y un 40% de las conversiones debido a bloqueadores de anuncios, restricciones de privacidad de iOS y cadenas de redireccionamiento de pago. La atribución del lado del servidor cierra la brecha.

Transferencia de ID de clic
01

Cada clic recibe un UUID que se pasa al destino: el ancla de atribución para la coincidencia de conversiones

Cuando un usuario hace clic en un enlace corto de Elido, el edge genera un click_id (UUID v4) y lo añade como un parámetro de consulta (elido_cid) a la URL de destino. Su flujo de pago debe preservar este parámetro a través de cada página del embudo; la mayoría de los enrutadores SPA y los stacks de pago renderizados en el servidor reenvían los parámetros de consulta desconocidos por defecto, pero las cadenas de pago de varios pasos con redireccionamientos pueden eliminarlos. El click_id también se almacena en una cookie de sesión en el dominio de destino si inserta el fragmento de atribución de 2KB de Elido (opcional). Pruebe el flujo de pago completo antes de lanzarlo: haga clic en un enlace corto, complete una compra de prueba y verifique que el elido_cid aparezca en el POST de conversión. Si no aparece, añada el reenvío de parámetros de consulta en su middleware de pago. Este es el fallo de configuración de atribución más común, no el webhook, sino la pérdida de parámetros de consulta en el pago.

Integración con Stripe
02

El receptor de webhooks de Stripe verifica las firmas y atribuye los eventos checkout.session.completed y payment_intent.succeeded

Registre el endpoint del webhook de Stripe de Elido en su panel de Stripe (Ajustes → Webhooks → Añadir endpoint). Elido escucha los eventos checkout.session.completed y payment_intent.succeeded. En cada evento, Elido verifica la cabecera Stripe-Signature utilizando su secreto de firma de webhook, extrae el importe del pago y la moneda, busca el click_id almacenado en el client_reference_id de la Checkout Session (que su pago debe completar, consulte la guía) y registra la conversión contra ese clic. Los ingresos y el click_id están entonces disponibles en la vista de analíticas del enlace y en el resumen de ingresos de la campaña. El campo client_reference_id de la Checkout Session es el paso recomendado; alternativamente, use el campo metadata de Stripe con la clave elido_cid si utiliza PaymentIntents directamente. La configuración completa toma unos 30 minutos si su integración con Stripe ya gestiona webhooks.

Integración con Shopify
03

El webhook orders/paid de Shopify vincula los ingresos del pedido al clic del enlace corto de origen

Registre el endpoint del webhook de Shopify de Elido en su administrador de Shopify (Ajustes → Notificaciones → Webhooks → Crear webhook → Tema: orders/paid). Elido verifica la cabecera X-Shopify-Hmac-Sha256, extrae el total del pedido y la moneda, y busca el elido_cid en los note_attributes del pedido (usted completa esto desde el carrito usando la API de note_attributes de Shopify, pasando el click_id de la cookie de sesión o del parámetro de la URL). Para las tiendas Shopify que usan temas Online Store 2.0, el fragmento de atribución de Elido inyecta el click_id en el carrito automáticamente al hacer clic. Los pedidos atribuidos se deduplican por ID de pedido para que los pedidos reembolsados y reemplazados no cuenten doble. Las tiendas Shopify Plus con extensiones de pago personalizadas pueden pasar el click_id a través de un canal más fiable; la guía de configuración cubre el flujo específico de Plus.

Eventos de conversión personalizados
04

Realice un POST al endpoint de conversión de Elido desde cualquier backend, no solo desde Stripe y Shopify

Realice un POST a /v1/conversions con un cuerpo JSON: { click_id: "...", event_name: "compra", value: 99.00, currency: "EUR", metadata: {} }. El click_id es el elido_cid del clic. Elido autentica la solicitud con la clave API de su espacio de trabajo (se recomienda HMAC-SHA256 sobre el cuerpo del payload para mayor seguridad). Este endpoint cubre cualquier conversión no gestionada por las integraciones nativas de Stripe o Shopify: WooCommerce, activaciones de prueba de SaaS personalizadas, envíos de formularios de clientes potenciales, conversiones de llamadas telefónicas rastreadas por su plataforma de telefonía. El campo event_name es texto libre; use cualquier convención de nomenclatura que su equipo prefiera: se muestra tal cual en la vista de analíticas. Idempotencia: envíe la misma combinación de click_id + event_name dos veces y solo se registrará la primera. El valor del evento y los metadatos son mutables solo en la primera escritura.

Reenvío descendente
05

Distribuya las conversiones al Protocolo de medición de GA4, Meta CAPI y el seguimiento de servidor de Mixpanel simultáneamente

Después de que Elido registre una conversión contra un clic, distribuye el evento a cualquier destino de reenvío del lado del servidor que haya habilitado: Protocolo de medición de GA4 (el evento aparece en GA4 como un evento de compra del lado del servidor con los parámetros UTM originales del clic), Meta Conversions API (el evento se deduplica contra el píxel del lado del cliente si ambos se activan, usando el event_id del click_id) y seguimiento de servidor de Mixpanel (el evento se envía con el distinct_id de la llamada $identify de Mixpanel si ha configurado la identidad cruzada). El reenvío ocurre de forma asíncrona después de que se registra la conversión: no bloquea la respuesta del webhook a Stripe o Shopify. Los eventos de reenvío fallidos se reintentan con un retroceso exponencial durante 24 horas y luego se descartan con una entrada en el log. Puede ver el estado del reenvío por conversión en el panel.

Equipos de ingresos que utilizan el seguimiento de conversiones de Elido

Los nombres son marcadores de posición: los casos de estudio de clientes reales aparecerán aquí a medida que se publiquen.

iOS 14.5 acabó con nuestra atribución de Meta Pixel en el 30% de las compras móviles. El webhook de Stripe del lado del servidor a través de Elido recuperó la mayor parte; la transferencia de click_id al client_reference_id de Stripe fue la clave. La configuración llevó una tarde.

E
Equipo de comercio electrónico, marca D2C, Varsovia
Director de Comercio Electrónico

Realizamos POST de activaciones de prueba al endpoint de conversión personalizado de Elido. La cadena clic → prueba → pago es ahora rastreable de extremo a extremo sin un CDP completo. El reenvío del Protocolo de medición de GA4 significa que nuestros paneles de canales de pago vuelven a ser precisos.

D
Datos de marketing, SaaS B2B, Lisboa
Ingeniero de Datos de Marketing

El webhook orders/paid de Shopify más el fragmento de atribución en el tema fue una integración de un día. Los ingresos por campaña son ahora un número en vivo en nuestro standup matutino, no una fórmula de hoja de cálculo que alguien tiene que actualizar.

I
Ingeniería de crecimiento, fintech, Riga
Ingeniero de Crecimiento

Seguimiento de conversiones de Elido vs Bitly vs Short.io

Bitly no tiene seguimiento de conversiones del lado del servidor. Short.io tiene píxeles de conversión básicos. El seguimiento de conversiones de Elido es del lado del servidor y se reenvía a múltiples plataformas publicitarias.

FeatureElidoBitlyShort.io
Atribución de conversiones del lado del servidorSí: basado en webhooks, con firma verificadaNo disponibleNo disponible
Integración con webhooks de Stripecheckout.session.completed + payment_intent.succeededNo disponibleNo disponible
Integración con webhooks de Shopifyorders/paid: firma verificada, deduplicación de pedidosNo disponibleNo disponible
Endpoint de conversión personalizadoPOST /v1/conversions: cualquier backend, cualquier eventoNo disponibleNo disponible
Reenvío a GA4 / Meta CAPISí: distribuido tras registrar la conversiónNo disponibleParcial: solo píxel del lado del cliente
Ingresos en analíticasResumen de ingresos por enlace y por campaña con monedaNo disponibleSolo recuento de conversiones, sin ingresos
Deduplicación de conversionesSí: idempotencia en click_id + event_nameNo aplicableNo disponible

Preguntas sobre el seguimiento de conversiones

¿Qué pasa si el click_id se elimina antes de la conversión?

Si el parámetro de consulta elido_cid se pierde antes de que se active el evento de conversión —debido a una cadena de redireccionamiento, a que el enrutador SPA no reenvía los parámetros de consulta o a que un pago de terceros elimina los parámetros desconocidos—, la conversión no podrá atribuirse. Pruebe el embudo completo: haga clic en un enlace corto, rastree el elido_cid a través de cada página hasta la confirmación de pago, verifique que aparezca en el POST de conversión. El fragmento de atribución de Elido (un pequeño bloque de JavaScript) también establece el click_id en una cookie de origen como respaldo: si el parámetro de la URL se pierde pero el usuario sigue en la misma sesión del navegador, la atribución puede recuperarse de la cookie.

¿Cómo se gestionan los reembolsos en la atribución de conversiones?

Elido no procesa automáticamente los eventos de reembolso. Si se activa un evento charge.refunded de Stripe o refunds/create de Shopify, Elido no debita los ingresos atribuidos. Puede realizar un POST de un evento de conversión de valor negativo al endpoint personalizado para revertir la atribución manualmente. Un receptor de webhooks de reembolsos está en la hoja de ruta. Hasta entonces, si necesita ingresos netos precisos en Elido, reste los totales de reembolso utilizando la exportación de datos y su sistema de gestión de pedidos.

¿Funciona el seguimiento de conversiones si el usuario completa el pago en un dispositivo diferente?

No. Si el usuario hace clic en el enlace corto en el móvil pero completa el pago en el escritorio, el click_id no se transfiere entre dispositivos. La conversión no se atribuirá a menos que la sesión del usuario haya preservado el elido_cid a través del cambio de dispositivo (por ejemplo, a través de una cuenta iniciada que lo almacenó). La atribución multidispositivo requiere un gráfico de identidad del lado del servidor, que Elido no proporciona. Para mayor precisión en la atribución multidispositivo, use su MMP o CDP junto con las conversiones del lado del servidor de Elido.

¿Qué monedas se admiten para la atribución de ingresos?

Se aceptan todos los códigos de moneda ISO 4217 en el campo de valor de un evento de conversión. Los ingresos se almacenan en la moneda original; el panel de analíticas muestra los ingresos en la moneda de cada evento de conversión. Si necesita una vista consolidada en una sola moneda, exporte los eventos de conversión y conviértalos en su almacén: Elido no aplica tasas de cambio FX.

¿Cómo configuro la transferencia del client_reference_id de Stripe?

Al crear una Checkout Session de Stripe, establezca el client_reference_id con el valor del parámetro de URL elido_cid del clic de referencia. En JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). El controlador de webhooks de Elido lee este campo de checkout.session.completed. Si utiliza PaymentIntents directamente, use el campo de metadatos con la clave elido_cid en su lugar. La guía de configuración en /docs/guides/conversion-tracking tiene código para copiar y pegar en Node, Python y Go.

¿Se incluyen los datos de conversión en las exportaciones de ClickHouse?

Sí. Los eventos de conversión se almacenan en una tabla de ClickHouse separada (conversions) junto a la tabla de eventos de clics (clicks). Las exportaciones programadas a S3, BigQuery o Snowflake incluyen ambas tablas. La clave de JOIN es click_id. Una consulta SQL de referencia que une clics con conversiones y calcula los ingresos por fuente UTM de campaña se encuentra en la guía de exportación.

¿Puedo rastrear conversiones que no sean de ingresos, como registros de formularios o activaciones de prueba?

Sí. El endpoint de conversión personalizado acepta cualquier event_name y un valor opcional (establecido en 0 para eventos que no son de ingresos). Use nombres de eventos como 'trial_started', 'demo_booked', 'form_submitted'. Estos aparecen en la vista de analíticas del enlace bajo 'Conversiones' con el nombre del evento como etiqueta. Si también reenvía a GA4, estos se mapean a eventos personalizados de GA4. Los recuentos de conversiones (no solo los ingresos) son visibles por enlace y por campaña, independientemente del valor del evento.

¿Cuál es la latencia desde la recepción del evento de conversión hasta la visibilidad en analíticas?

Recepción del webhook a ClickHouse: normalmente menos de 5 segundos a través del mismo pipeline de Redpanda que los eventos de clic. La atribución (hacer coincidir la conversión con el clic de origen) ocurre de forma síncrona al recibir el webhook: si el click_id se resuelve, la atribución es inmediata. El reenvío descendente a GA4 / Meta CAPI / Mixpanel es asíncrono y añade entre 2 y 10 segundos. El número de ingresos en la vista de analíticas del panel se actualiza en un plazo de 30 segundos tras la recepción del evento de conversión.

¿Listo para probarlo?

Empieza con el plan gratuito, actualiza cuando necesites un dominio personalizado.

Seguimiento de conversiones — Atribuye pedidos de Stripe y Shopify a clics. · Elido