Skip to main content

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.
Affiliate Program Integration: This integration also works seamlessly with Dub Partners for tracking affiliate referrals and commissions. Use Dub’s conversion tracking to attribute sales to your affiliate links and measure partner performance. Learn more about setting up affiliate programs in our Affiliates feature guide.

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:
  1. Capture Dub’s click ID from the dub_id cookie when creating checkout sessions
  2. Store the click ID in your payment metadata along with the customer’s external ID
  3. Send sale data to Dub when payments succeed using their Track API
This allows Dub to match successful sales with the original link click, giving you complete conversion attribution.

Prerequisites

Before setting up this integration, ensure you have:
  1. A Dub account with a workspace
  2. Conversion tracking enabled for your links
  3. 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.
Keep your API key secure and never expose it in client-side code.
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.
Contoh-contoh di bawah menggunakan POST /payments, yang sudah deprecated. Ini masih berfungsi untuk integrasi yang sudah ada, tetapi integrasi baru sebaiknya menggunakan Checkout Sessions (POST /checkouts) — metadata diteruskan dengan cara yang sama.

Langkah 2: Kirim Data Penjualan ke Dub

Konfigurasikan endpoint webhook untuk mengirim data penjualan ke Track API milik Dub saat pembayaran berhasil.
1

Open the Webhook Section

Di dashboard Dodo Payments, buka Webhooks → + Add Endpoint, lalu buka dropdown integrasi.
Add Endpoint and integrations dropdown
2

Select Dub

Pilih kartu integrasi Dub.
3

Enter API Key

Masukkan Dub API Key Anda di kolom konfigurasi.
Add API Key
4

Configure Transformation

Edit kode transformasi untuk memformat data pembayaran untuk Track Sale API milik Dub.
5

Test & Create

Uji dengan payload contoh, lalu klik Create untuk mengaktifkan integrasi.

Contoh Kode Transformasi

Pelacakan Penjualan Dasar

Lacak penjualan saat pembayaran berhasil:
basic_sale.js

Lacak Penjualan Subscription

Lacak subscription awal dan pembayaran berulang:
subscription_sale.js

Lacak Penjualan Tanpa Pajak

Kirim hanya jumlah sebelum pajak ke Dub untuk pelacakan pendapatan yang akurat:
sale_without_tax.js

Lacak Penjualan dengan Nama Event Kustom

Gunakan nama event kustom untuk mengategorikan berbagai jenis penjualan:
custom_events.js

Alternatif: Implementasi Client-Side

Jika Anda lebih suka melacak penjualan dari server, bukan menggunakan webhook, Anda dapat memanggil Track API milik Dub secara langsung setelah pembayaran berhasil:

Praktik Terbaik

Tangkap click ID lebih awal: Simpan click ID Dub sesegera mungkin dalam alur checkout Anda untuk memastikan atribusi yang akurat, meskipun pengguna meninggalkan halaman dan kembali nanti.
  • Selalu sertakan click ID dalam metadata: Tanpa click ID, Dub tidak dapat mengatribusikan pendapatan ke link Anda
  • Gunakan external ID secara konsisten: Teruskan customer ID yang sama dengan yang Anda gunakan di sistem untuk analitik tingkat pelanggan yang akurat
  • Tangani traffic organik dengan baik: Tetapkan webhook.cancel = true jika tidak ada click ID untuk menghindari panggilan API yang tidak perlu
  • Uji dengan pembayaran contoh: Pastikan integrasi berfungsi dengan benar sebelum digunakan di production
  • Pantau dashboard Dub Anda: Periksa apakah penjualan muncul dengan benar dan atribusinya sesuai

Catatan Penting

  • Format jumlah: Dub mengharapkan jumlah dalam satuan sen (misalnya, $10.00 = 1000)
  • Mata uang: Gunakan kode mata uang ISO 4217 (USD, EUR, GBP, dan lainnya)
  • Free trial: Pembayaran $0 tidak dilacak sebagai penjualan
  • Refund: Pertimbangkan untuk melacak refund secara terpisah jika diperlukan agar pelaporan pendapatan akurat

Pemecahan Masalah

  • Pastikan Dub API key Anda benar dan memiliki scope conversions.write
  • Periksa apakah dub_click_id ditangkap dan disimpan dalam metadata pembayaran
  • Pastikan transformasi webhook memformat payload dengan benar
  • Pastikan webhook terpicu pada event payment.succeeded
  • Pastikan pelacakan konversi diaktifkan untuk link Dub Anda
  • Pastikan pengguna mengeklik short link Dub Anda sebelum checkout
  • Pastikan cookie dub_id ditetapkan dengan benar di domain Anda
  • Periksa apakah click ID sama antara pembuatan checkout dan penyelesaian pembayaran
  • Pastikan Anda menangkap click ID sebelum membuat checkout session
  • Validasi bahwa struktur JSON sesuai dengan format Track Sale API milik Dub
  • Periksa apakah semua field yang diperlukan (clickId, externalId, amount) tersedia
  • Pastikan jumlah dinyatakan dalam satuan sen (integer, bukan desimal)
  • Pastikan URL endpoint API sudah benar: https://api.dub.co/track/sale
  • Uji transformasi dengan payload webhook contoh
  • Pastikan Anda hanya melacak pada event payment.succeeded, bukan payment.processing
  • Gunakan nilai invoiceId yang unik untuk setiap penjualan
  • Untuk subscription, tambahkan timestamp atau periode penagihan agar tidak terjadi duplikasi saat perpanjangan

Sumber Daya Tambahan

Dub Conversions Documentation

Pelajari lebih lanjut tentang fitur pelacakan konversi dan analitik Dub.

Dub Track Sale API

Lihat referensi API lengkap untuk endpoint Track Sale Dub.

Dub Dashboard

Akses dashboard Dub Anda untuk melihat analitik konversi dan data atribusi.

Webhook Events Guide

Pelajari semua event webhook Dodo Payments yang tersedia.
Butuh bantuan? Hubungi dukungan Dodo Payments di support@dodopayments.com untuk mendapatkan bantuan terkait integrasi.
Terakhir diubah pada 6 Agustus 2026