Tracciamento delle conversioni. Attribute every dollar to the click that earned it.
I ricevitori webhook di Stripe e Shopify verificano le firme e legano i ricavi al link breve di origine. L'attribuzione della campagna è derivata automaticamente.
- 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
- Attribuzione della campagna derivata dal link
- Riepilogo dei ricavi nella dashboard
Come funziona l'attribuzione delle conversioni server-side end-to-end
I pixel lato client perdono il 20–40% delle conversioni a causa di adblocker, restrizioni sulla privacy di iOS e catene di redirect al checkout. L'attribuzione server-side colma questo divario.
Ogni clic riceve un UUID passato alla destinazione: l'ancora di attribuzione per l'abbinamento delle conversioni
Quando un utente clicca su un link breve di Elido, l'edge genera un click_id (UUID v4) e lo aggiunge come parametro di query (elido_cid) all'URL di destinazione. Il tuo flusso di checkout dovrebbe mantenere questo parametro in ogni pagina della canalizzazione: la maggior parte dei router SPA e degli stack di checkout renderizzati dal server inoltrano i parametri di query sconosciuti per impostazione predefinita, ma le catene di redirect nei checkout multifase potrebbero rimuoverli. Il click_id viene memorizzato anche in un cookie di sessione sul dominio di destinazione se incorpori lo snippet di attribuzione da 2KB di Elido (opzionale). Testa l'intero flusso di checkout prima di andare live: clicca su un link breve, completa un acquisto di prova, verifica che l'elido_cid appaia nel POST di conversione. Se non appare, aggiungi l'inoltro dei parametri di query nel tuo middleware di checkout. Questo è il fallimento più comune nella configurazione dell'attribuzione: non il webhook, ma la perdita dei parametri di query nel checkout.
Il ricevitore webhook di Stripe verifica le firme e attribuisce gli eventi checkout.session.completed e payment_intent.succeeded
Registra l'endpoint del webhook Stripe di Elido nella tua dashboard Stripe (Impostazioni → Webhook → Aggiungi endpoint). Elido ascolta gli eventi checkout.session.completed e payment_intent.succeeded. Su ogni evento, Elido verifica l'intestazione Stripe-Signature utilizzando il tuo segreto di firma del webhook, estrae l'importo del pagamento e la valuta, cerca il click_id memorizzato rispetto al client_reference_id della Checkout Session (che il tuo checkout deve popolare — vedi la guida) e registra la conversione a fronte di quel clic. Le entrate e il click_id sono quindi disponibili nella vista analitica del link e nel riepilogo delle entrate della campagna. Il campo client_reference_id della Checkout Session è il passaggio consigliato; in alternativa, usa il campo metadata di Stripe con la chiave elido_cid se utilizzi direttamente PaymentIntents. La configurazione completa richiede circa 30 minuti se la tua integrazione Stripe gestisce già i webhook.
Il webhook orders/paid di Shopify lega le entrate dell'ordine al clic sul link breve originale
Registra l'endpoint del webhook Shopify di Elido nel tuo pannello di controllo Shopify (Impostazioni → Notifiche → Webhook → Crea webhook → Argomento: ordini/pagato). Elido verifica l'intestazione X-Shopify-Hmac-Sha256, estrae il totale dell'ordine e la valuta, e cerca l'elido_cid dai note_attributes dell'ordine (che popoli dal carrello utilizzando l'API note_attributes del carrello di Shopify, passando il click_id dal cookie di sessione o dal parametro URL). Per i negozi Shopify che utilizzano i temi Online Store 2.0, lo snippet di attribuzione di Elido inserisce automaticamente il click_id nel carrello al momento del clic. Gli ordini attribuiti sono deduplicati in base all'ID ordine, in modo che gli ordini rimborsati e sostituiti non vengano contati due volte. I negozi Shopify Plus con estensioni di checkout personalizzate possono passare il click_id attraverso un canale più affidabile — la guida alla configurazione copre il flusso specifico per Plus.
Invia una richiesta POST all'endpoint di conversione di Elido da qualsiasi backend, non solo Stripe e Shopify
Invia una POST a /v1/conversions con un corpo JSON: { click_id: "...", event_name: "purchase", value: 99.00, currency: "EUR", metadata: {} }. Il click_id è l'elido_cid del clic. Elido autentica la richiesta con la chiave API del tuo workspace (consigliato HMAC-SHA256 sul corpo del payload per una maggiore sicurezza). Questo endpoint copre qualsiasi conversione non gestita dalle integrazioni native di Stripe o Shopify: WooCommerce, attivazioni di prova SaaS personalizzate, invii di moduli di lead, conversioni di chiamate telefoniche tracciate dalla tua piattaforma di telefonia. Il campo event_name è testo libero; usa qualsiasi convenzione di denominazione preferita dal tuo team: viene visualizzato così com'è nella vista analitica. Idempotenza: invia la stessa combinazione di click_id + event_name due volte e verrà registrata solo la prima. Il valore dell'evento e i metadati sono mutabili solo alla prima scrittura.
Invia le conversioni simultaneamente a GA4 Measurement Protocol, Meta CAPI e Mixpanel server-track
Dopo che Elido ha registrato una conversione a fronte di un clic, invia l'evento a tutte le destinazioni di inoltro server-side abilitate: GA4 Measurement Protocol (l'evento appare in GA4 come un evento di acquisto server-side con i parametri UTM originali del clic), Meta CAPI (l'evento viene deduplicato rispetto al pixel lato client se entrambi sono attivi, utilizzando l'event_id dal click_id) e Mixpanel server-track (l'evento viene inviato con il distinct_id dalla chiamata $identify di Mixpanel se hai configurato l'identità incrociata). L'inoltro avviene in modo asincrono dopo la registrazione della conversione — non blocca la risposta del webhook a Stripe o Shopify. Gli eventi di inoltro falliti vengono riprovati con backoff esponenziale per 24 ore, poi eliminati con una voce di log. Puoi vedere lo stato dell'inoltro per ogni conversione nella dashboard.
Team revenue che utilizzano il monitoraggio delle conversioni di Elido
I nomi sono segnaposto: i casi di studio reali dei clienti verranno pubblicati qui.
“iOS 14.5 ha annullato l'attribuzione del nostro Meta Pixel sul 30% degli acquisti da mobile. Il webhook Stripe server-side tramite Elido ha recuperato la maggior parte di essi: il passaggio del click_id nel client_reference_id di Stripe è stata la chiave. La configurazione ha richiesto un pomeriggio.”
“Inviamo le attivazioni di prova all'endpoint di conversione personalizzato di Elido. La catena clic → prova → pagamento è ora tracciabile end-to-end senza un CDP completo. L'inoltro a GA4 Measurement Protocol significa che le nostre dashboard dei canali a pagamento sono di nuovo accurate.”
“Il webhook orders/paid di Shopify più lo snippet di attribuzione nel tema è stata un'integrazione di un giorno. Le entrate per campagna sono ora un numero in tempo reale nel nostro standup mattutino, non una formula in un foglio di calcolo che qualcuno deve aggiornare.”
Monitoraggio conversioni Elido vs Bitly vs Short.io
Bitly non ha il monitoraggio delle conversioni server-side. Short.io ha pixel di conversione di base. Il monitoraggio delle conversioni di Elido è server-side e inoltra a più piattaforme pubblicitarie.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Attribuzione delle conversioni server-side | Sì — basata su webhook, con firma verificata | Non disponibile | Non disponibile |
| Integrazione webhook Stripe | checkout.session.completed + payment_intent.succeeded | Non disponibile | Non disponibile |
| Integrazione webhook Shopify | orders/paid — firma verificata, deduplicazione ordini | Non disponibile | Non disponibile |
| Endpoint di conversione personalizzato | POST /v1/conversions — qualsiasi backend, qualsiasi evento | Non disponibile | Non disponibile |
| Inoltro GA4 / Meta CAPI | Sì — inviato dopo la registrazione della conversione | Non disponibile | Parziale — solo pixel lato client |
| Entrate nelle analisi | Riepilogo entrate per link e per campagna con valuta | Non disponibile | Solo conteggio conversioni, nessuna entrata |
| Deduplicazione delle conversioni | Sì — idempotenza su click_id + event_name | Non applicabile | Non disponibile |
Domande sul monitoraggio delle conversioni
Cosa succede se il click_id viene rimosso prima della conversione?
Se il parametro di query elido_cid viene perso prima che l'evento di conversione si attivi — a causa di una catena di redirect, di un router SPA che non inoltra i parametri di query o di un checkout di terze parti che rimuove i parametri sconosciuti — la conversione non può essere attribuita. Testa l'intero funnel: clicca su un link breve, traccia l'elido_cid in ogni pagina fino alla conferma del checkout, verifica che appaia nel POST di conversione. Lo snippet di attribuzione di Elido (un piccolo blocco JavaScript) imposta anche il click_id in un cookie di prima parte come fallback: se il parametro URL viene perso ma l'utente è ancora nella stessa sessione del browser, l'attribuzione può essere recuperata dal cookie.
Come vengono gestiti i rimborsi nell'attribuzione delle conversioni?
Elido non elabora automaticamente gli eventi di rimborso. Se si attiva un evento charge.refunded di Stripe o refunds/create di Shopify, Elido non storna le entrate attribuite. Puoi inviare un evento di conversione con valore negativo all'endpoint personalizzato per stornare manualmente l'attribuzione. Un listener per il webhook di rimborso è in programma. Fino ad allora, se hai bisogno di entrate nette accurate in Elido, sottrai i totali dei rimborsi utilizzando l'esportazione dei dati e il tuo sistema di gestione degli ordini.
Il monitoraggio delle conversioni funziona se l'utente completa il checkout su un dispositivo diverso?
No: se l'utente clicca sul link breve da mobile ma completa il checkout su desktop, il click_id non viene trasferito tra i dispositivi. La conversione non verrà attribuita a meno che la sessione dell'utente non abbia conservato l'elido_cid attraverso il cambio di dispositivo (ad esempio, tramite un account loggato che lo ha memorizzato). L'attribuzione cross-device richiede un grafico di identità server-side, che Elido non fornisce. Per la precisione dell'attribuzione cross-device, usa il tuo MMP o CDP insieme alle conversioni server-side di Elido.
Quali valute sono supportate per l'attribuzione delle entrate?
Tutti i codici valuta ISO 4217 sono accettati nel campo value di un evento di conversione. Le entrate vengono memorizzate nella valuta originale; la dashboard analitica mostra le entrate nella valuta di ogni evento di conversione. Se hai bisogno di una vista aggregata in un'unica valuta, esporta gli eventi di conversione e convertili nel tuo data warehouse — Elido non applica tassi di cambio FX.
Come si imposta il passaggio del client_reference_id di Stripe?
Quando crei una Checkout Session di Stripe, imposta client_reference_id sul valore del parametro URL elido_cid dal clic di riferimento. In JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). Il gestore webhook di Elido legge questo campo da checkout.session.completed. Se utilizzi direttamente PaymentIntents, usa invece il campo metadata con la chiave elido_cid. La guida alla configurazione su /docs/guides/conversion-tracking contiene codice copia-incolla per Node, Python e Go.
I dati di conversione sono inclusi nelle esportazioni di ClickHouse?
Sì. Gli eventi di conversione sono memorizzati in una tabella ClickHouse separata (conversions) accanto alla tabella degli eventi di clic (clicks). Le esportazioni pianificate su S3, BigQuery o Snowflake includono entrambe le tabelle. La chiave di JOIN è click_id. Una query SQL di riferimento che unisce i clic alle conversioni e calcola le entrate per sorgente UTM della campagna è presente nella guida all'esportazione.
Posso tracciare conversioni senza entrate come la compilazione di moduli o le attivazioni di prova?
Sì — l'endpoint di conversione personalizzato accetta qualsiasi event_name e un valore opzionale (impostato su 0 per eventi senza entrate). Usa nomi di eventi come 'trial_started', 'demo_booked', 'form_submitted'. Questi appaiono nella vista analitica del link sotto 'Conversioni' con il nome dell'evento come etichetta. Se effettui anche l'inoltro a GA4, questi vengono mappati su eventi GA4 personalizzati. I conteggi delle conversioni (non solo le entrate) sono visibili per link e per campagna, indipendentemente dal valore dell'evento.
Qual è la latenza dalla ricezione dell'evento di conversione alla visibilità nelle analisi?
Dalla ricezione del webhook a ClickHouse: in genere meno di 5 secondi tramite la stessa pipeline Redpanda degli eventi di clic. L'attribuzione (l'abbinamento della conversione al clic di origine) avviene in modo sincrono alla ricezione del webhook — se il click_id si risolve, l'attribuzione è immediata. L'inoltro a valle a GA4 / Meta CAPI / Mixpanel è asincrono e aggiunge 2–10 secondi. Il numero delle entrate nella vista analitica della dashboard si aggiorna entro 30 secondi dalla ricezione dell'evento di conversione.
Keep reading
Analisi dei clic ClickHouse — dove le entrate della conversione appaiono accanto ai conteggi dei clic.
Attiva i pixel di Meta CAPI e Google Ads sul redirect — il lato acquisizione del loop di conversione.
Attribuzione delle entrate a livello di campagna — scopri quale variante della campagna ha generato più entrate.
Webhook in uscita firmati con HMAC da Elido — ricevi eventi di clic con attribuzione delle conversioni nei tuoi sistemi.
Pronto a provarlo?
Inizia con il piano gratuito, effettua l'upgrade quando hai bisogno di un dominio personalizzato.