Elido
Todo lo que hace Elido
Pro y Business

Smart links. One link, many destinations.

Enrutamiento por dispositivo, geolocalización, idioma, hora del día. Las reglas se evalúan en el POP del edge — la primera coincidencia gana, se vuelve al destino predeterminado. No cuesta nada además de un redireccionamiento normal con acierto de caché.

  • First-match rule engine at the edge
  • Sub-millisecond rule evaluation
  • A/B variants with z-test confidence
  • Time-windowed campaigns in UTC
elido.me/launch
elido.me/xDE · mobileFR · anyiOS · anyfallback/de/preise/fr/tarifsApp Store/en/pricing
Edge eval < 1 msfirst-match
5
Reglas por enlace (Pro)
<90s
Propagación de reglas al edge
z-test
Modelo de confianza A/B
6
Dimensiones de reglas

How it works

The redirect path, end to end

Smart-link rules are evaluated inside the same edge process that answers the redirect — there is no separate rules service to call. A cache-hit redirect with rules is indistinguishable from a plain one in latency.

  1. Step 1

    User clicks

    elido.me/x

    From email, QR, social, anywhere.

  2. Step 2

    Nearest edge POP

    Frankfurt · 4 ms

    Anycast routes to Hetzner FRA / OVH SGP / Hetzner ASH.

  3. Step 3

    Rule eval

    L1 cache · 0.2 ms

    First-match wins, no origin round-trip.

  4. Step 4

    302 → destination

    elido.me/x → /de/preise

    Click event fired async to Redpanda.

Rule builder

Rules that read like English

Every rule combines up to six dimensions — geo, device, OS, language, referrer, and time — joined with AND. Drag to reorder; first match wins. The fallback is always required, so a rule set never produces a 404.

  • Country
    ISO 3166-1 alpha-2 lists, e.g. DE, AT, CH
  • Device & OS
    iOS, Android, Windows, macOS, Linux
  • Language
    Accept-Language with BCP-47 fallbacks
  • Time window
    UTC range with day-of-week filter
  • Referrer
    Exact or wildcard host match
Routing rules
elido.me/launch
  • 1
    ifCountry: DE, AT, CHANDDevice: Mobile
    /de/preise
    ⋮⋮
  • 2
    ifCountry: FR, BEANDLanguage: fr-*
    /fr/tarifs
    ⋮⋮
  • 3
    ifOS: iOS
    App Store · apps.apple.com/...
    ⋮⋮
  • 4
    ifTime: Mon–Fri 09–17 UTCANDReferrer: newsletter.*
    /promo/q2
    ⋮⋮
  • else
    /en/pricing— fallback (required)
4 active rules · evaluated in orderLive · propagating to edge

Real-world routing

Same short link. Different landing per visitor.

The two patterns we see most: device-fork to native app stores with a desktop fallback, and country-fork for localised pricing pages. Both compose with A/B splits on the fallback path.

iPhoneiOS · Safari
elido.me/launch
Open in App Store
apps.apple.com/app/elido
Get the app
PixelAndroid · Chrome
elido.me/launch
Open in Play
play.google.com/store/apps/elido
Install
DesktopmacOS · any browser
elido.me/launch
elido.app/launch
Web onboarding, no install.
Continue

Country routing in production

An EU SaaS routing brand.app/pricing by visitor country. The fallback (everyone else) lands on the English page.

  • DE · Germany
    /de/preise
  • FR · France
    /fr/tarifs
  • ES · Spain
    /es/precios
  • IT · Italy
    /it/prezzi
  • PL · Poland
    /pl/cennik
  • NL · Netherlands
    /nl/prijzen
  • SE · Sweden
    /sv/priser
  • UA · Ukraine
    /uk/tsiny
  • · Everyone else
    /en/pricing
A/B split — elido.me/launch
7 days · 4,009 clicks
AA · /pricing-v1
1,842 clicks · CTR 4.1%
weight 50%45.9% of traffic
BB · /pricing-v2
Leading
2,167 clicks · CTR 4.8%
weight 50%54.1% of traffic
Z-test confidence
94%
Sample floor
200 / variant
Lift over A
+17.1%

A/B testing

