Alles wat Elido doet
Pro & Business

Conversietracking. Ken elke euro toe aan de click die hem heeft opgeleverd.

Stripe- en Shopify-webhookontvangers verifiëren signatures en koppelen omzet terug aan de link waar de click vandaan kwam. Campagne-attributie wordt automatisch afgeleid.

  • Server-side Stripe- en Shopify-attributie
  • click_id-passthrough - geen client-JS nodig
  • Omzet per link, campagne, dag, platform
  • Automatische HMAC-signatureverificatie
elido.app - conversieattributie
elido.me/saleClickclick_id ingesteld?elido_cid=a3f9…cookie: cid=a3f9…Stripe Checkoutclient_ref = a3f9…€ 99.00 betaaldcheckout.session.completed-webhook+€99 toegewezen
Server-side, geen pixelgatenHMAC geverifieerd
Server-side
Attributiemethode (geen pixelgaten)
<5s
Ingestievertraging van conversie-events
100%
Attributienauwkeurigheid (geen sampling)
3
Forwarding-bestemmingen (GA4, Meta, Mixpanel)

Hoe het werkt

De click_id doorloopt de hele funnel

Een UUID wordt bij de click gestempeld en meegegeven bij elke stap - URL-parameter, sessiecookie, Stripe-sessie, Shopify-order - totdat de webhook afvuurt en de attributielus server-side sluit. Er is geen client-JavaScript nodig voor de attributie zelf.

  1. Stap 01

    Klik op short link

    elido.me/sale

    Edge stempelt UUID v4

    cid: a3f9c1…
  2. Stap 02

    click_id toegevoegd

    ?elido_cid=a3f9c1…

    URL-parameter + first-party cookie

    cid: a3f9c1…
  3. Stap 03

    Gebruiker converteert

    client_reference_id=a3f9c1…

    Stripe-sessie draagt click_id

    cid: a3f9c1…
  4. Stap 04

    Webhook vuurt af

    checkout.session.completed

    Omzet toegewezen aan oorspronkelijke link

    cid: a3f9c1…

Integraties

Plug-and-play webhookontvangers voor Stripe en Shopify

Registreer het endpoint in je dashboard, plak het signing secret, en de attributie begint te stromen. HMAC-signatureverificatie gebeurt vóórdat een payload wordt verwerkt - vervalste webhooks worden geweigerd voordat ze je data raken.

Stripe
checkout.session.completed · payment_intent.succeeded
HMAC geverifieerd
Webhookendpoint
POSThttps://api.elido.app/webhooks/stripe
1. Verifieer Stripe-Signature-header
2. Haal client_reference_id op → koppel aan click_id
3. Registreer omzet tegen oorspronkelijke link
Server-side, geen client-JavaScript nodig
Shopify
orders/paid - inclusief orderdeduplicatie
HMAC geverifieerd
Webhookendpoint
POSThttps://api.elido.app/webhooks/shopify
1. Verifieer X-Shopify-Hmac-Sha256-header
2. Lees click_id uit note_attributes van de order
3. Dedupliceer op order-ID, ken omzet toe
Server-side, geen client-JavaScript nodig

Omzetdashboard

Omzet per link, per campagne, per dag

Elke short link krijgt een live omzettotaal - de som van alle toewijsbare conversiewaarden via die link. Filter op campagnetag, datumbereik of platform. Exporteer als CSV of stream naar BigQuery via geplande exports.

  • Omzet per link
    Opgetelde conversiewaarden, elke valuta, in de originele denominatie
  • CVR over tijd
    Tijdreeks van conversieratio naast clickvolume
  • Forwarding naar GA4 / Meta CAPI
    Asynchroon doorgestuurd nadat de conversie is geregistreerd
  • Deduplicatie
    Idempotent op click_id + event_name - dubbele webhooks tellen niet dubbel
Omzetattributie - laatste 30 dagen
Live
Omzettrend168k totaal
LinkClicksConv.OmzetCVR
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%
Totale omzet
167,790
Totaal conversies
2,046
Gem. CVR
4.1%

Wat je kunt doen

  • Stripe checkout.session.completed
  • Stripe payment_intent.succeeded
  • Shopify orders/paid
  • Campagne-attributie afgeleid uit de link
  • Omzetoverzicht in het dashboard

Hoe server-side conversieattributie end-to-end werkt

