Hoppa till huvudinnehåll

Introduktion

DataFast är ett intäktsfokuserat analysverktyg som hjälper dig att upptäcka vilka marknadsföringskanaler som driver betalande kunder. Genom att integrera Dodo Payments med DataFast kan du attributera intäkter till dina trafik källor, identifiera högvärdiga kundsegment och fatta datadrivna beslut för att växa ditt företag.
Denna integration kräver din DataFast API-nyckel, som du kan få från din DataFast-instrumentpanel.

Hur Det Fungerar

DataFast spårar besökare genom ett unikt besökar-ID som lagras i en cookie. För att attributera intäkter till marknadsföringskanaler behöver du:
  1. Fånga DataFast’s besökar-ID från datafast_visitor_id cookien när du skapar kassa sessioner
  2. Lagra besökar-ID i din betalningsmetadata
  3. Skicka betalningsdata till DataFast när betalningar lyckas med deras Betalnings-API
Detta gör att DataFast kan matcha lyckade betalningar med den ursprungliga trafik källan, vilket ger dig fullständig intäktsattribution.

Komma Igång

1

Installera DataFast Script

Först, installera DataFast spårningsscript på din webbplats. Detta skapar datafast_visitor_id cookien som spårar dina besökare.Besök DataFast-dokumentationen för installationsinstruktioner specifika för din plattform.
2

Få Din API-nyckel

Logga in på din DataFast-instrumentpanel och navigera till dina webbplatsinställningar för att få din API-nyckel.
Håll din API-nyckel säker och exponera den aldrig i klientkod.
3

Fånga Besökar-ID i Kassa

När du skapar en kassa session, fånga DataFast besökar-ID från cookien och lägg till det i din betalningsmetadata.
4

Skicka Betalningsdata via Webhook

Konfigurera en webhook för att skicka betalningsdata till DataFast’s Betalnings-API när betalningar lyckas.
5

Klart!

🎉 Intäktsdata kommer nu att visas i din DataFast-instrumentpanel med full attribution till marknadsföringskanaler.

Implementeringsguide

Steg 1: Lägg till Besökar-ID i Kassa Metadata

När du skapar en kassa session, fånga DataFast besökar-ID från cookien och inkludera det i din betalningsmetadata.
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;
}

Steg 2: Skicka Betalningsdata till DataFast

Konfigurera en webhook-endpoint för att skicka betalningsdata till DataFast’s Betalnings-API när betalningar lyckas.
1

Öppna Webhook Sektionen

I din Dodo Payments-instrumentpanel, navigera till Webhooks → + Lägg till Endpoint och expandera integrationsrullgardinen.
Lägg till Endpoint och integrationsrullgardin
2

Välj DataFast

Välj DataFast integrationskortet.
3

Ange API-nyckel

Ange din DataFast API-nyckel i konfigurationsfältet.
Lägg till API-nyckel
4

Konfigurera Transformation

Redigera transformationskoden för att formatera betalningsdata för DataFast’s Betalnings-API.
5

Testa & Skapa

Testa med exempelpayloads och klicka på Skapa för att aktivera integrationen.

Transformationskodsexempel

Grundläggande Betalningsattribution

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?.datafast_visitor_id) {
      webhook.url = "https://datafa.st/api/v1/payments";
      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 {
      // Skip if no visitor ID (prevents unnecessary API calls)
      return null;
    }
  }
  return webhook;
}

Hantera Valutor Utan Decimaler

Vissa valutor (som JPY) använder inte decimaler. Justera beloppsberäkningen därefter:
zero_decimal.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const payment = webhook.payload.data;
    
    if (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.url = "https://datafa.st/api/v1/payments";
      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 {
      return null;
    }
  }
  return webhook;
}

Prenumerationsbetalningar

För återkommande prenumerationsbetalningar kan du spåra varje betalning:
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?.datafast_visitor_id) {
      webhook.url = "https://datafa.st/api/v1/payments";
      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 {
      return null;
    }
  }
  return webhook;
}

Bästa Praxis

Fånga besökar-ID tidigt: Lagra DataFast besökar-ID så tidigt som möjligt i din kassa-flöde för att säkerställa korrekt attribution, även om användaren navigerar bort och återvänder senare.
  • Inkludera alltid besökar-ID i metadata: Utan besökar-ID kan DataFast inte attributera intäkter till marknadsföringskanaler
  • Hantera valutor utan decimaler: Vissa valutor (JPY, KRW, etc.) använder inte decimaler—justera din beloppsberäkning därefter
  • Testa med exempelbetalningar: Verifiera att integrationen fungerar korrekt innan du går live
  • Övervaka din DataFast-instrumentpanel: Kontrollera att betalningar visas korrekt med rätt attribution
  • Använd webhook-retries: DataFast’s Betalnings-API är idempotent, så retries är säkra om en webhook misslyckas

Felsökning

  • Verifiera att din DataFast API-nyckel är korrekt och aktiv
  • Kontrollera att datafast_visitor_id fångas och lagras i betalningsmetadata
  • Säkerställ att webhook-transformationen korrekt formaterar payloaden
  • Verifiera att webhooken triggas på payment.succeeded händelser
  • Kontrollera DataFast-instrumentpanelen för eventuella felmeddelanden eller API-loggar
  • Bekräfta att DataFast spårningsscript är installerat och fungerar på din webbplats
  • Verifiera att datafast_visitor_id cookien sätts korrekt
  • Kontrollera att besökar-ID matchar mellan kassa skapande och betalningsslutförande
  • Säkerställ att du fångar besökar-ID innan du skapar kassa sessionen
  • Granska DataFast’s Betalnings-API-dokumentation för ytterligare vägledning
  • Validera att JSON-strukturen matchar DataFast’s Betalnings-API-format
  • Kontrollera att alla obligatoriska fält (amount, currency, transaction_id, datafast_visitor_id) är närvarande
  • Säkerställ att beloppet konverteras korrekt (dela med 100 för de flesta valutor, utom valutor utan decimaler)
  • Verifiera att API-endpoint-URL:en är korrekt: https://datafa.st/api/v1/payments
  • Testa transformationen med exempel webhook payloads
  • För valutor utan decimaler (JPY, KRW, CLP, VND, UGX, MGA), skicka beloppet som det är utan att dela med 100
  • För alla andra valutor, dela beloppet med 100 för att konvertera från cent till basenhet
  • Dubbelkolla att valutakoden matchar ISO 4217-formatet (t.ex. “USD”, “EUR”, “JPY”)

Ytterligare Resurser

Behöver du hjälp? Kontakta Dodo Payments support på [email protected] för hjälp med integrationen.