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.Les exemples ci-dessous utilisent
POST /payments, qui est obsolète. Il fonctionne toujours pour les intégrations existantes, mais les nouvelles intégrations doivent utiliser Checkout Sessions (POST /checkouts) — metadata reçoit sa valeur de la même manière.Étape 2 : Envoyer les données de vente à Dub
Configurez un endpoint webhook pour envoyer les données de vente à l’API Track de Dub lorsque les paiements sont réussis.1
Open the Webhook Section
Dans votre tableau de bord Dodo Payments, accédez à Webhooks → + Add Endpoint et développez le menu déroulant des intégrations.

2
Select Dub
Sélectionnez la carte d’intégration Dub.
3
Enter API Key
Saisissez votre clé API Dub dans le champ de configuration.

4
Configure Transformation
Modifiez le code de transformation afin de formater les données de paiement pour l’API Track Sale de Dub.
5
Test & Create
Testez avec des payloads d’exemple, puis cliquez sur Create pour activer l’intégration.
Exemples de code de transformation
Suivi des ventes de base
Suivez les ventes lorsque les paiements sont réussis :basic_sale.js
Suivi des ventes d’abonnements
Suivez à la fois les abonnements initiaux et les paiements récurrents :subscription_sale.js
Suivi des ventes hors taxes
Envoyez uniquement le montant hors taxes à Dub pour assurer un suivi précis des revenus :sale_without_tax.js
Suivi des ventes avec des noms d’événements personnalisés
Utilisez des noms d’événements personnalisés pour catégoriser différents types de ventes :custom_events.js
Alternative : implémentation côté client
Si vous préférez suivre les ventes depuis votre serveur plutôt que d’utiliser des webhooks, vous pouvez appeler directement l’API Track de Dub après un paiement réussi :Bonnes pratiques
- Incluez toujours l’ID de clic dans les métadonnées : sans l’ID de clic, Dub ne peut pas attribuer les revenus à vos liens
- Utilisez les ID externes de manière cohérente : transmettez le même ID client que celui utilisé dans votre système pour obtenir des analyses précises au niveau du client
- Gérez correctement le trafic organique : définissez
webhook.cancel = truelorsqu’il n’y a pas d’ID de clic afin d’éviter les appels API inutiles - Testez avec des paiements d’exemple : vérifiez que l’intégration fonctionne correctement avant sa mise en production
- Surveillez votre tableau de bord Dub : vérifiez que les ventes apparaissent correctement avec une attribution appropriée
Remarques importantes
- Format du montant : Dub attend les montants en centimes (par exemple, 10,00 $ = 1000)
- Devise : utilisez les codes de devise ISO 4217 (USD, EUR, GBP, etc.)
- Essais gratuits : les paiements de 0 $ ne sont pas suivis comme des ventes
- Remboursements : envisagez de suivre les remboursements séparément si nécessaire pour garantir l’exactitude des rapports de revenus
Résolution des problèmes
Sales not appearing in Dub
Sales not appearing in Dub
- Vérifiez que votre clé API Dub est correcte et dispose de l’étendue
conversions.write - Vérifiez que
dub_click_idest bien capturé et enregistré dans les métadonnées du paiement - Assurez-vous que la transformation du webhook formate correctement le payload
- Vérifiez que le webhook se déclenche lors des événements
payment.succeeded - Confirmez que le suivi des conversions est activé pour vos liens Dub
Revenue attribution not working
Revenue attribution not working
- Confirmez que les utilisateurs cliquent sur vos liens courts Dub avant le paiement
- Vérifiez que le cookie
dub_idest correctement défini sur votre domaine - Vérifiez que les ID de clic correspondent entre la création du paiement et sa finalisation
- Assurez-vous de capturer l’ID de clic avant de créer la session de paiement
Transformation errors
Transformation errors
- Validez que la structure JSON correspond au format de l’API Track Sale de Dub
- Vérifiez que tous les champs obligatoires (
clickId,externalId,amount) sont présents - Assurez-vous que le montant est exprimé en centimes (entier, et non décimal)
- Vérifiez que l’URL de l’endpoint API est correcte :
https://api.dub.co/track/sale - Testez la transformation avec des payloads webhook d’exemple
Duplicate sales being tracked
Duplicate sales being tracked
- Assurez-vous de suivre uniquement les événements
payment.succeeded, et non les événementspayment.processing - Utilisez des valeurs
invoiceIduniques pour chaque vente - Pour les abonnements, ajoutez des horodatages ou la période de facturation afin d’éviter les doublons lors des renouvellements
Ressources supplémentaires
Dub Conversions Documentation
Découvrez-en davantage sur les fonctionnalités de suivi des conversions et d’analyse de Dub.
Dub Track Sale API
Consultez la référence complète de l’API pour l’endpoint Track Sale de Dub.
Dub Dashboard
Accédez à votre tableau de bord Dub pour consulter les analyses de conversion et les données d’attribution.
Webhook Events Guide
Découvrez tous les événements webhook disponibles de Dodo Payments.
Besoin d’aide ? Contactez l’assistance de Dodo Payments à l’adresse support@dodopayments.com pour obtenir de l’aide concernant l’intégration.