Client-side pixels verliezen 20–40% van de conversies door adblockers, iOS-privacybeperkingen en checkout-redirectketens. Server-side attributie dicht dat gat.

Click-ID passthrough
01

Elke click krijgt een UUID die wordt meegegeven aan de bestemming - het attributieankerpunt voor conversiematching

Wanneer een gebruiker op een Elido short link klikt, genereert de edge een click_id (UUID v4) en voegt deze toe als queryparameter (elido_cid) aan de bestemmings-URL. Je checkout-flow moet deze parameter behouden op elke pagina in de funnel - de meeste SPA-routers en server-rendered checkout-stacks geven onbekende queryparameters standaard door, maar meerstaps-checkouts met redirectketens kunnen ze verwijderen. De click_id wordt ook opgeslagen in een sessiecookie op het bestemmingsdomein als je Elido's optionele attributiesnippet van 2KB embed. Test de volledige checkoutflow voordat je live gaat: klik op een short link, doorloop een testaankoop, controleer of elido_cid verschijnt in de conversie-POST. Zo niet, voeg dan doorgeven van queryparameters toe in je checkout-middleware. Dit is de meest voorkomende oorzaak van mislukte attributie - niet de webhook, maar verlies van de queryparameter in de checkout.

Stripe-integratie
02

Stripe-webhookontvanger verifieert signatures en attribueert checkout.session.completed- en payment_intent.succeeded-events

Registreer Elido's Stripe-webhookendpoint in je Stripe-dashboard (Settings → Webhooks → Add endpoint). Elido luistert naar checkout.session.completed- en payment_intent.succeeded-events. Bij elk event verifieert Elido de Stripe-Signature-header met je webhook signing secret, haalt het betaalbedrag en de valuta op, zoekt de click_id op die is opgeslagen bij de client_reference_id van de Checkout Session (die jouw checkout moet invullen - zie de gids), en registreert de conversie tegen die click. De omzet en click_id zijn vervolgens beschikbaar in de analytics-weergave van de link en in het campagne-omzetoverzicht. Het client_reference_id-veld van de Checkout Session is de aanbevolen doorgeefmethode; gebruik anders het metadata-veld van Stripe met key elido_cid als je rechtstreeks PaymentIntents gebruikt. De volledige setup duurt ongeveer 30 minuten als je Stripe-integratie al webhooks afhandelt.

Shopify-integratie
03

Shopify orders/paid-webhook koppelt orderomzet aan de short-link-click waar deze vandaan kwam

Registreer Elido's Shopify-webhookendpoint in je Shopify-admin (Settings → Notifications → Webhooks → Create webhook → Topic: orders/paid). Elido verifieert de X-Shopify-Hmac-Sha256-header, haalt het ordertotaal en de valuta op, en zoekt de elido_cid op in de note_attributes van de order (je vult dit vanuit de winkelwagen in via Shopify's cart note_attributes API, waarbij je de click_id doorgeeft vanuit de sessiecookie of URL-parameter). Voor Shopify-winkels met Online Store 2.0-thema's injecteert Elido's attributiesnippet de click_id automatisch in de winkelwagen bij het klikken. Toegewezen orders worden gededupliceerd op order-ID, zodat terugbetaalde en vervangen orders niet dubbel worden geteld. Shopify Plus-winkels met aangepaste checkout-extensies kunnen de click_id via een betrouwbaarder kanaal doorgeven - de setupgids behandelt de Plus-specifieke flow.

Aangepaste conversie-events
04

POST naar het conversie-endpoint van Elido vanaf elke backend - niet alleen Stripe en Shopify

POST /v1/conversions met een JSON-body: { click_id: "...", event_name: "purchase", value: 99.00, currency: "EUR", metadata: {} }. De click_id is de elido_cid van de click. Elido authenticeert het verzoek met je workspace API-key (HMAC-SHA256 over de payload-body wordt aanbevolen voor extra beveiliging). Dit endpoint dekt elke conversie die niet door de native Stripe- of Shopify-integraties wordt afgehandeld: WooCommerce, aangepaste SaaS-trialactivaties, leadformulier-inzendingen, telefoongesprekken die door je telefonieplatform worden getrackt. Het event_name-veld is vrije tekst; gebruik elke naamconventie die jouw team prefereert - deze wordt zo weergegeven in de analytics-weergave. Idempotentie: post je dezelfde combinatie van click_id + event_name twee keer, dan wordt alleen de eerste geregistreerd. De waarde en metadata van het event zijn alleen bij de eerste schrijfactie aanpasbaar.

