Conversion-Tracking. Attribute every dollar to the click that earned it.
Stripe- und Shopify-Webhook-Empfänger überprüfen Signaturen und verknüpfen den Umsatz mit dem ursprünglichen Kurzlink. Kampagnen-Attribution wird automatisch abgeleitet.
- 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
- Kampagnen-Attribution vom Link abgeleitet
- Umsatzübersicht im Dashboard
Wie server-seitige Conversion-Attribution von Ende zu Ende funktioniert
Client-seitige Pixel verlieren 20–40 % der Conversions aufgrund von Werbeblockern, iOS-Datenschutzbeschränkungen und Redirect-Ketten im Checkout. Die server-seitige Attribution schließt diese Lücke.
Jeder Klick erhält eine UUID, die an das Ziel übergeben wird – der Attributionsanker für den Conversion-Abgleich
Wenn ein Nutzer auf einen Elido Short-Link klickt, generiert der Edge eine click_id (UUID v4) und hängt diese als Query-Parameter (elido_cid) an die Ziel-URL an. Ihr Checkout-Flow sollte diesen Parameter über jede Seite im Trichter hinweg beibehalten – die meisten SPA-Router und Server-rendered Checkout-Stacks leiten unbekannte Query-Parameter standardmäßig weiter, aber mehrstufige Checkouts mit Redirect-Ketten könnten diese entfernen. Die click_id wird auch in einem Session-Cookie auf der Zieldomain gespeichert, wenn Sie das 2KB-Attributions-Snippet von Elido einbinden (optional). Testen Sie den vollständigen Checkout-Flow vor dem Livegang: Klicken Sie auf einen Short-Link, schließen Sie einen Testkauf ab und überprüfen Sie, ob die elido_cid im Conversion-POST erscheint. Falls nicht, fügen Sie eine Query-Parameter-Weiterleitung in Ihrer Checkout-Middleware hinzu. Dies ist der häufigste Fehler bei der Attributions-Einrichtung – nicht der Webhook, sondern der Verlust des Query-Parameters im Checkout.
Stripe-Webhook-Receiver verifiziert Signaturen und ordnet checkout.session.completed- und payment_intent.succeeded-Events zu
Registrieren Sie den Stripe-Webhook-Endpunkt von Elido in Ihrem Stripe-Dashboard (Einstellungen → Webhooks → Endpunkt hinzufügen). Elido überwacht checkout.session.completed- und payment_intent.succeeded-Events. Bei jedem Event verifiziert Elido den Stripe-Signature-Header unter Verwendung Ihres Webhook-Signing-Secret, extrahiert den Zahlungsbetrag und die Währung, sucht nach der click_id, die in der client_reference_id der Checkout-Session gespeichert ist (die Ihr Checkout ausfüllen muss – siehe Anleitung), und zeichnet die Conversion für diesen Klick auf. Der Umsatz und die click_id sind dann in der Analytics-Ansicht des Links und in der Kampagnen-Umsatzübersicht verfügbar. Das Feld client_reference_id der Checkout-Session ist der empfohlene Durchlaufweg; alternativ können Sie das Metadata-Feld von Stripe mit dem Key elido_cid verwenden, wenn Sie PaymentIntents direkt nutzen. Die vollständige Einrichtung dauert etwa 30 Minuten, wenn Ihre Stripe-Integration bereits Webhooks verarbeitet.
Shopify-Webhook orders/paid verknüpft den Bestellungsumsatz mit dem ursprünglichen Short-Link-Klick
Registrieren Sie den Shopify-Webhook-Endpunkt von Elido in Ihrer Shopify-Administration (Einstellungen → Benachrichtigungen → Webhooks → Webhook erstellen → Thema: orders/paid). Elido verifiziert den X-Shopify-Hmac-Sha256-Header, extrahiert die Gesamtsumme der Bestellung sowie die Währung und sucht die elido_cid aus den note_attributes der Bestellung (diese befüllen Sie über die Shopify-Warenkorb-API für note_attributes, wobei Sie die click_id aus dem Session-Cookie oder dem URL-Parameter übergeben). Für Shopify-Stores, die Online Store 2.0 Themes verwenden, fügt das Attributions-Snippet von Elido die click_id beim Klick automatisch in den Warenkorb ein. Zugerechnete Bestellungen werden anhand der Bestell-ID dedupliziert, sodass erstattete und ersetzte Bestellungen nicht doppelt gezählt werden. Shopify Plus-Stores mit benutzerdefinierten Checkout-Extensions können die click_id über einen zuverlässigeren Kanal übergeben – die Einrichtungsanleitung deckt den Plus-spezifischen Flow ab.
POST an den Conversion-Endpunkt von Elido von jedem Backend aus – nicht nur Stripe und Shopify
POST /v1/conversions mit einem JSON-Body: { click_id: "...", event_name: "purchase", value: 99.00, currency: "EUR", metadata: {} }. Die click_id ist die elido_cid des Klicks. Elido authentifiziert die Anfrage mit Ihrem Workspace-API-Key (HMAC-SHA256 über den Payload-Body wird für zusätzliche Sicherheit empfohlen). Dieser Endpunkt deckt alle Conversions ab, die nicht durch die nativen Stripe- oder Shopify-Integrationen gehandhabt werden: WooCommerce, benutzerdefinierte SaaS-Testaktivierungen, Lead-Formularübermittlungen oder Telefonanruf-Conversions, die von Ihrer Telefonieplattform getrackt werden. Das Feld event_name ist Freitext; verwenden Sie jede von Ihrem Team bevorzugte Namenskonvention – es wird in der Analytics-Ansicht unverändert angezeigt. Idempotenz: Senden Sie dieselbe Kombination aus click_id + event_name zweimal, und nur die erste wird aufgezeichnet. Event-Wert und Metadaten sind nur beim ersten Schreibvorgang veränderbar.
Conversions gleichzeitig an GA4 Measurement Protocol, Meta CAPI und Mixpanel Server-Track verteilen
Nachdem Elido eine Conversion für einen Klick aufgezeichnet hat, verteilt es das Event an alle von Ihnen aktivierten server-seitigen Weiterleitungsziele: GA4 Measurement Protocol (das Event erscheint in GA4 als server-seitiges Purchase-Event mit den ursprünglichen UTM-Parametern des Klicks), Meta Conversions API (das Event wird mit dem Client-seitigen Pixel dedupliziert, falls beide feuern, unter Verwendung der event_id aus der click_id) und Mixpanel Server-Track (das Event wird mit der distinct_id aus dem $identify-Aufruf von Mixpanel gesendet, sofern Sie Cross-Identity konfiguriert haben). Die Weiterleitung erfolgt asynchron nach der Aufzeichnung der Conversion – sie blockiert nicht die Webhook-Antwort an Stripe oder Shopify. Fehlgeschlagene Weiterleitungs-Events werden 24 Stunden lang mit exponentiellem Backoff wiederholt und dann mit einem Log-Eintrag verworfen. Sie können den Weiterleitungsstatus pro Conversion im Dashboard einsehen.
Revenue-Teams, die Elido Conversion-Tracking nutzen
Namen sind Platzhalter – echte Kunden-Fallstudien werden hier veröffentlicht, sobald sie erscheinen.
“iOS 14.5 hat unsere Meta-Pixel-Attribution bei 30 % der mobilen Käufe zunichtegemacht. Der server-seitige Stripe-Webhook über Elido hat das meiste davon gerettet – die Weitergabe der click_id in die client_reference_id von Stripe war der Schlüssel. Die Einrichtung dauerte einen Nachmittag.”
“Wir senden Testaktivierungen per POST an den benutzerdefinierten Conversion-Endpunkt von Elido. Die Kette Klick → Testversion → Bezahlversion ist jetzt von Ende zu Ende nachvollziehbar, ohne ein vollständiges CDP. Dank der Weiterleitung über das GA4 Measurement Protocol sind unsere Dashboards für bezahlte Kanäle wieder genau.”
“Der Shopify orders/paid-Webhook plus das Attributions-Snippet im Theme war eine eintägige Integration. Der Umsatz pro Kampagne ist jetzt eine Live-Zahl in unserem morgendlichen Standup, keine Tabellenformel mehr, die jemand manuell aktualisieren muss.”
Elido Conversion-Tracking vs. Bitly vs. Short.io
Bitly bietet kein server-seitiges Conversion-Tracking an. Short.io verfügt über grundlegende Conversion-Pixel. Das Conversion-Tracking von Elido ist server-seitig und leitet Daten an mehrere Werbeplattformen weiter.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Server-seitige Conversion-Attribution | Ja – Webhook-basiert, Signatur-verifiziert | Nicht verfügbar | Nicht verfügbar |
| Stripe-Webhook-Integration | checkout.session.completed + payment_intent.succeeded | Nicht verfügbar | Nicht verfügbar |
| Shopify-Webhook-Integration | orders/paid – Signatur-verifiziert, Bestell-Deduplizierung | Nicht verfügbar | Nicht verfügbar |
| Benutzerdefinierter Conversion-Endpunkt | POST /v1/conversions – jedes Backend, jedes Event | Nicht verfügbar | Nicht verfügbar |
| GA4 / Meta CAPI Weiterleitung | Ja – verteilt nach Aufzeichnung der Conversion | Nicht verfügbar | Teilweise – nur Client-seitiges Pixel |
| Umsatz in Analytics | Umsatzübersicht pro Link und Kampagne mit Währung | Nicht verfügbar | Nur Conversion-Anzahl, kein Umsatz |
| Conversion-Deduplizierung | Ja – Idempotenz bei click_id + event_name | Nicht anwendbar | Nicht verfügbar |
Fragen zum Conversion-Tracking
Was passiert, wenn die click_id vor der Conversion entfernt wird?
Wenn der Query-Parameter elido_cid vor dem Auslösen des Conversion-Events verloren geht – etwa durch eine Redirect-Kette, einen SPA-Router, der Query-Parameter nicht weiterleitet, oder einen Drittanbieter-Checkout, der unbekannte Parameter entfernt – kann die Conversion nicht zugeordnet werden. Testen Sie den gesamten Trichter: Klicken Sie auf einen Short-Link, verfolgen Sie die elido_cid über jede Seite bis zur Checkout-Bestätigung und verifizieren Sie, dass sie im Conversion-POST erscheint. Das Elido-Attributions-Snippet (ein kleiner JavaScript-Block) speichert die click_id zudem als Fallback in einem First-Party-Cookie – falls der URL-Parameter verloren geht, der Nutzer sich aber noch in derselben Browser-Sitzung befindet, kann die Attribution über das Cookie wiederhergestellt werden.
Wie werden Rückerstattungen bei der Conversion-Attribution gehandhabt?
Elido verarbeitet Rückerstattungs-Events nicht automatisch. Wenn ein Stripe charge.refunded- oder ein Shopify refunds/create-Event ausgelöst wird, bucht Elido den zugerechneten Umsatz nicht zurück. Sie können manuell ein Conversion-Event mit negativem Wert an den benutzerdefinierten Endpunkt senden, um die Attribution rückgängig zu machen. Ein Webhook-Listener für Rückerstattungen steht auf der Roadmap. Bis dahin sollten Sie, falls Sie genaue Nettoumsätze in Elido benötigen, die Rückerstattungssummen mithilfe des Datenexports und Ihres Warenwirtschaftssystems abziehen.
Funktioniert das Conversion-Tracking auch, wenn der Nutzer den Checkout auf einem anderen Gerät abschließt?
Nein – wenn der Nutzer den Short-Link auf dem Smartphone klickt, den Checkout aber am Desktop abschließt, wird die click_id nicht zwischen den Geräten übertragen. Die Conversion wird nicht zugeordnet, es sei denn, die Sitzung des Nutzers hat die elido_cid über den Gerätewechsel hinweg bewahrt (z. B. über ein eingeloggt-Konto, das sie gespeichert hat). Geräteübergreifende Attribution erfordert einen server-seitigen Identity-Graph, den Elido nicht bereitstellt. Für eine genaue geräteübergreifende Attribution nutzen Sie bitte Ihr MMP oder CDP zusammen mit den server-seitigen Conversions von Elido.
Welche Währungen werden für die Umsatzattribution unterstützt?
Alle ISO 4217-Währungscodes werden im Feld value eines Conversion-Events akzeptiert. Der Umsatz wird in der Originalwährung gespeichert; das Analytics-Dashboard zeigt den Umsatz in der Währung des jeweiligen Conversion-Events an. Wenn Sie eine zusammengefasste Ansicht in einer einzigen Währung benötigen, exportieren Sie die Conversion-Events und konvertieren Sie diese in Ihrem Warehouse – Elido führt keine FX-Währungsumrechnungen durch.
Wie richte ich die Stripe client_reference_id-Weitergabe ein?
Wenn Sie eine Stripe Checkout-Session erstellen, setzen Sie client_reference_id auf den Wert des URL-Parameters elido_cid des verweisenden Klicks. In JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). Der Webhook-Handler von Elido liest dieses Feld aus checkout.session.completed aus. Wenn Sie PaymentIntents direkt verwenden, nutzen Sie stattdessen das Metadata-Feld mit dem Key elido_cid. Die Einrichtungsanleitung unter /docs/guides/conversion-tracking enthält Copy-Paste-Code für Node, Python und Go.
Sind Conversion-Daten in den ClickHouse-Exporten enthalten?
Ja. Conversion-Events werden in einer separaten ClickHouse-Tabelle (conversions) neben der Tabelle für Klick-Events (clicks) gespeichert. Geplante Exporte nach S3, BigQuery oder Snowflake umfassen beide Tabellen. Der JOIN-Key ist die click_id. Eine SQL-Referenzabfrage, die Klicks mit Conversions verknüpft und den Umsatz pro Kampagnen-UTM-Quelle berechnet, finden Sie in der Export-Anleitung.
Kann ich Nicht-Umsatz-Conversions wie Formularübermittlungen oder Testversion-Aktivierungen tracken?
Ja – der benutzerdefinierte Conversion-Endpunkt akzeptiert jeden event_name und einen optionalen Wert (setzen Sie diesen auf 0 für Nicht-Umsatz-Events). Verwenden Sie Event-Namen wie 'trial_started', 'demo_booked' oder 'form_submitted'. Diese erscheinen in der Analytics-Ansicht des Links unter 'Conversions' mit dem Event-Namen als Label. Wenn Sie zusätzlich an GA4 weiterleiten, werden diese auf benutzerdefinierte GA4-Events gemappt. Die Anzahl der Conversions (nicht nur der Umsatz) ist pro Link und Kampagne sichtbar, unabhängig vom Event-Wert.
Wie hoch ist die Latenz vom Empfang des Conversion-Events bis zur Sichtbarkeit in den Analytics?
Vom Webhook-Empfang bis ClickHouse: In der Regel unter 5 Sekunden über dieselbe Redpanda-Pipeline wie Klick-Events. Die Attribution (Abgleich der Conversion mit dem ursprünglichen Klick) erfolgt synchron beim Webhook-Empfang – wenn die click_id aufgelöst werden kann, erfolgt die Attribution sofort. Die Downstream-Weiterleitung an GA4 / Meta CAPI / Mixpanel erfolgt asynchron und dauert zusätzlich 2–10 Sekunden. Die Umsatzzahl in der Analytics-Ansicht des Dashboards wird innerhalb von 30 Sekunden nach Empfang des Conversion-Events aktualisiert.
Keep reading
ClickHouse Klick-Analytics – hier erscheint der Conversion-Umsatz neben den Klick-Zahlen.
Feuern Sie Meta CAPI- und Google Ads-Pixel beim Redirect ab – die Akquisitionsseite des Conversion-Kreislaufs.
Umsatzattribution auf Kampagnenebene – sehen Sie, welche Kampagnenvariante den meisten Umsatz generiert hat.
HMAC-signierte ausgehende Webhooks von Elido – empfangen Sie conversion-attributierte Klick-Events in Ihren eigenen Systemen.
Bereit zum Ausprobieren?
Starten Sie mit dem kostenlosen Plan, upgraden Sie, wenn Sie eine benutzerdefinierte Domain benötigen.