Introduction
Dub är en plattform för länkattribuering för kortlänkar, konverteringsspårning och affiliateprogram. Med denna integration registrerar Dub en konverteringshändelse för försäljning varje gång en kund betalar via Dodo Payments, så att du kan mäta avkastningen på dina marknadsföringskampanjer och hänvisningsprogram. Dub registrerar en försäljning när en kund:- Slutför en engångsbetalning
- Prenumererar på ett betalt abonnemang
- Genomför en återkommande abonnemangsbetalning
Denna integration kräver ett Dub-konto med konverteringsspårning aktiverad för dina länkar. Dubs konverteringsspårning kräver en Business-plan eller högre.
How It Works
När en besökare klickar på en av dina kortlänkar från Dub lagrar Dub ett unikt klick-ID i cookiendub_id. Så här hänför du försäljningar till dina länkar:
- Hämta Dubs klick-ID från cookien
dub_idnär du skapar checkouten. - Lagra klick-ID:t i betalningens
metadatatillsammans med kundens ID i ditt system (det externa ID:t). - Skicka försäljningen till Dub via dess Track API när betalningen lyckas.
Prerequisites
Innan du konfigurerar denna integration behöver du:- Ett Dub-konto med en arbetsyta.
- Konverteringsspårning aktiverad för dina länkar.
- En Dub API-nyckel, som du skapar i din Dub-dashboard under Settings → API Keys.
Getting Started
1
Enable Conversion Tracking in Dub
Aktivera konverteringsspårning för de länkar som du vill spåra försäljningar för i din Dub-dashboard. Dub registrerar sedan försäljningshändelser för kunder som kommer via dessa länkar.
Information om hur du aktiverar konverteringsspårning finns i Dubs dokumentation.
2
Get Your Dub API Key
Gå till Settings → API Keys i din Dub-dashboard och skapa en API-nyckel med scopet
conversions.write.3
Capture Click ID in Checkout
När du skapar en checkout läser du Dubs klick-ID från cookien och lägger till det i betalningens
metadata. Se steg 1.4
Send Sale Data via Webhook
Skapa en webhook-endpoint som skickar varje försäljning till Dubs Track API när en betalning lyckas. Se steg 2.
5
Done
Konverteringshändelser för försäljning visas i din Dub-analysdashboard och hänförs till dina länkar.
Implementation Guide
Step 1: Add Click ID and Customer ID to Checkout Metadata
När du skapar en checkout läser du Dubs klick-ID från cookien och inkluderar det i betalningensmetadata tillsammans med kundens externa ID.
Exemplen nedan använder
POST /payments, som är föråldrad. Den fungerar fortfarande för befintliga integrationer, men nya integrationer bör använda Checkout Sessions (POST /checkouts), som accepterar metadata på samma sätt.Steg 2: Skicka försäljningsdata till Dub
Skapa en webhook-endpoint som skickar försäljningsdata till Dubs Track API när en betalning lyckas.1
Open the Webhook Section
Gå till Developer → Webhooks i Dodo Payments-instrumentpanelen och klicka på Add endpoint.