Downstream forwarding
05

Stuur conversies gelijktijdig door naar GA4 Measurement Protocol, Meta CAPI en Mixpanel server-track

Nadat Elido een conversie tegen een click heeft geregistreerd, stuurt het het event door naar de server-side forwarding-bestemmingen die je hebt ingeschakeld: GA4 Measurement Protocol (het event verschijnt in GA4 als een server-side purchase-event met de originele UTM-parameters van de click), Meta Conversions API (het event dedupliceert tegen de client-side pixel als beide afvuren, met behulp van het event_id van de click_id), en Mixpanel server-track (het event wordt verzonden met het distinct_id van Mixpanel's $identify-call als je cross-identity hebt geconfigureerd). Forwarding gebeurt asynchroon na registratie van de conversie - het blokkeert het webhookantwoord aan Stripe of Shopify niet. Mislukte forwarding-events worden 24 uur lang opnieuw geprobeerd met exponentiële backoff, en daarna verwijderd met een logregel. Je kunt de forwarding-status per conversie bekijken in het dashboard.

Omzetteams die Elido-conversietracking gebruiken

Namen zijn placeholders - echte klantcasestudy's komen hier zodra ze gepubliceerd zijn.

iOS 14.5 maakte onze Meta Pixel-attributie op 30% van de mobiele aankopen kapot. Server-side Stripe-webhook via Elido herstelde het grootste deel - de click_id-passthrough naar Stripe's client_reference_id was de sleutel. De setup duurde één middag.

E
E-commerceteam, D2C-merk, Warschau
Head of E-commerce

We posten trialactivaties naar het aangepaste conversie-endpoint van Elido. De keten click → trial → betaald is nu end-to-end traceerbaar zonder een volledig CDP. Dankzij de GA4 Measurement Protocol-forwarding zijn onze dashboards voor betaalde kanalen weer accuraat.

M
Marketing data, B2B SaaS, Lissabon
Marketing Data Engineer

De Shopify orders/paid-webhook plus de attributiesnippet in het thema was een integratie van één dag. Omzet per campagne is nu een live cijfer in onze ochtendstand-up, niet een spreadsheetformule die iemand moet bijhouden.

G
Growth engineering, fintech, Riga
Growth Engineer

Elido-conversietracking vs Bitly vs Short.io

Bitly heeft geen server-side conversietracking. Short.io heeft basale conversiepixels. Elido's conversietracking is server-side en stuurt door naar meerdere advertentieplatforms.

FeatureElidoBitlyShort.io
Server-side conversieattributieJa - webhookgebaseerd, signature-verifiedNiet beschikbaarNiet beschikbaar
Stripe-webhookintegratiecheckout.session.completed + payment_intent.succeededNiet beschikbaarNiet beschikbaar
Shopify-webhookintegratieorders/paid - signature-verified, orderdeduplicatieNiet beschikbaarNiet beschikbaar
Aangepast conversie-endpointPOST /v1/conversions - elke backend, elk eventNiet beschikbaarNiet beschikbaar
GA4 / Meta CAPI-forwardingJa - doorgestuurd nadat de conversie is geregistreerdNiet beschikbaarGedeeltelijk - alleen client-side pixel
Omzet in analyticsOmzetoverzicht per link en per campagne, met valutaNiet beschikbaarAlleen conversieaantal, geen omzet
ConversiededuplicatieJa - idempotentie op click_id + event_nameNiet van toepassingNiet beschikbaar

Vragen over conversietracking

Wat als de click_id wordt verwijderd vóór de conversie?

Als de queryparameter elido_cid verloren gaat vóórdat het conversie-event afvuurt - door een redirectketen, een SPA-router die queryparameters niet doorgeeft, of een third-party checkout die onbekende parameters verwijdert - kan de conversie niet worden toegewezen. Test de volledige funnel: klik op een short link, volg elido_cid op elke pagina tot de checkoutbevestiging, en controleer of deze verschijnt in de conversie-POST. Het attributiesnippet van Elido (een klein JavaScript-blok) stelt de click_id ook als fallback in een first-party cookie in - als de URL-parameter verloren gaat maar de gebruiker nog in dezelfde browsersessie is, kan de attributie zich herstellen vanuit de cookie.

Hoe worden terugbetalingen verwerkt in conversieattributie?

Elido verwerkt terugbetalingsevents niet automatisch. Als een charge.refunded-event van Stripe of een refunds/create-event van Shopify afvuurt, boekt Elido de toegewezen omzet niet automatisch af. Je kunt een conversie-event met een negatieve waarde posten naar het aangepaste endpoint om de attributie handmatig terug te draaien. Een webhooklistener voor terugbetalingen staat op de roadmap. Tot die tijd, als je een accurate netto-omzet in Elido nodig hebt, trek dan de terugbetalingstotalen af met behulp van de exportdata en je ordermanagementsysteem.

Werkt conversietracking als de gebruiker de checkout op een ander apparaat afrondt?

Nee - als de gebruiker op mobiel op de short link klikt maar de checkout op desktop afrondt, wordt de click_id niet overgedragen tussen apparaten. De conversie blijft ongeattribueerd, tenzij de sessie van de gebruiker elido_cid heeft bewaard over de apparaatwissel heen (bijvoorbeeld via een ingelogd account dat het heeft opgeslagen). Cross-device-attributie vereist een server-side identiteitsgraaf, die Elido niet biedt. Gebruik voor nauwkeurige cross-device-attributie je MMP of CDP naast Elido's server-side conversies.

Welke valuta's worden ondersteund voor omzetattributie?

Alle ISO 4217-valutacodes worden geaccepteerd in het value-veld van een conversie-event. Omzet wordt opgeslagen in de originele valuta; het analyticsdashboard toont omzet in de valuta van elk conversie-event. Als je een samengevoegd overzicht in één valuta nodig hebt, exporteer dan de conversie-events en reken om in je eigen data warehouse - Elido past geen wisselkoersen toe.

Hoe stel ik de client_reference_id-passthrough van Stripe in?

Stel bij het aanmaken van een Stripe Checkout Session client_reference_id in op de waarde van de elido_cid-URL-parameter van de verwijzende click. In JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). De webhookhandler van Elido leest dit veld uit checkout.session.completed. Gebruik je rechtstreeks PaymentIntents, gebruik dan in plaats daarvan het metadata-veld met key elido_cid. De setupgids op /docs/guides/conversion-tracking heeft copy-paste-code voor Node, Python en Go.

