Skip to main content

Introduction

Dub adalah platform atribusi link untuk short link, pelacakan konversi, dan program afiliasi. Dengan integrasi ini, Dub mencatat event konversi penjualan setiap kali pelanggan membayar melalui Dodo Payments, sehingga Anda dapat mengukur hasil kampanye pemasaran dan program referral Anda. Dub mencatat penjualan saat pelanggan:
  • Menyelesaikan pembayaran satu kali
  • Berlangganan paket berbayar
  • Melakukan pembayaran langganan berulang
Integrasi ini memerlukan akun Dub dengan pelacakan konversi yang diaktifkan pada link Anda. Pelacakan konversi Dub memerlukan paket Business atau lebih tinggi.
Integrasi Program Afiliasi: Integrasi ini juga berfungsi dengan Dub Partners, produk program afiliasi Dub. Dub mengatribusikan penjualan ke link afiliasi partner Anda, sehingga Anda dapat melacak referral, komisi, dan performa setiap partner. Untuk menyiapkan program afiliasi, lihat panduan fitur Affiliates.

How It Works

Saat pengunjung mengeklik salah satu short link Dub Anda, Dub menyimpan ID klik unik dalam cookie dub_id. Untuk mengatribusikan penjualan ke link Anda:
  1. Ambil ID klik Dub dari cookie dub_id saat Anda membuat checkout.
  2. Simpan ID klik di metadata pembayaran, bersama ID pelanggan Anda di sistem (external ID).
  3. Kirim penjualan ke Dub melalui Track API saat pembayaran berhasil.
Dub mencocokkan setiap penjualan yang berhasil dengan klik link asli, sehingga konversi dapat diatribusikan ke link tersebut.

Prerequisites

Sebelum menyiapkan integrasi ini, Anda memerlukan:
  1. Akun Dub dengan workspace.
  2. Pelacakan konversi yang diaktifkan untuk link Anda.
  3. API key Dub, yang dibuat di dashboard Dub Anda melalui Settings → API Keys.

Getting Started

1

Enable Conversion Tracking in Dub

Di dashboard Dub, aktifkan pelacakan konversi untuk link yang ingin Anda gunakan untuk melacak penjualan. Dub kemudian mencatat event penjualan untuk pelanggan yang datang melalui link tersebut.
Untuk mengaktifkan pelacakan konversi, lihat dokumentasi Dub.
2

Get Your Dub API Key

Di dashboard Dub, buka Settings → API Keys dan buat API key dengan scope conversions.write.
Jaga keamanan API key Anda. Jangan pernah mengeksposnya dalam code sisi klien.
3

Capture Click ID in Checkout

Saat membuat checkout, baca ID klik Dub dari cookie dan tambahkan ke metadata pembayaran. Lihat Langkah 1.
4

Send Sale Data via Webhook

Buat endpoint webhook yang mengirim setiap penjualan ke Track API Dub saat pembayaran berhasil. Lihat Langkah 2.
5

Done

Event konversi penjualan muncul di dashboard analitik Dub Anda, diatribusikan ke link Anda.

Implementation Guide

Step 1: Add Click ID and Customer ID to Checkout Metadata

Saat membuat checkout, baca ID klik Dub dari cookie dan sertakan dalam metadata pembayaran, bersama external ID pelanggan Anda.
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), yang menerima metadata dengan cara yang sama.

Langkah 2: Kirim Data Penjualan ke Dub

Buat endpoint webhook yang mengirim data penjualan ke Track API Dub saat pembayaran berhasil.
1

Open the Webhook Section

Di dashboard Dodo Payments, buka Developer → Webhooks lalu klik Add endpoint.
Dialog Add endpoint dengan Dub.co dipilih di dropdown Integration
2

Select Dub

Di Integration, pilih Dub.co.
3

Enter API Key

Di API key, tempel API key Dub Anda. Dodo Payments mengirimkannya di header Authorization pada setiap pengiriman.
Kolom API key untuk integrasi Dub
4

Check the URL and Events

Jika Endpoint URL kosong, masukkan https://api.dub.co/track/sale. Di Subscribed events, pilih event yang ditangani oleh transformasi Anda, seperti payment.succeeded.
5

Configure Transformation

Di bawah Transformation code, edit handler untuk memformat data pembayaran untuk Track Sale API milik Dub. Mulai dari contoh.
6

Test & Create

Di bawah Test this code, klik Simulate untuk menjalankan handler terhadap payload contoh. Kemudian klik Create endpoint.

Contoh Kode Transformasi

Setiap handler hanya mengirim penjualan ke Dub jika metadata memiliki click ID. Untuk traffic organik tanpa click ID, handler menetapkan webhook.cancel = true, sehingga tidak ada request yang dikirim ke Dub; pengiriman yang dibatalkan tetap ditampilkan sebagai berhasil di log webhook. Body request mengikuti Track Sale API milik Dub: customerExternalId dan amount wajib diisi, sedangkan paymentProcessor adalah custom karena daftar pemroses pembayaran Dub tidak memiliki nilai Dodo Payments. Dub menggunakan amount dalam unit yang sama seperti jumlah Dodo Payments: sen untuk mata uang dengan dua angka desimal, dan bilangan bulat penuh untuk mata uang tanpa angka desimal seperti JPY. Contoh-contoh tersebut meneruskan jumlah tanpa perubahan.

Pelacakan Penjualan Dasar

Lacak penjualan saat pembayaran berhasil:
basic_sale.js

Melacak Penjualan Langganan

