Ś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
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.
- Step 01
Click short link
elido.me/saleEdge stamps UUID v4
cid: a3f9c1… - Step 02
click_id attached
?elido_cid=a3f9c1…URL param + first-party cookie
cid: a3f9c1… - Step 03
User converts
client_reference_id=a3f9c1…Stripe session carries click_id
cid: a3f9c1… - Step 04
Webhook fires
checkout.session.completedRevenue 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.
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 linkSummed conversion values, any currency, in the original denomination
- CVR over timeConversion rate time-series alongside click volume
- Forwarding to GA4 / Meta CAPIFanned out asynchronously after conversion is recorded
- DeduplicationIdempotent on click_id + event_name — double webhooks don't double-count
| Link | Clicks | Conv. | Revenue | CVR |
|---|---|---|---|---|
| elido.me/bfcm | 18,420 | 847 | €76,280 | 4.6% |
| elido.me/sale | 11,034 | 512 | €41,430 | 4.6% |
| elido.me/nl/shop | 8,901 | 398 | €29,104 | 4.5% |
| elido.me/email-q2 | 6,201 | 201 | €14,872 | 3.2% |
| elido.me/ig-bio | 5,032 | 88 | €6,104 | 1.7% |
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ę.
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.
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.
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.
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.
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.”
“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.”
“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ć.”
Ś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.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Serwerowa atrybucja konwersji | Tak — oparta na webhookach, weryfikowana podpisem | Brak | Brak |
| Integracja ze Stripe | checkout.session.completed + payment_intent.succeeded | Brak | Brak |
| Integracja z Shopify | orders/paid — weryfikacja podpisu, deduplikacja zamówień | Brak | Brak |
| Niestandardowy punkt końcowy konwersji | POST /v1/conversions — dowolny backend, dowolne zdarzenie | Brak | Brak |
| Przekazywanie GA4 / Meta CAPI | Tak — rozsyłane po zarejestrowaniu konwersji | Brak | Częściowo — tylko piksel po stronie klienta |
| Przychód w analityce | Podsumowanie przychodów na link i na kampanię z uwzględnieniem waluty | Brak | Tylko liczba konwersji, brak przychodu |
| Deduplikacja konwersji | Tak — idempotentność na click_id + event_name | Nie dotyczy | Brak |
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.
Keep reading
Analityka kliknięć ClickHouse — miejsce, w którym przychód z konwersji pojawia się obok liczby kliknięć.
Uruchamiaj piksele Meta CAPI i Google Ads przy przekierowaniu — strona pozyskiwania w pętli konwersji.
Atrybucja przychodów na poziomie kampanii — sprawdź, który wariant kampanii przyniósł największy przychód.
Wychodzące webhooki podpisane HMAC z Elido — odbieraj zdarzenia kliknięć z przypisaną konwersją we własnych systemach.
Gotowy, aby wypróbować?
Zacznij od planu darmowego, uaktualnij, gdy będziesz potrzebować niestandardowej domeny.