Elido
Wszystko, co robi Elido
Pro i Business

Śledzenie konwersji. Attribute every dollar to the click that earned it.

Odbiorniki webhooków Stripe i Shopify weryfikują sygnatury i wiążą przychody z oryginalnym krótkim linkiem. Atrybucja kampanii jest automatycznie wyprowadzana.

  • 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
Server-side
Metoda atrybucji (brak luk w pikselach)
<5s
Opóźnienie zapisu zdarzenia konwersji
100%
Dokładność atrybucji (brak samplingu)
3
Miejsca docelowe przekazywania (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
  • Atrybucja kampanii wyprowadzana z linku
  • Podsumowanie przychodów w panelu

Jak działa serwerowa atrybucja konwersji od początku do końca

Piksele po stronie klienta tracą 20–40% konwersji z powodu adblokerów, ograniczeń prywatności iOS i łańcuchów przekierowań przy kasie. Atrybucja po stronie serwera eliminuje tę lukę.

Przekazywanie Click ID
01

Każde kliknięcie otrzymuje UUID przekazywany do celu — kotwicę atrybucji do dopasowywania konwersji

Kiedy użytkownik kliknie krótki link Elido, krawędź sieci generuje click_id (UUID v4) i dołącza go jako parametr zapytania (elido_cid) do docelowego adresu URL. Twój proces płatności powinien zachować ten parametr na każdej stronie lejka — większość routerów SPA i stosów renderowanych po stronie serwera domyślnie przekazuje nieznane parametry zapytania, ale wieloetapowe procesy płatności z łańcuchami przekierowań mogą je usunąć. click_id jest również przechowywany w pliku cookie sesji w domenie docelowej, jeśli osadzisz fragment kodu atrybucji Elido o rozmiarze 2 KB (opcjonalnie). Przetestuj pełny proces płatności przed uruchomieniem: kliknij krótki link, dokonaj testowego zakupu, sprawdź, czy elido_cid pojawia się w POST konwersji. Jeśli nie, dodaj przekazywanie parametrów zapytania w swoim oprogramowaniu pośredniczącym (middleware). To najczęstsza przyczyna niepowodzenia konfiguracji atrybucji — nie webhook, ale utrata parametrów zapytania podczas płatności.

Integracja ze Stripe
02

Odbiornik webhook Stripe weryfikuje podpisy i przypisuje zdarzenia checkout.session.completed oraz payment_intent.succeeded

Zarejestruj punkt końcowy webhooka Stripe Elido w swoim panelu Stripe (Ustawienia → Webhooki → Dodaj punkt końcowy). Elido nasłuchuje zdarzeń checkout.session.completed i payment_intent.succeeded. Przy każdym zdarzeniu Elido weryfikuje nagłówek Stripe-Signature przy użyciu Twojego klucza podpisywania webhooka, wyodrębnia kwotę płatności i walutę, wyszukuje click_id zapisany w client_reference_id sesji Checkout (który Twój proces płatności musi wypełnić — patrz przewodnik) i rejestruje konwersję dla tego kliknięcia. Przychód i click_id są następnie dostępne w widoku analityki linku i podsumowaniu przychodów z kampanii. Pole client_reference_id sesji Checkout jest zalecanym kanałem przekazywania; alternatywnie użyj pola metadata z kluczem elido_cid, jeśli używasz bezpośrednio PaymentIntents. Pełna konfiguracja zajmuje około 30 minut, jeśli Twoja integracja ze Stripe obsługuje już webhooki.

Integracja z Shopify
03

Webhook Shopify orders/paid łączy przychód z zamówienia z pierwotnym kliknięciem krótkiego linku

Zarejestruj punkt końcowy webhooka Shopify Elido w panelu administratora Shopify (Ustawienia → Powiadomienia → Webhooki → Utwórz webhook → Temat: orders/paid). Elido weryfikuje nagłówek X-Shopify-Hmac-Sha256, wyodrębnia sumę zamówienia i walutę oraz wyszukuje elido_cid w note_attributes zamówienia (wypełniasz to z koszyka za pomocą API Shopify cart note_attributes, przekazując click_id z pliku cookie sesji lub parametru URL). W przypadku sklepów Shopify korzystających z szablonów Online Store 2.0, fragment kodu atrybucji Elido automatycznie wstawia click_id do koszyka po kliknięciu. Przypisane zamówienia są deduplikowane według ID zamówienia, dzięki czemu zwrócone i zastąpione zamówienia nie są liczone podwójnie. Sklepy Shopify Plus z niestandardowymi rozszerzeniami checkout mogą przekazywać click_id przez bardziej niezawodny kanał — przewodnik konfiguracji obejmuje proces specyficzny dla wersji Plus.

Niestandardowe zdarzenia konwersji
04

Wysyłaj POST do punktu końcowego konwersji Elido z dowolnego backendu — nie tylko ze Stripe i Shopify

Wyślij POST na /v1/conversions z body JSON: { click_id: "...", event_name: "purchase", value: 99.00, currency: "EUR", metadata: {} }. click_id to elido_cid z kliknięcia. Elido uwierzytelnia żądanie za pomocą klucza API Twojego obszaru roboczego (dla dodatkowego bezpieczeństwa zalecane jest HMAC-SHA256 na body payloadu). Ten punkt końcowy obsługuje każdą konwersję, której nie obsługują natywne integracje ze Stripe lub Shopify: WooCommerce, niestandardowe aktywacje okresu próbnego SaaS, zgłoszenia formularzy kontaktowych, konwersje z połączeń telefonicznych śledzone przez Twoją platformę telefoniczną. Pole event_name to dowolny tekst; użyj dowolnej konwencji nazewnictwa preferowanej przez Twój zespół — jest ona wyświetlana w widoku analityki w niezmienionej formie. Idempotentność: wyślij dwukrotnie tę samą kombinację click_id + event_name, a zarejestrowana zostanie tylko pierwsza. Wartość zdarzenia i metadane są zmienne tylko przy pierwszym zapisie.

Przekazywanie dalej
05

Rozsyłaj konwersje jednocześnie do GA4 Measurement Protocol, Meta CAPI i Mixpanel server-track

Gdy Elido zarejestruje konwersję przypisaną do kliknięcia, rozsyła zdarzenie do wszystkich włączonych serwerowych miejsc docelowych: GA4 Measurement Protocol (zdarzenie pojawia się w GA4 jako serwerowe zdarzenie zakupu z oryginalnymi parametrami UTM z kliknięcia), Meta Conversions API (zdarzenie jest deduplikowane z pikselem po stronie klienta, jeśli oba są aktywne, przy użyciu event_id z click_id) oraz Mixpanel server-track (zdarzenie jest wysyłane z distinct_id z wywołania Mixpanel $identify, jeśli skonfigurowano tożsamość krzyżową). Przekazywanie odbywa się asynchronicznie po zarejestrowaniu konwersji — nie blokuje odpowiedzi webhooka do Stripe lub Shopify. Nieudane zdarzenia przekazywania są ponawiane z wykładniczym czasem oczekiwania przez 24 godziny, a następnie odrzucane z wpisem w logach. Status przekazywania dla każdej konwersji możesz sprawdzić w panelu.

Zespoły ds. przychodów korzystające ze śledzenia konwersji Elido

Nazwy są symboliczne — prawdziwe studia przypadków klientów pojawią się tutaj po ich opublikowaniu.

iOS 14.5 zabił naszą atrybucję Meta Pixel w 30% zakupów mobilnych. Serwerowy webhook Stripe przez Elido odzyskał większość z nich — kluczem było przekazanie click_id do client_reference_id w Stripe. Konfiguracja zajęła jedno popołudnie.

Z
Zespół E-commerce, marka D2C, Warszawa
Dyrektor ds. E-commerce

Wysyłamy aktywacje okresów próbnych do niestandardowego punktu końcowego konwersji Elido. Łańcuch kliknięcie → okres próbny → płatny plan jest teraz w pełni identyfikowalny bez potrzeby stosowania pełnego CDP. Przekazywanie GA4 Measurement Protocol sprawia, że nasze pulpity nawigacyjne płatnych kanałów są ponownie dokładne.

D
Dane marketingowe, B2B SaaS, Lizbona
Inżynier danych marketingowych

Webhook Shopify orders/paid oraz fragment kodu atrybucji w szablonie to była jednodniowa integracja. Przychód na kampanię to teraz liczba dostępna na żywo podczas naszych porannych spotkań, a nie formuła w arkuszu kalkulacyjnym, którą ktoś musi aktualizować.

I
Inżynieria wzrostu, fintech, Ryga
Inżynier ds. wzrostu (Growth Engineer)

Śledzenie konwersji Elido vs Bitly vs Short.io

Bitly nie posiada serwerowego śledzenia konwersji. Short.io posiada podstawowe piksele konwersji. Śledzenie konwersji Elido odbywa się po stronie serwera i umożliwia przekazywanie danych do wielu platform reklamowych.

FeatureElidoBitlyShort.io
Serwerowa atrybucja konwersjiTak — oparta na webhookach, weryfikowana podpisemBrakBrak
Integracja ze Stripecheckout.session.completed + payment_intent.succeededBrakBrak
Integracja z Shopifyorders/paid — weryfikacja podpisu, deduplikacja zamówieńBrakBrak
Niestandardowy punkt końcowy konwersjiPOST /v1/conversions — dowolny backend, dowolne zdarzenieBrakBrak
Przekazywanie GA4 / Meta CAPITak — rozsyłane po zarejestrowaniu konwersjiBrakCzęściowo — tylko piksel po stronie klienta
Przychód w analitycePodsumowanie przychodów na link i na kampanię z uwzględnieniem walutyBrakTylko liczba konwersji, brak przychodu
Deduplikacja konwersjiTak — idempotentność na click_id + event_nameNie dotyczyBrak

Pytania dotyczące śledzenia konwersji

Co jeśli click_id zostanie usunięty przed konwersją?

Jeśli parametr zapytania elido_cid zostanie utracony przed wystąpieniem zdarzenia konwersji — z powodu łańcucha przekierowań, braku przekazywania parametrów przez router SPA lub usunięcia nieznanych parametrów przez system płatności zewnętrznej firmy — konwersja nie może zostać przypisana. Przetestuj pełny lejek: kliknij krótki link, prześledź elido_cid na każdej stronie aż do potwierdzenia płatności, sprawdź, czy pojawia się w POST konwersji. Fragment kodu atrybucji Elido (mały blok JavaScript) ustawia również click_id w pliku cookie pierwszej strony (first-party cookie) jako rozwiązanie zapasowe — jeśli parametr URL zostanie utracony, ale użytkownik nadal znajduje się w tej samej sesji przeglądarki, atrybucja może zostać przywrócona z pliku cookie.

Jak obsługiwane są zwroty w atrybucji konwersji?

Elido nie przetwarza automatycznie zdarzeń zwrotu środków. Jeśli wystąpi zdarzenie Stripe charge.refunded lub Shopify refunds/create, Elido nie odejmuje przypisanego przychodu. Możesz ręcznie wysłać zdarzenie konwersji o ujemnej wartości do niestandardowego punktu końcowego, aby cofnąć atrybucję. Listener webhooków zwrotów znajduje się w planach rozwoju. Do tego czasu, jeśli potrzebujesz dokładnego przychodu netto w Elido, odejmij sumy zwrotów, korzystając z eksportu danych i swojego systemu zarządzania zamówieniami.

Czy śledzenie konwersji działa, jeśli użytkownik dokończy transakcję na innym urządzeniu?

Nie — jeśli użytkownik kliknie krótki link na telefonie, ale dokończy zakup na komputerze, click_id nie zostanie przeniesiony między urządzeniami. Konwersja nie zostanie przypisana, chyba że sesja użytkownika zachowała elido_cid pomimo zmiany urządzenia (np. poprzez zalogowane konto, które go zapisało). Atrybucja między urządzeniami wymaga serwerowego wykresu tożsamości (identity graph), którego Elido nie zapewnia. Aby uzyskać dokładność atrybucji między urządzeniami, korzystaj ze swojego MMP lub CDP obok serwerowych konwersji Elido.

Jakie waluty są obsługiwane w atrybucji przychodów?

Wszystkie kody walut ISO 4217 są akceptowane w polu value zdarzenia konwersji. Przychód jest przechowywany w oryginalnej walucie; pulpit nawigacyjny analityki pokazuje przychód w walucie każdego zdarzenia konwersji. Jeśli potrzebujesz zagregowanego widoku w jednej walucie, wyeksportuj zdarzenia konwersji i dokonaj konwersji w swojej hurtowni danych — Elido nie stosuje kursów wymiany walut.

Jak skonfigurować przekazywanie client_reference_id w Stripe?

Tworząc sesję Checkout Stripe, ustaw client_reference_id na wartość parametru URL elido_cid z odsyłającego kliknięcia. W JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). Odbiornik webhooków Elido odczytuje to pole ze zdarzenia checkout.session.completed. Jeśli korzystasz bezpośrednio z PaymentIntents, użyj pola metadata z kluczem elido_cid. Przewodnik konfiguracji pod adresem /docs/guides/conversion-tracking zawiera kod do skopiowania dla Node, Python i Go.