Lacak langganan awal dan pembayaran berulang. Gunakan handler ini untuk langganan, bukan handler payment.succeeded, dan jangan gunakan keduanya secara bersamaan: setiap pembayaran langganan juga memicu payment.succeeded, sehingga menangani kedua event akan mencatat setiap penjualan dua kali. Lihat Panduan Integrasi Langganan. Handler membaca click ID dari metadata milik langganan, jadi teruskan metadata yang sama saat membuat langganan. Untuk perpanjangan, invoiceId menggabungkan ID langganan dengan previous_billing_date, yaitu awal periode penagihan saat ini, sehingga pengiriman yang dicoba ulang menggunakan kembali invoiceId yang sama.
subscription_sale.js

Melacak Penjualan Tanpa Pajak

Kirim hanya jumlah sebelum pajak ke Dub agar pendapatan di Dub tidak mencakup pajak:
sale_without_tax.js

Melacak Penjualan dengan Nama Event Kustom

Gunakan nama event kustom untuk mengategorikan berbagai jenis penjualan. Contoh ini membaca flag is_upgrade yang Anda tetapkan di metadata pembayaran:
custom_events.js

Alternatif: Implementasi Sisi Klien

Untuk melacak penjualan dari server Anda sendiri, bukan melalui transformasi webhook, panggil Track API Dub secara langsung setelah pembayaran berhasil, misalnya dari handler webhook payment.succeeded Anda. Kode ini menggunakan API key Dub Anda, jadi jalankan di server Anda, jangan pernah di browser.

Praktik Terbaik

Ambil click ID lebih awal: Simpan click ID Dub sedini mungkin dalam alur checkout Anda agar atribusi tetap akurat meskipun pelanggan pergi lalu kembali nanti.
  • 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 dari sistem Anda sebagai customerExternalId setiap kali untuk analitik tingkat pelanggan yang akurat.
  • Tangani traffic organik: Tetapkan webhook.cancel = true jika tidak ada click ID untuk menghindari panggilan API yang tidak perlu.
  • Uji dengan pembayaran contoh: Jalankan handler dengan Test this code, lalu pastikan integrasi berfungsi sebelum Anda mulai menggunakannya secara live.
  • Pantau dashboard Dub Anda: Periksa apakah penjualan muncul dengan atribusi yang diharapkan.

Catatan Penting

  • Format jumlah: Dub mengharapkan jumlah dalam sen untuk mata uang dengan dua angka desimal (misalnya, $10.00 adalah 1000) dan bilangan bulat penuh untuk mata uang tanpa angka desimal seperti JPY.
  • Mata uang: Gunakan kode mata uang ISO 4217, seperti USD, EUR, dan GBP. Dub mengonversi setiap penjualan ke USD berdasarkan nilai tukar terbaru.
  • Uji coba gratis: Track Sale API Dub menerima amount sebesar 0, dan contoh-contohnya tidak melewati pembayaran $0, sehingga setiap pembayaran $0 diteruskan ke Dub sebagai penjualan. Untuk melewati pembayaran $0, tetapkan webhook.cancel = true saat total_amount adalah 0.
  • Pengembalian dana: Jika Anda memerlukan pelaporan pendapatan yang akurat, lacak pengembalian dana secara terpisah.

Pemecahan Masalah

  • Pastikan API key Dub Anda benar dan memiliki cakupan conversions.write.
  • Periksa apakah dub_click_id telah diambil dan disimpan dalam metadata pembayaran.
  • Periksa apakah transformasi webhook memformat payload dengan benar.
  • Pastikan endpoint berlangganan ke payment.succeeded.
  • Pastikan conversion tracking diaktifkan untuk link Dub Anda.
  • Buka upaya pengiriman endpoint di tab Logs pada Developer → Webhooks untuk melihat respons Dub. Pembayaran tanpa click ID dibatalkan dan ditampilkan sebagai berhasil.
  • Pastikan pelanggan mengeklik short link Dub Anda sebelum checkout.
  • Pastikan cookie dub_id ditetapkan di domain Anda.
  • Periksa apakah click ID dalam metadata pembayaran cocok dengan klik yang dilakukan pelanggan.
  • Ambil click ID sebelum membuat checkout.
  • Periksa apakah payload sesuai dengan format Track Sale API Dub.
  • Periksa apakah field wajib, customerExternalId dan amount, tersedia, dan clickId ditetapkan untuk atribusi.
  • Periksa apakah jumlah berupa bilangan bulat dalam unit mata uang terkecil, bukan desimal.
  • Pastikan URL endpoint adalah https://api.dub.co/track/sale.
  • Uji transformasi dengan payload webhook contoh.
  • Lacak penjualan hanya pada event payment.succeeded, bukan pada payment.processing.
  • Gunakan invoiceId yang unik untuk setiap penjualan. Dub hanya mencatat satu penjualan untuk setiap invoiceId.
  • Untuk perpanjangan, buat invoiceId dari ID langganan dan periode penagihan, seperti pada Melacak Penjualan Langganan. Nilai yang berubah pada setiap pengiriman, seperti waktu saat ini, akan mencatat penjualan duplikat saat pengiriman dicoba ulang.

Sumber Daya Tambahan

Dub Conversions Documentation

Pelajari conversion tracking dan fitur analitik Dub.

Dub Track Sale API

Lihat referensi API lengkap untuk endpoint Track Sale Dub.

Dub Dashboard

Lihat analitik konversi dan data atribusi di dashboard Dub Anda.

Webhook Events Guide

Telusuri semua event webhook Dodo Payments.
Untuk bantuan terkait integrasi ini, hubungi dukungan Dodo Payments di support@dodopayments.com.
Terakhir diubah pada 26 September 2026