Passer au contenu principal

Introduction

DataFast est un outil d’analyse axé sur les revenus qui vous aide à découvrir quels canaux marketing génèrent des clients payants. En intégrant Dodo Payments avec DataFast, vous pouvez attribuer des revenus à vos sources de trafic, identifier des segments de clients à forte valeur et prendre des décisions basées sur les données pour développer votre entreprise.
Cette intégration nécessite votre clé API DataFast, que vous pouvez obtenir depuis votre tableau de bord DataFast.

Comment ça fonctionne

DataFast suit les visiteurs grâce à un identifiant unique de visiteur stocké dans un cookie. Pour attribuer des revenus aux canaux marketing, vous devez :
  1. Capturez l’identifiant visiteur de DataFast à partir du cookie datafast_visitor_id lors de la création des sessions de paiement
  2. Stockez l’ID visiteur dans vos métadonnées de paiement
  3. Envoyez les données de paiement à DataFast lorsque les paiements aboutissent en utilisant leur API Payment
Cela permet à DataFast de faire correspondre les paiements réussis avec la source de trafic d’origine, vous offrant une attribution complète des revenus.

Prise en main

1

Install DataFast Script

Commencez par installer le script de suivi DataFast sur votre site web. Cela crée le cookie datafast_visitor_id qui suit vos visiteurs.Consultez la documentation DataFast pour des instructions d’installation spécifiques à votre plateforme.
2

Get Your API Key

Connectez-vous à votre tableau de bord DataFast et accédez aux paramètres de votre site web pour obtenir votre clé API.
Gardez votre clé API sécurisée et ne l’exposez jamais dans du code côté client.
3

Capture Visitor ID in Checkout

Lors de la création d’une session de paiement, capturez l’ID visiteur DataFast depuis le cookie et ajoutez-le à vos métadonnées de paiement.
4

Send Payment Data via Webhook

Configurez un webhook pour envoyer les données de paiement à l’API Payment de DataFast lorsque les paiements réussissent.
5

Done!

🎉 Les données de revenu apparaîtront désormais dans votre tableau de bord DataFast avec l’attribution complète aux canaux marketing.

Guide d’implémentation

Étape 1 : Ajouter l’identifiant de visiteur aux métadonnées de paiement

Lors de la création d’une session de paiement, capturez l’identifiant de visiteur DataFast depuis le cookie et incluez-le dans vos métadonnées de paiement.
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;
}

Étape 2 : Envoyer les données de paiement à DataFast

Configurez un point de terminaison webhook pour envoyer les données de paiement à l’API de paiement de DataFast lorsque les paiements réussissent.
1

Open the Webhook Section

Dans votre tableau de bord Dodo Payments, allez dans Webhooks → + Ajouter un point de terminaison et développez le menu déroulant des intégrations.
Ajouter un point de terminaison et menu des intégrations
2

Select DataFast

Choisissez la carte d’intégration DataFast.
3

Enter API Key

Fournissez votre clé API DataFast dans le champ de configuration.
Ajouter la clé API
4

Configure Transformation

Éditez le code de transformation pour formater les données de paiement selon l’API Payment de DataFast.
5

Test & Create

Testez avec des charges utiles d’exemple et cliquez sur Créer pour activer l’intégration.

Exemples de code de transformation

Attribution de paiement de base

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;
}

Gérer les devises à zéro décimal

Certaines devises (comme le JPY) n’utilisent pas de décimales. Ajustez le calcul du montant en conséquence :
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;
}

Paiements d’abonnement

Pour les paiements d’abonnement récurrents, vous pouvez suivre chaque paiement :
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;
}

Meilleures pratiques

Capturez l’ID visiteur tôt : stockez l’ID visiteur DataFast dès que possible dans votre flux de paiement pour garantir une attribution précise, même si l’utilisateur quitte puis revient plus tard.
  • Incluez toujours l’identifiant de visiteur dans les métadonnées : Sans l’identifiant de visiteur, DataFast ne peut pas attribuer les revenus aux canaux marketing
  • Gérez les devises à zéro décimal : Certaines devises (JPY, KRW, etc.) n’utilisent pas de décimales—ajustez votre calcul de montant en conséquence
  • Testez avec des paiements d’exemple : Vérifiez que l’intégration fonctionne correctement avant de passer en production
  • Surveillez votre tableau de bord DataFast : Vérifiez que les paiements apparaissent correctement avec une attribution appropriée
  • Utilisez des tentatives de webhook : L’API de paiement de DataFast est idempotente, donc les tentatives sont sûres si un webhook échoue

Dépannage

  • Vérifiez que votre clé API DataFast est correcte et active
  • Assurez-vous que le cookie datafast_visitor_id est bien capturé et stocké dans les métadonnées de paiement
  • Confirmez que la transformation du webhook formate correctement la charge utile
  • Vérifiez que le webhook se déclenche sur les événements payment.succeeded
  • Consultez le tableau de bord DataFast pour tous messages d’erreur ou journaux API
  • Assurez-vous que le script de suivi DataFast est installé et fonctionne sur votre site
  • Vérifiez que le cookie datafast_visitor_id est bien défini
  • Assurez-vous que les ID visiteurs correspondent entre la création du paiement et la validation
  • Veillez à capturer l’ID visiteur avant de créer la session de paiement
  • Consultez la documentation de l’API Payment de DataFast pour des conseils supplémentaires
  • Validez que la structure JSON correspond au format de l’API Payment de DataFast
  • Vérifiez que tous les champs requis (amount, currency, transaction_id, datafast_visitor_id) sont présents
  • Assurez-vous que le montant est correctement converti (divisez par 100 pour la plupart des devises, sauf celles à décimales nulles)
  • Vérifiez que l’URL du point de terminaison de l’API est correcte : https://datafa.st/api/v1/payments
  • Testez la transformation avec des charges utiles webhook d’exemple
  • Pour les devises à décimales nulles (JPY, KRW, CLP, VND, UGX, MGA), envoyez le montant tel quel sans le diviser par 100
  • Pour toutes les autres devises, divisez le montant par 100 pour passer des cents à l’unité de base
  • Vérifiez une dernière fois que le code devise respecte la norme ISO 4217 (par ex. « USD », « EUR », « JPY »)

Ressources supplémentaires

Besoin d’aide ? Contactez le support de Dodo Payments à support@dodopayments.com pour vous assister dans l’intégration.