Skip to main content

Introduction

Dub ist eine Plattform zur Link-Attribution für Shortlinks, Conversion-Tracking und Affiliate-Programme. Mit dieser Integration erfasst Dub jedes Mal ein Sale-Conversion-Event, wenn ein Kunde über Dodo Payments bezahlt. So können Sie den Erfolg Ihrer Marketingkampagnen und Empfehlungsprogramme messen. Dub erfasst einen Sale, wenn ein Kunde:
  • Eine einmalige Zahlung abschließt
  • Ein kostenpflichtiges Abo abschließt
  • Eine wiederkehrende Abonnementzahlung leistet
Für diese Integration benötigen Sie ein Dub-Konto mit aktiviertem Conversion-Tracking für Ihre Links. Für das Conversion-Tracking von Dub ist ein Business-Plan oder höher erforderlich.
Integration des Affiliate-Programms: Diese Integration funktioniert auch mit Dub Partners, dem Affiliate-Programm-Produkt von Dub. Dub ordnet Verkäufe den Affiliate-Links Ihrer Partner zu, sodass Sie Empfehlungen, Provisionen und die Leistung jedes Partners verfolgen können. Informationen zum Einrichten eines Affiliate-Programms finden Sie im Leitfaden zur Affiliates-Funktion.

How It Works

Wenn ein Besucher auf einen Ihrer Dub-Shortlinks klickt, speichert Dub eine eindeutige Klick-ID im Cookie dub_id. So ordnen Sie Verkäufe Ihren Links zu:
  1. Erfassen Sie die Klick-ID von Dub aus dem Cookie dub_id, wenn Sie den Checkout erstellen.
  2. Speichern Sie die Klick-ID im metadata der Zahlung zusammen mit der ID Ihres Kunden in Ihrem System (der externen ID).
  3. Senden Sie den Sale an Dub über die Track API, sobald die Zahlung erfolgreich ist.
Dub ordnet jeden erfolgreichen Sale dem ursprünglichen Linkklick zu und schreibt die Conversion diesem Link gut.

Prerequisites

Bevor Sie diese Integration einrichten, benötigen Sie:
  1. Ein Dub-Konto mit einem Workspace.
  2. Aktiviertes Conversion-Tracking für Ihre Links.
  3. Einen Dub API-Key, den Sie in Ihrem Dub-Dashboard unter Settings → API Keys erstellen.

Getting Started

1

Enable Conversion Tracking in Dub

Aktivieren Sie in Ihrem Dub-Dashboard das Conversion-Tracking für die Links, für die Sie Verkäufe verfolgen möchten. Dub erfasst anschließend Sale-Events für Kunden, die über diese Links zu Ihnen gelangen.
Informationen zum Aktivieren des Conversion-Trackings finden Sie in der Dub-Dokumentation.
2

Get Your Dub API Key

Öffnen Sie in Ihrem Dub-Dashboard Settings → API Keys und erstellen Sie einen API-Key mit dem Bereich conversions.write.
Bewahren Sie Ihren API-Key sicher auf. Legen Sie ihn niemals in clientseitigem Code offen.
3

Capture Click ID in Checkout

Lesen Sie beim Erstellen eines Checkouts die Dub-Klick-ID aus dem Cookie aus und fügen Sie sie zum metadata der Zahlung hinzu. Siehe Schritt 1.
4

Send Sale Data via Webhook

Erstellen Sie einen Webhook-Endpunkt, der jeden Sale an die Track API von Dub sendet, sobald eine Zahlung erfolgreich ist. Siehe Schritt 2.
5

Done

Sale-Conversion-Events werden Ihrem Dub-Analytics-Dashboard angezeigt und Ihren Links zugeordnet.

Implementation Guide

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

Lesen Sie beim Erstellen eines Checkouts die Dub-Klick-ID aus dem Cookie aus und fügen Sie sie zusammen mit der externen ID Ihres Kunden in das metadata der Zahlung ein.
Die folgenden Beispiele verwenden POST /payments, das veraltet ist. Es funktioniert weiterhin für bestehende Integrationen, neue Integrationen sollten jedoch Checkout Sessions (POST /checkouts) verwenden, die metadata auf dieselbe Weise akzeptieren.

Schritt 2: Verkaufsdaten an Dub senden

Erstellen Sie einen Webhook-Endpunkt, der Zahlungsdaten an die Track API von Dub sendet, sobald eine Zahlung erfolgreich ist.
1

Open the Webhook Section

Gehen Sie im Dodo Payments-Dashboard zu Developer → Webhooks und klicken Sie auf Add endpoint.
Add endpoint dialog with Dub.co selected in the Integration dropdown
2