2
Select Dub
Välj Dub.co under Integration.
3
Enter API Key
Klistra in din Dub API-nyckel under API key. Dodo Payments skickar den i headern 
Authorization vid varje leverans.
4
Check the URL and Events
Om Endpoint URL är tomt anger du
https://api.dub.co/track/sale. Under Subscribed events väljer du de händelser som din transformation hanterar, till exempel payment.succeeded.5
Configure Transformation
Under Transformation code redigerar du hanteraren så att betalningsdata formateras för Dubs Track Sale API. Börja med exemplen.
6
Test & Create
Under Test this code klickar du på Simulate för att köra hanteraren mot en exempelnyttolast. Klicka sedan på Create endpoint.
Exempel på transformationskod
Varje hanterare skickar endast ett köp till Dub närmetadata har ett klick-ID. För organisk trafik utan klick-ID anges webhook.cancel = true, så ingen begäran skickas till Dub; den avbrutna leveransen visas fortfarande som lyckad i webhook-loggarna.
Begärandekroppen följer Dubs Track Sale API: customerExternalId och amount krävs, och paymentProcessor är custom eftersom Dubs lista över betalningsprocessorer inte innehåller något värde för Dodo Payments. Dub tar emot amount i samma enhet som Dodo Payments-belopp: cent för valutor med två decimaler och hela heltalet för valutor utan decimaler, till exempel JPY. Exemplen skickar beloppet oförändrat.
Grundläggande köpregistrering
Registrera ett köp när en betalning lyckas:basic_sale.js
Registrera prenumerationsköp
Registrera både initiala prenumerationer och återkommande betalningar. Använd den här hanteraren för prenumerationer i stället förpayment.succeeded-hanterarna, inte tillsammans med dem: varje prenumerationsbetalning utlöser även payment.succeeded, så om du hanterar båda händelserna registreras varje köp två gånger. Se integrationsguiden för prenumerationer.
Hanteraren läser klick-ID:t från prenumerationens metadata, så skicka med samma metadata när du skapar prenumerationen. Vid förnyelser kombinerar invoiceId prenumerations-ID:t med previous_billing_date, början av den aktuella faktureringsperioden, så att en återförsökt leverans återanvänder samma invoiceId.
subscription_sale.js
Registrera köp utan skatt
Skicka endast beloppet före skatt till Dub, så att intäkterna i Dub inte inkluderar skatt:sale_without_tax.js
Registrera köp med anpassade händelsenamn
Använd anpassade händelsenamn för att kategorisera olika typer av köp. Exemplet läser enis_upgrade-flagga som du anger i betalningens metadata:
custom_events.js
Alternativ: implementation på klientsidan
Om du vill registrera köp från din egen server i stället för via en webhook-transformation kan du anropa Dubs Track API direkt efter en lyckad betalning, till exempel från dinpayment.succeeded-webhookhanterare. Koden använder din Dub API-nyckel, så kör den på din server, aldrig i webbläsaren.
Bästa praxis
- Inkludera klick-ID:t i metadata: Utan klick-ID:t kan Dub inte attribuera intäkter till dina länkar.
- Använd externa ID:n konsekvent: Skicka samma kund-ID från ditt system som
customerExternalIdvarje gång för korrekta analyser på kundnivå. - Hantera organisk trafik: Ange
webhook.cancel = truenär det saknas klick-ID för att undvika onödiga API-anrop. - Testa med exempelk betalningar: Kör hanteraren med Test this code och bekräfta att integrationen fungerar innan du går live.
- Övervaka din Dub-instrumentpanel: Kontrollera att köp visas med förväntad attribuering.
Viktiga anmärkningar
- Beloppsformat: Dub förväntar sig belopp i cent för valutor med två decimaler (till exempel är $10.00
1000) och hela heltalet för valutor utan decimaler, till exempel JPY. - Valuta: Använd ISO 4217-valutakoder, till exempel USD, EUR och GBP. Dub konverterar varje köp till USD enligt den senaste växelkursen.
- Gratis provperioder: Dubs Track Sale API accepterar ett
amountpå0, och exemplen hoppar inte över betalningar på $0, så varje betalning på $0 når Dub som ett köp. Om du vill hoppa över betalningar på $0 anger duwebhook.cancel = truenärtotal_amountär0. - Återbetalningar: Om du behöver korrekt intäktsrapportering ska du registrera återbetalningar separat.
Felsökning
Sales Not Appearing in Dub
Sales Not Appearing in Dub
- Kontrollera att din Dub API-nyckel är korrekt och har scopet
conversions.write. - Kontrollera att
dub_click_idhar fångats och lagrats i betalningens metadata. - Kontrollera att webhook-transformationen formaterar nyttolasten korrekt.
- Kontrollera att endpointen prenumererar på
payment.succeeded. - Bekräfta att konverteringsspårning är aktiverad för dina Dub-länkar.
- Öppna endpointens leveransförsök på fliken Logs under Developer → Webhooks för att se Dubs svar. En betalning utan klick-ID avbryts och visas som lyckad.
Revenue Attribution Not Working
Revenue Attribution Not Working
- Bekräfta att kunderna klickar på dina korta Dub-länkar före checkout.
- Kontrollera att cookien
dub_idhar angetts på din domän. - Kontrollera att klick-ID:t i betalningens metadata matchar det klick kunden gjorde.
- Fånga klick-ID:t innan du skapar checkouten.
Transformation Errors
Transformation Errors
- Kontrollera att nyttolasten matchar Dubs Track Sale API-format.
- Kontrollera att de obligatoriska fälten
customerExternalIdochamountfinns och attclickIdhar angetts för attribuering. - Kontrollera att beloppet är ett heltal i den minsta valutaenheten, inte ett decimaltal.
- Kontrollera att endpoint-URL:en är
https://api.dub.co/track/sale. - Testa transformationen med exempelnyttolaster från webhooken.
Duplicate Sales Being Tracked
Duplicate Sales Being Tracked
- Registrera endast köp vid
payment.succeeded-händelser, inte vidpayment.processing. - Använd ett unikt
invoiceIdför varje köp. Dub registrerar endast ett köp för varjeinvoiceId. - För förnyelser bygger du
invoiceIdfrån prenumerations-ID:t och faktureringsperioden, som i Registrera prenumerationsköp. Ett värde som ändras vid varje leverans, till exempel den aktuella tiden, registrerar ett dubblettköp när en leverans försöks igen.
Ytterligare resurser
Dub Conversions Documentation
Läs mer om Dubs funktioner för konverteringsspårning och analys.
Dub Track Sale API
Se den fullständiga API-referensen för Dubs Track Sale-endpoint.
Dub Dashboard
Visa konverteringsanalys och attribueringsdata i din Dub-instrumentpanel.
Webhook Events Guide
Bläddra bland alla Dodo Payments-webhookhändelser.
För hjälp med den här integrationen kontaktar du Dodo Payments support på support@dodopayments.com.