Zum Hauptinhalt springen

Einführung

DataFast ist ein umsatzorientiertes Analysetool, das Ihnen hilft, herauszufinden, welche Marketingkanäle zahlende Kunden anziehen. Durch die Integration von Dodo Payments mit DataFast können Sie Einnahmen Ihren Traffic-Quellen zuordnen, wertvolle Kundensegmente identifizieren und datengestützte Entscheidungen zur Geschäftswachstum treffen.
Für diese Integration wird Ihr DataFast API-Schlüssel benötigt, den Sie in Ihrem DataFast-Dashboard erhalten können.

So funktioniert es

DataFast verfolgt Besucher über eine eindeutige Besucher-ID, die in einem Cookie gespeichert ist. Um Einnahmen Marketingkanälen zuzuordnen, müssen Sie:
  1. Erfassen Sie die DataFast-Besucher-ID aus dem datafast_visitor_id-Cookie beim Erstellen von Checkout-Sitzungen
  2. Speichern Sie die Besucher-ID in Ihren Zahlungs-Metadaten
  3. Senden Sie Zahlungsdaten an DataFast, wenn Zahlungen erfolgreich sind, über deren Payment API
Dies ermöglicht es DataFast, erfolgreiche Zahlungen mit der ursprünglichen Traffic-Quelle abzugleichen, sodass Sie eine vollständige Einnahmenzuordnung erhalten.

Erste Schritte

1

Install DataFast Script

Installieren Sie zunächst das DataFast-Tracking-Skript auf Ihrer Website. Dadurch wird das datafast_visitor_id-Cookie erstellt, das Ihre Besucher verfolgt.Rufen Sie die DataFast-Dokumentation auf, um plattformspezifische Installationsanweisungen zu erhalten.
2

Get Your API Key

Melden Sie sich bei Ihrem DataFast-Dashboard an und rufen Sie Ihre Website-Einstellungen auf, um Ihren API-Schlüssel zu erhalten.
Halten Sie Ihren API-Schlüssel sicher und geben Sie ihn niemals im Client-Code preis.
3

Capture Visitor ID in Checkout

Erfassen Sie beim Erstellen einer Checkout-Sitzung die DataFast-Besucher-ID aus dem Cookie und fügen Sie sie Ihren Zahlungs-Metadaten hinzu.
4

Send Payment Data via Webhook

Konfigurieren Sie einen Webhook, um Zahlungsdaten an die Payment API von DataFast zu senden, wenn Zahlungen erfolgreich sind.
5

Done!

🎉 Umsatzdaten erscheinen nun in Ihrem DataFast-Dashboard mit vollständiger Zuordnung zu Marketingkanälen.

Implementierungsanleitung

Schritt 1: Besucher-ID zu Checkout-Metadaten hinzufügen

Beim Erstellen einer Checkout-Sitzung erfassen Sie die DataFast-Besucher-ID aus dem Cookie und fügen Sie sie Ihren Zahlungsmetadaten hinzu.
import { cookies } from 'next/headers';
import { dodopayments } from '@/lib/dodopayments';

export async function createCheckout(productId: string) {
  // Capture DataFast visitor ID from cookie
  const datafastVisitorId = cookies().get('datafast_visitor_id')?.value;

  const payment = await dodopayments.payments.create({
    product_id: productId,
    // ... other payment configuration
    metadata: {
      datafast_visitor_id: datafastVisitorId, // Store visitor ID in metadata
    },
  });

  return payment;
}

Schritt 2: Zahlungsdaten an DataFast senden

Konfigurieren Sie einen Webhook-Endpunkt, um Zahlungsdaten an die Payment API von DataFast zu senden, wenn Zahlungen erfolgreich sind.
1

Open the Webhook Section

Navigieren Sie in Ihrem Dodo Payments-Dashboard zu Webhooks → + Add Endpoint und öffnen Sie das Integrations-Dropdown.
Endpunkt hinzufügen und Integrations-Dropdown
2

Select DataFast

Wählen Sie die DataFast-Integrationskarte aus.
3

Enter API Key

Geben Sie Ihren DataFast API-Schlüssel im Konfigurationsfeld ein.
API-Schlüssel hinzufügen
4

Configure Transformation

Bearbeiten Sie den Transformationscode, um Zahlungsdaten für die Payment API von DataFast zu formatieren.
5

Test & Create

Testen Sie mit Beispiel-Payloads und klicken Sie auf Create, um die Integration zu aktivieren.

Transformationscode-Beispiele

Grundlegende Zahlungszuordnung

basic_payment.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const payment = webhook.payload.data;
    
    // Only send to DataFast if visitor ID exists in metadata
    if (payment.metadata && payment.metadata.datafast_visitor_id) {
      webhook.payload = {
        amount: payment.total_amount / 100, // Convert from cents to dollars
        currency: payment.currency,
        transaction_id: payment.payment_id,
        datafast_visitor_id: payment.metadata.datafast_visitor_id,
      };
    } else {
      // Cancel dispatch if no visitor ID (prevents unnecessary API calls)
      webhook.cancel = true;
    }
  }
  return webhook;
}

Umgang mit Währungen ohne Dezimalstellen