Select Dub

Wählen Sie unter Integration Dub.co aus.
3

Enter API Key

Fügen Sie unter API key Ihren Dub-API-Schlüssel ein. Dodo Payments sendet ihn bei jeder Zustellung im Header Authorization.
API key field for the Dub integration
4

Check the URL and Events

Wenn Endpoint URL leer ist, geben Sie https://api.dub.co/track/sale ein. Wählen Sie unter Subscribed events die Ereignisse aus, die Ihre Transformation verarbeitet, zum Beispiel payment.succeeded.
5

Configure Transformation

Bearbeiten Sie unter Transformation code den Handler so, dass Zahlungsdaten für die Track Sale API von Dub formatiert werden. Beginnen Sie mit den Beispielen.
6

Test & Create

Klicken Sie unter Test this code auf Simulate, um den Handler mit einer Beispielnutzlast auszuführen. Klicken Sie anschließend auf Create endpoint.

Beispiele für Transformationscode

Jeder Handler sendet einen Verkauf nur dann an Dub, wenn metadata eine Click-ID enthält. Bei organischem Traffic ohne Click-ID wird webhook.cancel = true gesetzt, sodass keine Anfrage an Dub gesendet wird. Die abgebrochene Zustellung wird in den Webhook-Protokollen dennoch als erfolgreich angezeigt. Der Request-Body folgt der Track Sale API von Dub: customerExternalId und amount sind erforderlich, und paymentProcessor ist custom, da die Liste der Zahlungsanbieter von Dub keinen Wert für Dodo Payments enthält. Dub erwartet amount in derselben Einheit wie die Beträge von Dodo Payments: Cent bei Währungen mit zwei Dezimalstellen und den vollständigen ganzzahligen Wert bei Währungen ohne Dezimalstellen wie JPY. Die Beispiele übergeben den Betrag unverändert.

Einfaches Tracking von Verkäufen

Verfolgen Sie einen Verkauf, sobald eine Zahlung erfolgreich ist:
basic_sale.js

Tracking von Abonnementverkäufen

Verfolgen Sie sowohl erstmalige Abonnements als auch wiederkehrende Zahlungen. Verwenden Sie diesen Handler für Abonnements anstelle der Handler für payment.succeeded und nicht zusätzlich dazu: Jede Abonnementzahlung löst ebenfalls payment.succeeded aus. Wenn beide Ereignisse verarbeitet werden, wird jeder Verkauf zweimal erfasst. Siehe den Leitfaden zur Abonnementintegration. Der Handler liest die Click-ID aus dem metadata des Abonnements. Übergeben Sie daher dieselben Metadaten, wenn Sie das Abonnement erstellen. Bei Verlängerungen kombiniert invoiceId die Abonnement-ID mit previous_billing_date, dem Beginn des aktuellen Abrechnungszeitraums. Dadurch verwendet eine wiederholte Zustellung dieselbe invoiceId erneut.
subscription_sale.js

Tracking von Verkäufen ohne Steuern

Senden Sie nur den Betrag vor Steuern an Dub, damit der Umsatz in Dub keine Steuern enthält:
sale_without_tax.js

Tracking von Verkäufen mit benutzerdefinierten Ereignisnamen

Verwenden Sie benutzerdefinierte Ereignisnamen, um verschiedene Verkaufsarten zu kategorisieren. Das Beispiel liest ein is_upgrade-Flag, das Sie im metadata der Zahlung setzen:
custom_events.js

Alternative: clientseitige Implementierung

Um Verkäufe über Ihren eigenen Server statt über eine Webhook-Transformation zu verfolgen, rufen Sie die Track API von Dub direkt nach einer erfolgreichen Zahlung auf, beispielsweise aus Ihrem payment.succeeded-Webhook-Handler. Der Code verwendet Ihren Dub-API-Schlüssel. Führen Sie ihn daher auf Ihrem Server und niemals im Browser aus.

Best Practices

Click-ID frühzeitig erfassen: Speichern Sie die Dub-Click-ID möglichst früh in Ihrem Checkout-Ablauf, damit die Zuordnung korrekt bleibt, selbst wenn der Kunde die Seite verlässt und später zurückkehrt.
  • Click-ID in Metadaten aufnehmen: Ohne die Click-ID kann Dub Umsätze Ihren Links nicht zuordnen.
  • Externe IDs konsistent verwenden: Übergeben Sie jedes Mal dieselbe Kunden-ID aus Ihrem System als customerExternalId, um genaue Analysen auf Kundenebene zu ermöglichen.
  • Organischen Traffic verarbeiten: Setzen Sie webhook.cancel = true, wenn keine Click-ID vorhanden ist, um unnötige API-Aufrufe zu vermeiden.
  • Mit Beispielzahlungen testen: Führen Sie den Handler mit Test this code aus und bestätigen Sie, dass die Integration funktioniert, bevor Sie live gehen.
  • Ihr Dub-Dashboard überwachen: Prüfen Sie, ob Verkäufe mit der erwarteten Zuordnung angezeigt werden.

