Introduction
Dub is a powerful link management platform that helps you create, share, and track short links. By integrating Dodo Payments with Dub, you can automatically track sale conversion events when customers complete purchases, enabling you to measure the ROI of your marketing campaigns and referral programs. A “sale” event is recorded in Dub when a customer:- Completes a one-time payment
- Subscribes to a paid plan
- Makes a recurring subscription payment
This integration requires a Dub account with conversion tracking enabled on your links.
How It Works
Dub tracks visitors through a unique click ID (dub_id) stored in a cookie when users click your Dub short links. To attribute sales to your links, you need to:
- Capture Dub’s click ID from the
dub_idcookie when creating checkout sessions - Store the click ID in your payment metadata along with the customer’s external ID
- Send sale data to Dub when payments succeed using their Track API
Prerequisites
Before setting up this integration, ensure you have:- A Dub account with a workspace
- Conversion tracking enabled for your links
- Your Dub API key (available in your Dub dashboard under Settings → API Keys)
Getting Started
1
Enable Conversion Tracking in Dub
In your Dub dashboard, enable conversion tracking for the links you want to track sales for. This allows Dub to record sale events when customers complete purchases.
Learn more about enabling conversion tracking in the Dub documentation.
2
Get Your Dub API Key
Navigate to your Dub dashboard → Settings → API Keys and create a new API key with
conversions.write scope.3
Capture Click ID in Checkout
When creating a checkout session, capture the Dub click ID from the cookie and add it to your payment metadata.
4
Send Sale Data via Webhook
Configure a webhook to send sale data to Dub’s Track API when payments succeed.
5
Done!
Sale conversion events will now appear in your Dub analytics dashboard with full attribution to your links.
Implementation Guide
Step 1: Add Click ID and Customer ID to Checkout Metadata
When creating a checkout session, capture the Dub click ID from the cookie and include it in your payment metadata along with your customer’s external ID.Gli esempi di seguito utilizzano
POST /payments, che è deprecato. Funziona ancora per le integrazioni esistenti, ma per le nuove integrazioni è consigliato usare Checkout Sessions (POST /checkouts) — metadata viene passato nello stesso modo.Passaggio 2: invia i dati delle vendite a Dub
Configura un endpoint webhook per inviare i dati delle vendite all’API Track di Dub quando i pagamenti vanno a buon fine.1
Open the Webhook Section
Nella dashboard di Dodo Payments, vai a Webhooks → + Add Endpoint ed espandi il menu a discesa delle integrazioni.

2
Select Dub
Seleziona la scheda dell’integrazione Dub.
3
Enter API Key
Inserisci la tua chiave API di Dub nel campo di configurazione.

4
Configure Transformation
Modifica il codice di trasformazione per formattare i dati dei pagamenti per l’API Track Sale di Dub.
5
Test & Create
Esegui un test con payload di esempio e fai clic su Create per attivare l’integrazione.
Esempi di codice di trasformazione
Monitoraggio di base delle vendite
Monitora le vendite quando i pagamenti vanno a buon fine:basic_sale.js
Monitoraggio delle vendite degli abbonamenti
Monitora sia gli abbonamenti iniziali sia i pagamenti ricorrenti:subscription_sale.js
Monitoraggio delle vendite con esclusione delle imposte
Invia a Dub solo l’importo al netto delle imposte per un monitoraggio accurato dei ricavi:sale_without_tax.js
Monitoraggio delle vendite con nomi di eventi personalizzati
Utilizza nomi di eventi personalizzati per classificare diversi tipi di vendite:custom_events.js
Alternativa: implementazione lato client
Se preferisci monitorare le vendite dal tuo server invece di utilizzare i webhook, puoi chiamare direttamente l’API Track di Dub dopo un pagamento completato con successo:Procedure consigliate
- Includi sempre il click ID nei metadati: senza il click ID, Dub non può attribuire i ricavi ai tuoi link
- Utilizza gli ID esterni in modo coerente: passa lo stesso ID cliente che utilizzi nel tuo sistema per ottenere analisi accurate a livello di cliente
- Gestisci correttamente il traffico organico: imposta
webhook.cancel = truequando non è presente alcun click ID, per evitare chiamate API non necessarie - Esegui test con pagamenti di esempio: verifica che l’integrazione funzioni correttamente prima di renderla operativa
- Monitora la dashboard di Dub: verifica che le vendite vengano visualizzate correttamente con la giusta attribuzione
Note importanti
- Formato dell’importo: Dub si aspetta gli importi in centesimi (ad es., $10.00 = 1000)
- Valuta: utilizza i codici valuta ISO 4217 (USD, EUR, GBP, ecc.)
- Prove gratuite: i pagamenti di $0 non vengono monitorati come vendite
- Rimborsi: valuta la possibilità di monitorare separatamente i rimborsi, se necessario, per una rendicontazione accurata dei ricavi
Risoluzione dei problemi
Sales not appearing in Dub
Sales not appearing in Dub
- Verifica che la chiave API di Dub sia corretta e disponga dell’ambito
conversions.write - Verifica che
dub_click_idvenga acquisito e memorizzato nei metadati del pagamento - Assicurati che la trasformazione del webhook formatti correttamente il payload
- Verifica che il webhook venga attivato sugli eventi
payment.succeeded - Conferma che il monitoraggio delle conversioni sia abilitato per i tuoi link Dub
Revenue attribution not working
Revenue attribution not working
- Conferma che gli utenti facciano clic sui tuoi short link Dub prima del checkout
- Verifica che il cookie
dub_idvenga impostato correttamente sul tuo dominio - Verifica che i click ID coincidano tra la creazione del checkout e il completamento del pagamento
- Assicurati di acquisire il click ID prima di creare la sessione di checkout
Transformation errors
Transformation errors
- Convalida che la struttura JSON corrisponda al formato dell’API Track Sale di Dub
- Verifica che siano presenti tutti i campi obbligatori (
clickId,externalId,amount) - Assicurati che l’importo sia espresso in centesimi (intero, non decimale)
- Verifica che l’URL dell’endpoint API sia corretto:
https://api.dub.co/track/sale - Testa la trasformazione con payload webhook di esempio
Duplicate sales being tracked
Duplicate sales being tracked
- Assicurati di monitorare solo gli eventi
payment.succeeded, nonpayment.processing - Utilizza valori
invoiceIdunivoci per ogni vendita - Per gli abbonamenti, aggiungi timestamp o il periodo di fatturazione per evitare duplicati nei rinnovi
Risorse aggiuntive
Dub Conversions Documentation
Scopri di più sulle funzionalità di monitoraggio delle conversioni e analisi di Dub.
Dub Track Sale API
Consulta la documentazione API completa per l’endpoint Track Sale di Dub.
Dub Dashboard
Accedi alla dashboard di Dub per visualizzare i dati sulle analisi delle conversioni e sull’attribuzione.
Webhook Events Guide
Scopri tutti gli eventi webhook disponibili di Dodo Payments.
Hai bisogno di aiuto? Contatta il supporto di Dodo Payments all’indirizzo support@dodopayments.com per ricevere assistenza con l’integrazione.