Zijn conversiegegevens opgenomen in analytics-exports?

Ja. Conversie-events worden opgeslagen in een aparte tabel (conversions) naast de click-eventtabel (clicks). Geplande exports naar S3, BigQuery of Snowflake bevatten beide tabellen. De JOIN-key is click_id. Een referentie-SQL-query die clicks aan conversions koppelt en omzet per campagne-UTM-source berekent, staat in de exportgids.

Kan ik niet-omzetgerelateerde conversies zoals formulierinvullingen of trialactivaties tracken?

Ja - het aangepaste conversie-endpoint accepteert elke event_name en een optionele value (zet deze op 0 voor niet-omzetgerelateerde events). Gebruik eventnamen zoals 'trial_started', 'demo_booked', 'form_submitted'. Deze verschijnen in de analytics-weergave van de link onder 'Conversies' met de eventnaam als label. Als je ook doorstuurt naar GA4, worden deze gemapt naar aangepaste GA4-events. Conversietellingen (niet alleen omzet) zijn zichtbaar per link en per campagne, ongeacht de eventwaarde.

Wat is de latentie van conversie-eventontvangst tot zichtbaarheid in analytics?

Van webhookontvangst tot de analytics-opslag: doorgaans minder dan 5 seconden, via dezelfde event-streampipeline als click-events. Attributie (het matchen van de conversie aan de oorspronkelijke click) gebeurt synchroon bij webhookontvangst - als de click_id oplost, is de attributie direct. Downstream forwarding naar GA4 / Meta CAPI / Mixpanel is asynchroon en voegt 2–10 seconden toe. Het omzetcijfer in de dashboard-analyticsweergave wordt binnen 30 seconden na ontvangst van het conversie-event bijgewerkt.

Klaar om het te proberen?

Begin met het gratis plan, upgrade wanneer je een custom domain nodig hebt.