Inteligentne linki. One link, many destinations.
Kierowanie według urządzenia, geolokalizacji, języka, pory dnia. Zasady oceniane na krawędzi POP — pierwsze dopasowanie wygrywa, powrót do domyślnego miejsca docelowego. Nie kosztuje nic ponad normalne przekierowanie z pamięci podręcznej.
- First-match rule engine at the edge
- Sub-millisecond rule evaluation
- A/B variants with z-test confidence
- Time-windowed campaigns in UTC
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.
- Step 1
User clicks
elido.me/xFrom email, QR, social, anywhere.
- Step 2
Nearest edge POP
Frankfurt · 4 msAnycast routes to Hetzner FRA / OVH SGP / Hetzner ASH.
- Step 3
Rule eval
L1 cache · 0.2 msFirst-match wins, no origin round-trip.
- Step 4
302 → destination
elido.me/x → /de/preiseClick 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.
- CountryISO 3166-1 alpha-2 lists, e.g. DE, AT, CH
- Device & OSiOS, Android, Windows, macOS, Linux
- LanguageAccept-Language with BCP-47 fallbacks
- Time windowUTC range with day-of-week filter
- ReferrerExact or wildcard host match
- 1ifCountry: DE, AT, CHANDDevice: Mobile/de/preise⋮⋮
- 2ifCountry: FR, BEANDLanguage: fr-*/fr/tarifs⋮⋮
- 3ifOS: iOSApp Store · apps.apple.com/...⋮⋮
- 4ifTime: Mon–Fri 09–17 UTCANDReferrer: newsletter.*/promo/q2⋮⋮
- else/en/pricing— fallback (required)
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.
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 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
- Dopasowanie kraju ISO i strefy czasowej IANA
- Targetowanie mobilne / tablet / desktop
- Okna czasowe z filtrami dni tygodnia
- Wyrażenia regularne User-Agent dla zaawansowanych użytkowników
- Limit kliknięć na link (max_clicks)
- Warianty A/B z ważonym lub rotacyjnym rozkładem
Co tak naprawdę robi silnik reguł smart-link
Kierowanie geograficzne i na urządzenia to standard. Poniższe szczegóły wyjaśniają przypadki brzegowe, które utrudniają podstawowe wdrożenia.
Zasada pierwszeństwa (first-match), ewaluacja na brzegu sieci (edge POP) — bez odpytywania serwera źródłowego
Reguły są przechowywane w Redis (warstwa L2 cache) i oceniane przez usługę edge-redirect przy każdym żądaniu, w ramach tego samego procesu, który wykonuje przekierowanie — nie ma oddzielnego silnika reguł do wywołania. Ewaluacja reguły dodaje mniej niż 1 ms do przekierowania z cache. Kolejność ewaluacji jest zgodna z kolejnością ustawioną w panelu lub API; przeciągnij, aby zmienić kolejność, lub użyj pola order w API. Semantyka pierwszego dopasowania oznacza, że najbardziej szczegółowe reguły umieszczasz na początku (np. 'mobile + Niemcy + poniedziałek rano → strona promocyjna'), a reguły ogólne (catch-all) na końcu. Jeśli żadna reguła nie pasuje, serwowana jest lokalizacja zapasowa — fallback jest wymagany i nie może być pusty. Zmiany w regułach propagują się z api-core do Redis w mniej niż 30 sekund; czas TTL pamięci podręcznej LRU na krawędzi dla linków z regułami wynosi 60 sekund, więc pełne okno propagacji wynosi poniżej 90 sekund.
Sześć wymiarów: lokalizacja, urządzenie, system operacyjny, język, referrer i czas
Każda reguła może łączyć do sześciu wymiarów w jednym warunku. Lokalizacja: lista kodów krajów ISO 3166-1 alpha-2 (jeden lub więcej krajów). Typ urządzenia: telefon, tablet, komputer — pochodzące z User-Agent. System operacyjny: iOS, Android, Windows, macOS, Linux — również z User-Agent. Język: dopasowanie nagłówka Accept-Language (tagi językowe BCP 47; 'fr' pasuje do 'fr-FR', 'fr-CA' itp.). Domena referrer: dokładne lub wieloznaczne dopasowanie do domeny nagłówka Referer (przydatne do kierowania ruchu z mediów społecznościowych vs e-mail vs wejścia bezpośrednie). Czas: okno czasowe UTC z opcjonalnym filtrem dni tygodnia (np. 'Pon–Pt 09:00–17:00 UTC'). Wyrażenie regularne User-Agent jest dostępne dla zaawansowanych użytkowników, którzy muszą celować w konkretną wersję przeglądarki lub robota; nie jest ono domyślnie widoczne w panelu, a jedynie przez API. Wiele wymiarów w pojedynczej regule jest łączonych operatorem AND; link może mieć do 5 reguł (Pro) lub nieograniczoną liczbę (Business).
Ważone podziały A/B z ufnością z-test — do 5 wariantów na link
Link może mieć do 5 wariantów docelowych. Ruch jest dzielony według wagi (konfigurowalnej dla każdego wariantu; suma wag musi wynosić 100) lub metodą round-robin. Każdy wariant śledzi własny szereg czasowy kliknięć, dzięki czemu można sprawdzić, czy efekt jest spójny w różnych porach dnia. Model ufności to test z dla dwóch frakcji (two-proportion z-test) na poziomie kliknięć: panel pokazuje 'wariant A prowadzi z ufnością X%', gdy oba warianty przekroczą minimalną próbę (domyślnie 200 kliknięć każdy, konfigurowalne do 1 000). Raportujemy surową ufność z-test; nie stosujemy korekt testowania sekwencyjnego. Warianty A/B i reguły smart-link mogą współistnieć w tym samym linku: najpierw oceniane są reguły, a podział A/B dotyczy tylko ścieżki fallback. Możesz więc bezwarunkowo kierować użytkowników iOS, testując jednocześnie dwa miejsca docelowe dla całej reszty. Przycisk 'zwycięzca bierze wszystko' blokuje link do wiodącego wariantu i usuwa pozostałe — jest to nieodwracalne.
Reguły ograniczone czasowo dla kampanii sezonowych i wydarzeń
Reguły czasowe pozwalają ustawić regułę, która aktywuje się i dezaktywuje zgodnie z harmonogramem bez ręcznej interwencji. Typowe zastosowanie: reguła strony promocyjnej aktywna od Czarnego Piątku 00:00 UTC do Cyber Poniedziałku 23:59 UTC, która następnie automatycznie powraca do stałego miejsca docelowego. Reguły są oceniane w czasie UTC; jeśli Twoja kampania jest wrażliwa na strefy czasowe, dokonaj konwersji na UTC w momencie konfiguracji. Zaplanowane reguły są oceniane w ten sam sposób co reguły statyczne — na krawędzi, bez odpytywania serwera źródłowego. Panel sterowania pokazuje widok osi czasu zaplanowanych reguł, dzięki czemu nakładające się okna są widoczne. Przypadek brzegowy: jeśli dwie reguły czasowe nakładają się na siebie i obie pasują, wygrywa ta z niższym indeksem kolejności (pierwsze dopasowanie). Brak wykrywania konfliktów — za przegląd nakładających się reguł odpowiada użytkownik.
Wymagana docelowa lokalizacja zapasowa (fallback) — brak błędów 404, gdy reguły nie pasują
Każdy smart-link musi mieć miejsce docelowe fallback. Nie ma opcji 'pokaż stronę błędu, jeśli żadna reguła nie pasuje' — fallback jest siatką bezpieczeństwa. Lokalizacja zapasowa może być dowolnym adresem URL; jest również używana jako kanoniczne miejsce docelowe dla Google Bot i innych robotów (reguły smart-link nie są stosowane do znanych User-Agent robotów, aby uniknąć zamieszania w indeksowaniu). Poza głównym fallbackiem, wygaśnięcie na poziomie linku (expires_at) i limit kliknięć (max_clicks) mają własne, konfigurowalne adresy URL dla wygasłych linków — oddzielne od reguł fallback. Link może więc posiadać: do 5 reguł routingu, fallback dla braku dopasowania reguły, miejsce docelowe po dacie wygaśnięcia i miejsce docelowe po przekroczeniu limitu kliknięć. Elementy te łączą się w przejrzysty sposób; przypadki brzegowe są opisane w przewodnikach.
Zespoły używające smart-linków w środowisku produkcyjnym
Nazwy są obecnie symboliczne — prawdziwe nazwy klientów pojawią się wraz z publikacją studiów przypadków.
“Zrezygnowaliśmy z usługi przekierowań w Node.js, która kosztowała nas 40 ms opóźnienia. Smart-linki w Elido oceniają reguły na krawędzi; przekierowanie jest tak szybkie, jak zwykły krótki link. Usługa reguł to 600 linii kodu, których już nie musimy utrzymywać.”
“Reguły czasowe dla treści sezonowych pozwalają nam ustawić kampanie z wyprzedzeniem i iść spać. Wcześniej była to ręczna zmiana przekierowania o 2 w nocy. Teraz to zaplanowana reguła i przypomnienie w kalendarzu, by sprawdzić wynik.”
“Wyświetlanie ufności A/B w panelu zakończyło dyskusje typu 'czy to jest istotne statystycznie?' na naszych spotkaniach. Patrzymy na wynik testu z, uzgadniamy próg i idziemy dalej.”
Smart-linki Elido vs Bitly geo + Rebrandly geo
Zarówno Bitly, jak i Rebrandly oferują kierowanie geograficzne. Różnice tkwią w głębokości reguł, opóźnieniu ewaluacji i możliwościach A/B.
| Feature | Elido | Bitly | Rebrandly |
|---|---|---|---|
| Wymiary reguł | Lokalizacja, urządzenie, system operacyjny, język, referrer, czas | Lokalizacja + urządzenie (limitowane) | Lokalizacja + urządzenie |
| Warianty A/B na link | Do 5 — ważone + ufność z-test | Niedostępne | Niedostępne |
| Reguły oceniane na krawędzi | Tak — brak odpytywania serwera źródłowego | Przekierowania serwowane na krawędzi; ewaluacja reguł różna | Zależnie od planu |
| Czas propagacji reguł | Poniżej 90 sekund | Brak dokumentacji | Brak dokumentacji |
| Reguły zaplanowane / okna czasowe | Tak — okno UTC, filtr dni tygodnia | Niedostępne | Niedostępne |
| Maksymalna liczba reguł na link | 5 w Pro, nieograniczona w Business | Lokalizacja: 1 na link | Zależnie od planu |
| Miejsce docelowe fallback | Wymagane, konfigurowalne | Domyślne miejsce docelowe | Domyślne miejsce docelowe |
| Limit kliknięć | Tak — na link, na wariant | Niedostępne | Niedostępne |
Pytania o smart-linki
Jak szybko propagują się zmiany w regułach?
api-core wypycha zmiany reguł do Redis w ciągu 30 sekund od zapisu. Usługa edge-redirect posiada wewnątrzprocesową pamięć podręczną LRU z czasem TTL wynoszącym 60 sekund dla linków z regułami. Pełna propagacja: w najgorszym przypadku poniżej 90 sekund. Jeśli potrzebujesz szybszej propagacji (np. przełączenie podczas wydarzenia na żywo), API posiada punkt końcowy czyszczenia cache, który wymusza natychmiastową inwalidację w Redis — wówczas edge LRU pobierze nowe dane z Redis w ciągu kilku sekund.
Co się stanie, jeśli dwie reguły pasują do tego samego zapytania?
Wygrywa pierwsze dopasowanie — stosowana jest reguła o najniższym indeksie kolejności. Nie ma wykrywania konfliktów ani łączenia reguł. Twoim obowiązkiem jest poprawne uporządkowanie reguł oraz unikanie nakładających się okien czasowych lub list krajów. Narzędzie podglądu reguł w panelu pozwala symulować testowe żądanie względem aktualnego zestawu reguł, aby zweryfikować, która z nich zostanie uruchomiona.
Czy reguły dotyczą Google Bot i innych robotów (crawlers)?
Nie. Znane wzorce User-Agent robotów są wyłączone z ewaluacji reguł; roboty zawsze trafiają do miejsca docelowego fallback. Jest to zamierzone — nie chcesz, aby routing smart-link wpływał na indeksowanie lub nieumyślnie serwował robotom treści specyficzne dla regionu. Lista wykluczeń dla robotów jest taka sama, jak ta używana przez krawędź do klasyfikacji ruchu organicznego vs roboty w analityce.
Jak obliczana jest ufność testu z-test?
Test z dla dwóch frakcji na poziomie kliknięć. Hipoteza zerowa zakłada, że oba warianty mają taki sam współczynnik klikalności. Ufność to 1 - p-value, wyrażona w procentach. Nie stosujemy poprawki Bonferroniego dla wielu wariantów; uruchomienie więcej niż 2 wariantów zwiększa odsetek wyników fałszywie dodatnich. W przypadku formalnych eksperymentów wyeksportuj surowy strumień kliknięć i przeprowadź test istotności w swojej hurtowni danych. Liczbę w panelu prezentujemy jako wskaźnik kierunkowy, a nie ostateczny wniosek przyczynowy.
Czy mogę ustawić regułę kierującą tylko na podstawie konkretnego źródła (referrer)?
Tak — dopasowanie domeny referrer jest jednym z sześciu wymiarów reguł. Możesz dopasować dokładną domenę (np. 'newsletter.example.com') lub użyć symbolu wieloznacznego ('*.example.com'). Używany jest nagłówek Referer; usuwanie referrera w protokole HTTPS oznacza, że nie zawsze otrzymasz informację o źródle z zewnętrznych witryn HTTPS. W przypadku linków udostępnianych w wiadomościach e-mail (gdzie Referer zazwyczaj jest nieobecny), reguły oparte na źródle są mniej niezawodne niż reguły lokalizacji czy urządzenia.
Czy mogę używać smart-linków w planie darmowym?
Nie. Smart-linki są funkcją dostępną w planach Pro i Business. Linki w planie darmowym prowadzą do jednego miejsca docelowego bez żadnych reguł routingu. Możesz podejrzeć interfejs reguł w wersji darmowej, ale reguły nie będą oceniane na krawędzi do momentu przejścia na wyższy plan.
Czy dostępne są statystyki dla poszczególnych wariantów?
Tak. Każdy wariant w podziale A/B ma własny szereg czasowy kliknięć widoczny w widoku analityki linku. Podziały według lokalizacji, urządzenia i źródła są agregowane na poziomie linku, a nie poszczególnych wariantów — szczegółowe statystyki wymiarów dla wariantów znajdują się w planach rozwojowych dla Business.
Jaka jest różnica między smart-linkiem a podziałem A/B kampanii?
Podział A/B smart-link dotyczy pojedynczego linku: dzielisz ruch na różne miejsca docelowe dla tego samego krótkiego adresu URL. Podział A/B kampanii odbywa się na poziomie kampanii: uruchamiasz dwa warianty krótkich linków (różne slugi) kierujące do tego samego miejsca docelowego i używasz analityki kampanii, aby porównać, który slug uzyskał więcej kliknięć. Różne zastosowania: A/B na poziomie linku służy do testowania miejsc docelowych; A/B kampanii służy do testowania kreacji i slugów.
Keep reading
Universal Links + App Links — warstwa routingu specyficzna dla urządzeń mobilnych, która współpracuje z regułami smart-link.
A/B na poziomie kampanii, szablony UTM i zaplanowane eksporty — przepływ pracy kampanii zbudowany na bazie smart-linków.
Dane o kliknięciach, podział na lokalizacje/urządzenia i widoki kohortowe — jak ruch ze smart-linków wygląda w ClickHouse.
Jak zespoły produktowe wykorzystują smart-linki do routingu opartego na flagach funkcji, onboardingu i udostępniania w aplikacji.
Gotowy, aby wypróbować?
Zacznij od planu darmowego, uaktualnij, gdy będziesz potrzebować niestandardowej domeny.