Split traffic. Watch confidence climb.

Up to 5 variants per link with weighted or round-robin splits. Each variant tracks its own click time-series. The dashboard surfaces a two-proportion z-test as a directional indicator — we don’t hide the math.

  • Weighted (sums to 100) or round-robin
  • Per-variant click time-series
  • Z-test confidence over a configurable sample floor
  • Winner-picks-all locks the link to the leading variant
  • Composes with rules — A/B applies to the fallback path

What you can do

  • Coincidencia de país ISO y zona horaria IANA
  • Orientación a móvil / tablet / escritorio
  • Ventanas de tiempo con filtros por día de la semana
  • Expresiones regulares de User-Agent para usuarios avanzados
  • Límite de clics por enlace (max_clicks)
  • Variantes A/B con ponderación o rotación

Qué hace realmente el motor de reglas de smart-links

El enrutamiento geográfico y la segmentación por dispositivo son lo básico. Los detalles a continuación explican los casos extremos que complican las implementaciones simples.

Modelo de evaluación de reglas
01

La primera coincidencia gana, evaluada en el POP del edge — sin viaje de ida y vuelta al origen

Las reglas se almacenan en Redis (caché L2) y son evaluadas por el servicio edge-redirect en cada solicitud, dentro del mismo proceso que realiza la redirección — no hay un motor de reglas separado al que llamar. La evaluación de reglas añade menos de 1 ms a una redirección con acierto en caché. El orden de evaluación es el que establezcas en el dashboard o API; arrastra para reordenar o usa el campo de orden en la API. La semántica de 'primera coincidencia' significa que colocas tus reglas más específicas primero (ej. 'móvil + Alemania + lunes por la mañana → página de promoción') y tus reglas generales al final. Si ninguna regla coincide, se sirve el destino fallback — el fallback es obligatorio, no puede estar vacío. Los cambios en las reglas se propagan de api-core a Redis en menos de 30 segundos; el TTL de la caché LRU del edge para enlaces con reglas es de 60 segundos, por lo que la ventana de propagación completa es inferior a 90 segundos.

Dimensiones de reglas
02

Seis dimensiones: geo, dispositivo, OS, idioma, referente y tiempo

Cada regla puede combinar hasta seis dimensiones en una sola condición. Geo: lista de códigos de país ISO 3166-1 alpha-2 (uno o más países). Tipo de dispositivo: móvil, tablet, escritorio — derivado del User-Agent. OS: iOS, Android, Windows, macOS, Linux — también del User-Agent. Idioma: coincidencia de cabecera Accept-Language (etiquetas de idioma BCP 47; 'fr' coincide con 'fr-FR', 'fr-CA', etc.). Dominio referente: coincidencia exacta o con comodines contra el dominio de la cabecera Referer (útil para enrutar tráfico social vs email vs directo). Tiempo: ventana de tiempo UTC con filtro opcional de día de la semana (ej. 'Lun–Vie 09:00–17:00 UTC'). El regex de User-Agent está disponible para usuarios avanzados que necesiten segmentar una versión específica de navegador o rastreador; no está expuesto en el dashboard por defecto, solo vía API. Las múltiples dimensiones en una sola regla se combinan con AND; un enlace puede tener hasta 5 reglas (Pro) o ilimitadas (Business).

A/B testing
03

Splits A/B ponderados con confianza z-test — hasta 5 variantes por enlace

Un enlace puede tener hasta 5 variantes de destino. El tráfico se divide por peso (configurable por variante; los pesos deben sumar 100) o round-robin. Cada variante rastrea su propia serie temporal de clics para que puedas ver si el efecto es constante a lo largo del día. El modelo de confianza es un z-test de dos proporciones a nivel de clic: el dashboard muestra 'la variante A lidera con X% de confianza' una vez que ambas variantes superan una muestra mínima (por defecto 200 clics cada una, configurable hasta 1,000). Reportamos la confianza bruta del z-test; no aplicamos correcciones de pruebas secuenciales. Las variantes A/B y las reglas de smart-links pueden coexistir en el mismo enlace: las reglas se evalúan primero, y el split A/B se aplica solo a la ruta de fallback. Así puedes enrutar a los usuarios de iOS incondicionalmente mientras realizas un A/B testing de dos destinos para todos los demás. El botón de 'el ganador se lo lleva todo' bloquea el enlace a la variante líder y elimina las otras — esto es irreversible.