Einige Währungen (wie JPY) verwenden keine Dezimalstellen. Passen Sie die Betragsberechnung entsprechend an:
zero_decimal.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const payment = webhook.payload.data;
    
    if (payment.metadata && payment.metadata.datafast_visitor_id) {
      // Zero decimal currencies: JPY, KRW, CLP, etc.
      const zeroDecimalCurrencies = ['JPY', 'KRW', 'CLP', 'VND', 'UGX', 'MGA'];
      const isZeroDecimal = zeroDecimalCurrencies.includes(payment.currency);
      
      webhook.payload = {
        amount: isZeroDecimal 
          ? payment.total_amount // Use amount as-is for zero decimal currencies
          : payment.total_amount / 100, // Convert from cents for other currencies
        currency: payment.currency,
        transaction_id: payment.payment_id,
        datafast_visitor_id: payment.metadata.datafast_visitor_id,
      };
    } else {
      // Cancel dispatch if no visitor ID (prevents unnecessary API calls)
      webhook.cancel = true;
    }
  }
  return webhook;
}

Abonnementzahlungen

Für wiederkehrende Abonnementzahlungen können Sie jede Zahlung verfolgen:
subscription_payment.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const payment = webhook.payload.data;
    
    // Check if this is a subscription payment
    const isSubscription = payment.subscription_id !== null;
    
    if (payment.metadata && payment.metadata.datafast_visitor_id) {
      webhook.payload = {
        amount: payment.total_amount / 100,
        currency: payment.currency,
        transaction_id: payment.payment_id,
        datafast_visitor_id: payment.metadata.datafast_visitor_id,
        // Optional: Add subscription context
        ...(isSubscription && {
          subscription_id: payment.subscription_id,
        }),
      };
    } else {
      // Cancel dispatch if no visitor ID (prevents unnecessary API calls)
      webhook.cancel = true;
    }
  }
  return webhook;
}

Best Practices

Erfassen Sie die Besucher-ID frühzeitig: Speichern Sie die DataFast-Besucher-ID so früh wie möglich im Checkout-Prozess, um eine genaue Attribution zu gewährleisten, selbst wenn der Benutzer die Seite verlässt und später zurückkehrt.
  • Immer die Besucher-ID in den Metadaten einfügen: Ohne die Besucher-ID kann DataFast keine Einnahmen Marketingkanälen zuordnen
  • Umgang mit Währungen ohne Dezimalstellen: Einige Währungen (JPY, KRW usw.) verwenden keine Dezimalstellen – passen Sie Ihre Betragsberechnung entsprechend an
  • Testen Sie mit Beispielzahlungen: Überprüfen Sie, ob die Integration korrekt funktioniert, bevor Sie live gehen
  • Überwachen Sie Ihr DataFast-Dashboard: Überprüfen Sie, ob Zahlungen korrekt mit der richtigen Zuordnung angezeigt werden
  • Verwenden Sie Webhook-Wiederholungen: Die Payment API von DataFast ist idempotent, daher sind Wiederholungen sicher, wenn ein Webhook fehlschlägt

Fehlersuche

  • Überprüfen Sie, ob Ihr DataFast API-Schlüssel korrekt und aktiv ist
  • Stellen Sie sicher, dass das datafast_visitor_id erfasst und in den Zahlungs-Metadaten gespeichert wird
  • Vergewissern Sie sich, dass die Webhook-Transformation die Nutzlast korrekt formatiert
  • Prüfen Sie, ob der Webhook bei payment.succeeded-Ereignissen ausgelöst wird
  • Kontrollieren Sie das DataFast-Dashboard auf Fehlermeldungen oder API-Protokolle
  • Bestätigen Sie, dass das DataFast-Tracking-Skript auf Ihrer Website installiert und funktionsfähig ist
  • Überprüfen Sie, dass das datafast_visitor_id-Cookie korrekt gesetzt wird
  • Stellen Sie sicher, dass die Besucher-IDs zwischen der Erstellung des Checkouts und dem Abschluss der Zahlung übereinstimmen
  • Erfassen Sie die Besucher-ID, bevor Sie die Checkout-Sitzung erstellen
  • Lesen Sie die DataFast Payment API-Dokumentation für weitere Hinweise
  • Validieren Sie, dass die JSON-Struktur dem Format der Payment API von DataFast entspricht
  • Prüfen Sie, dass alle erforderlichen Felder (amount, currency, transaction_id, datafast_visitor_id) vorhanden sind
  • Stellen Sie sicher, dass der Betrag korrekt umgerechnet wird (für die meisten Währungen durch 100 teilen, außer bei Währungen ohne Dezimalstellen)
  • Überprüfen Sie, dass die API-Endpunkt-URL korrekt ist: https://datafa.st/api/v1/payments
  • Testen Sie die Transformation mit Beispiel-Webhook-Payloads
  • Für Währungen ohne Dezimalstellen (JPY, KRW, CLP, VND, UGX, MGA) senden Sie den Betrag unverändert, ohne durch 100 zu teilen
  • Für alle anderen Währungen teilen Sie den Betrag durch 100, um von Cent zur Basiseinheit zu konvertieren
  • Prüfen Sie doppelt, dass der Währungscode dem ISO-4217-Format entspricht (z. B. “USD”, “EUR”, “JPY”)

Zusätzliche Ressourcen

Benötigen Sie Hilfe? Kontaktieren Sie den Dodo Payments Support unter support@dodopayments.com für Unterstützung bei der Integration.