Czy dane konwersji są zawarte w eksportach ClickHouse?

Tak. Zdarzenia konwersji są przechowywane w oddzielnej tabeli ClickHouse (conversions) obok tabeli zdarzeń kliknięć (clicks). Zaplanowane eksporty do S3, BigQuery lub Snowflake obejmują obie tabele. Kluczem JOIN jest click_id. Przykładowe zapytanie SQL, które łączy kliknięcia z konwersjami i oblicza przychód na kampanię według źródła UTM, znajduje się w przewodniku po eksporcie.

Czy mogę śledzić konwersje bez przychodu, takie jak wypełnienia formularzy lub aktywacje okresów próbnych?

Tak — niestandardowy punkt końcowy konwersji akceptuje dowolne event_name i opcjonalną wartość (ustaw 0 dla zdarzeń bez przychodu). Używaj nazw zdarzeń takich jak 'trial_started', 'demo_booked', 'form_submitted'. Pojawiają się one w widoku analityki linku w sekcji 'Konwersje' z nazwą zdarzenia jako etykietą. Jeśli korzystasz również z przekazywania do GA4, mapują się one na niestandardowe zdarzenia GA4. Liczba konwersji (nie tylko przychód) jest widoczna dla każdego linku i kampanii, niezależnie od wartości zdarzenia.

Jakie jest opóźnienie od otrzymania zdarzenia konwersji do jego widoczności w analityce?

Od otrzymania webhooka do ClickHouse: zazwyczaj poniżej 5 sekund przez ten sam rurociąg Redpanda, co zdarzenia kliknięć. Atrybucja (dopasowanie konwersji do pierwotnego kliknięcia) odbywa się synchronicznie w momencie otrzymania webhooka — jeśli click_id zostanie rozpoznany, atrybucja jest natychmiastowa. Dalsze przekazywanie do GA4 / Meta CAPI / Mixpanel odbywa się asynchronicznie i dodaje 2–10 sekund. Kwota przychodu w widoku analityki panelu aktualizuje się w ciągu 30 sekund od otrzymania zdarzenia konwersji.

Gotowy, aby wypróbować?

Zacznij od planu darmowego, uaktualnij, gdy będziesz potrzebować niestandardowej domeny.

Śledzenie konwersji — Atrybucja zamówień Stripe i Shopify do kliknięć. · Elido