Wichtige Hinweise

  • Betragsformat: Dub erwartet Beträge bei Währungen mit zwei Dezimalstellen in Cent (beispielsweise entspricht $10.00 1000) und bei Währungen ohne Dezimalstellen als vollständige Ganzzahl, etwa bei JPY.
  • Währung: Verwenden Sie ISO-4217-Währungscodes wie USD, EUR und GBP. Dub rechnet jeden Verkauf zum aktuellen Wechselkurs in USD um.
  • Kostenlose Testzeiträume: Die Track Sale API von Dub akzeptiert einen amount von 0. Die Beispiele überspringen daher keine Zahlungen über $0, sodass jede Zahlung über $0 Dub als Verkauf erreicht. Um Zahlungen über $0 zu überspringen, setzen Sie webhook.cancel = true, wenn total_amount 0 ist.
  • Rückerstattungen: Wenn Sie eine genaue Umsatzberichterstattung benötigen, erfassen Sie Rückerstattungen separat.

Fehlerbehebung

  • Vergewissern Sie sich, dass Ihr Dub-API-Schlüssel korrekt ist und über den conversions.write-Bereich verfügt.
  • Prüfen Sie, ob die dub_click_id erfasst und in den Zahlungsmetadaten gespeichert wird.
  • Prüfen Sie, ob die Webhook-Transformation die Nutzlast korrekt formatiert.
  • Vergewissern Sie sich, dass der Endpunkt für payment.succeeded abonniert ist.
  • Bestätigen Sie, dass Conversion-Tracking für Ihre Dub-Links aktiviert ist.
  • Öffnen Sie die Zustellversuche des Endpunkts im Tab Logs unter Developer → Webhooks, um die Antwort von Dub zu sehen. Eine Zahlung ohne Click-ID wird abgebrochen und als erfolgreich angezeigt.
  • Bestätigen Sie, dass Kunden vor dem Checkout auf Ihre Dub-Kurzlinks klicken.
  • Vergewissern Sie sich, dass das Cookie dub_id auf Ihrer Domain gesetzt wird.
  • Prüfen Sie, ob die Click-ID in den Zahlungsmetadaten mit dem Klick des Kunden übereinstimmt.
  • Erfassen Sie die Click-ID, bevor Sie den Checkout erstellen.
  • Prüfen Sie, ob die Nutzlast dem Format der Track Sale API von Dub entspricht.
  • Prüfen Sie, ob die erforderlichen Felder customerExternalId und amount vorhanden sind und clickId für die Zuordnung gesetzt ist.
  • Prüfen Sie, ob der Betrag eine Ganzzahl in der kleinsten Währungseinheit und keine Dezimalzahl ist.
  • Vergewissern Sie sich, dass die Endpunkt-URL https://api.dub.co/track/sale lautet.
  • Testen Sie die Transformation mit Beispielnutzlasten von Webhooks.
  • Verfolgen Sie Verkäufe nur bei payment.succeeded-Ereignissen, nicht bei payment.processing.
  • Verwenden Sie für jeden Verkauf eine eindeutige invoiceId. Dub erfasst für jede invoiceId nur einen Verkauf.
  • Erstellen Sie bei Verlängerungen invoiceId aus der Abonnement-ID und dem Abrechnungszeitraum wie unter Tracking von Abonnementverkäufen beschrieben. Ein Wert, der sich bei jeder Zustellung ändert, etwa die aktuelle Zeit, erfasst bei einer wiederholten Zustellung einen doppelten Verkauf.

Zusätzliche Ressourcen

Dub Conversions Documentation

Lesen Sie mehr über die Conversion-Tracking- und Analysefunktionen von Dub.

Dub Track Sale API

Lesen Sie die vollständige API-Referenz für den Track-Sale-Endpunkt von Dub.

Dub Dashboard

Zeigen Sie Conversion-Analysen und Zuordnungsdaten in Ihrem Dub-Dashboard an.

Webhook Events Guide

Durchsuchen Sie alle Dodo Payments-Webhook-Ereignisse.
Bei Fragen zu dieser Integration wenden Sie sich unter support@dodopayments.com an den Support von Dodo Payments.
Zuletzt geändert am 26. September 2026