Reglas programadas
04

Reglas con ventana de tiempo para campañas estacionales y basadas en eventos

Las reglas de tiempo te permiten configurar una regla que se activa y desactiva según un horario sin intervención manual. El uso típico: una regla para una página promocional activa desde el Black Friday 00:00 UTC hasta el Cyber Monday 23:59 UTC, que luego vuelve automáticamente al destino perenne. Las reglas se evalúan en UTC; si tu campaña depende de la zona horaria, conviértela a UTC al momento de la configuración. Las reglas programadas se evalúan de la misma manera que las reglas estáticas — en el edge, sin viaje de ida y vuelta al origen. El dashboard muestra una vista de línea de tiempo de las reglas programadas para que las ventanas superpuestas sean visibles. Caso extremo: si dos reglas de ventana de tiempo se superponen y ambas coinciden, gana la que tenga el índice de orden más bajo (primera coincidencia). No hay detección de conflictos — las reglas superpuestas son tu responsabilidad de revisar.

Cadenas de fallback
05

El destino fallback es obligatorio — sin errores 404 cuando las reglas no coinciden

Cada smart-link debe tener un destino fallback. No hay una opción de 'mostrar una página de error si ninguna regla coincide' — el fallback es la red de seguridad. El fallback puede ser cualquier URL; también se utiliza como el destino canónico para Google Bot y otros rastreadores (las reglas de smart-links no se aplican a User-Agents de rastreadores conocidos para evitar confusiones en la indexación). Más allá del fallback principal, la expiración a nivel de enlace (expires_at) y el límite de clics (max_clicks) tienen cada uno su propia URL de destino expirado configurable — independiente del fallback de reglas. Así, un enlace puede tener: hasta 5 reglas de enrutamiento, un fallback para cuando no hay coincidencia de reglas, un destino para después de la fecha de expiración y un destino para después del límite de clics. Estos se componen limpiamente; los casos extremos están documentados en las guías.

Equipos que usan smart-links en producción

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

Retiramos un servicio de redirección en Node.js que nos costaba 40 ms de ida y vuelta. Los smart-links en Elido evalúan las reglas en el edge; la redirección es tan rápida como un enlace corto normal. El servicio de reglas eran 600 líneas de código que ya no mantenemos.

E
Equipo de Growth, app B2C, Madrid
Ingeniero Principal

Las reglas de ventana de tiempo para contenido estacional nos permiten configurar campañas con antelación y olvidarnos. Antes eso era un cambio de redirección manual a las 2 AM. Ahora es una regla programada y un recordatorio en el calendario para revisar el resultado.

E
Equipo de Campañas, grupo de medios, Varsovia
Gerente de Campañas Digitales

La visualización de confianza A/B en el dashboard terminó con la discusión de '¿es eso estadísticamente significativo?' en nuestro standup. Miramos el número del z-test, acordamos un umbral y seguimos adelante.

E
Equipo de Producto, plataforma SaaS, Lisboa
Gerente de Producto

Smart-links de Elido vs geo de Bitly + geo de Rebrandly

Tanto Bitly como Rebrandly ofrecen enrutamiento geográfico. Las diferencias radican en la profundidad de las reglas, la latencia de evaluación y la capacidad A/B.

FeatureElidoBitlyRebrandly
Dimensiones de reglasGeo, dispositivo, OS, idioma, referente, tiempoGeo + dispositivo (limitado)Geo + dispositivo
Variantes A/B por enlaceHasta 5 — ponderadas + confianza z-testNo disponibleNo disponible
Reglas evaluadas en el edgeSí — sin viaje de ida y vuelta al origenRedirecciones servidas en el edge; la evaluación de reglas varíaVaría según el plan
Tiempo de propagación de reglasMenos de 90 segundosNo documentadoNo documentado
Reglas programadas / ventanas de tiempoSí — ventana UTC, filtro de día de la semanaNo disponibleNo disponible
Máximo de reglas por enlace5 en Pro, ilimitadas en BusinessGeo: 1 por enlaceVaría según el plan
Destino fallbackObligatorio, configurableDestino por defectoDestino por defecto
Límite de clicsSí — por enlace, por varianteNo disponibleNo disponible

Preguntas sobre smart-links

¿Qué tan rápido se propagan los cambios de reglas?

api-core envía los cambios de reglas a Redis en menos de 30 segundos tras guardar. El servicio edge-redirect tiene una caché LRU en el proceso con un TTL de 60 segundos para enlaces con reglas. Propagación completa: menos de 90 segundos en el peor de los casos. Si necesitas una propagación más rápida (ej. corte en vivo de un evento), la API tiene un endpoint para invalidar la caché que fuerza la invalidación de Redis inmediatamente — el LRU del edge fallará y volverá a obtener de Redis en segundos.

¿Qué sucede si dos reglas coinciden con la misma solicitud?

La primera coincidencia gana — se aplica la regla con el índice de orden más bajo. No hay detección de conflictos ni fusión. Es tu responsabilidad ordenar las reglas correctamente y evitar ventanas de tiempo o listas de países superpuestas. La herramienta de vista previa de reglas en el dashboard te permite simular una solicitud de prueba contra el conjunto de reglas actual para verificar qué regla se activa.

¿Se aplican las reglas a Google Bot y otros rastreadores?

No. Los patrones de User-Agent de rastreadores conocidos se excluyen de la evaluación de reglas; los rastreadores siempre reciben el destino fallback. Esto es intencional — no quieres que el enrutamiento de tu smart-link afecte el comportamiento de indexación o sirva contenido específico por región a los rastreadores de forma involuntaria. La lista de exclusión de rastreadores es la misma que utiliza el edge para clasificar tráfico orgánico vs bots en analytics.

¿Cómo se calcula la confianza del z-test?

Z-test de dos proporciones a nivel de clic. La hipótesis nula es que ambas variantes tienen la misma tasa de clics. La confianza es 1 - p-value, expresada como porcentaje. No aplicamos la corrección de Bonferroni para múltiples variantes; ejecutar más de 2 variantes aumenta la tasa de falsos positivos. Para experimentos formales, exporta el flujo de clics brutos y ejecuta la prueba de significancia en tu almacén de datos. Mostramos el número en el dashboard como un indicador direccional, no como una conclusión causal.

¿Puedo configurar una regla que enrute solo en un referente específico?

Sí — la coincidencia de dominio referente es una de las seis dimensiones de las reglas. Puedes coincidir con un dominio exacto (ej. 'newsletter.example.com') o un comodín ('*.example.com'). Se utiliza la cabecera Referer; el recorte de referentes en HTTPS significa que no siempre obtendrás un referente de sitios HTTPS externos. Para enlaces compartidos en email (donde Referer suele estar ausente), las reglas de referente son menos fiables que las de geo o dispositivo.

¿Puedo usar smart-links en el nivel gratuito?

No. Los smart-links son una característica de Pro y Business. Los enlaces del nivel gratuito van a un único destino sin reglas de enrutamiento. Puedes previsualizar la interfaz de reglas en el nivel gratuito, pero las reglas no se evalúan en el edge hasta que actualices tu plan.

¿Hay analytics por variante?

Sí. Cada variante en un split A/B tiene su propia serie temporal de clics visible en la vista de analytics del enlace. Los desgloses por geo, dispositivo y referente se agregan a nivel de enlace, no por variante — los desgloses de dimensiones por variante están en el roadmap para Business.

¿Cuál es la diferencia entre un smart-link y un split A/B de campaña?

El A/B de smart-link es por enlace: divides el tráfico a diferentes destinos para la misma URL corta. El A/B de campaña es a nivel de campaña: ejecutas dos variantes de enlace corto (diferentes slugs) que apuntan al mismo destino, y usas los analytics de campaña para comparar qué slug obtuvo más clics. Diferentes casos de uso: el A/B a nivel de enlace es para probar destinos; el A/B de campaña es para probar creatividades y slugs.

¿Listo para probarlo?

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

Smart links — Un enlace corto, múltiples destinos. · Elido