Saltar al contenido principal

Introducción

DataFast es una herramienta de análisis centrada en los ingresos que te ayuda a descubrir qué canales de marketing generan clientes de pago. Al integrar Dodo Payments con DataFast, puedes atribuir ingresos a tus fuentes de tráfico, identificar segmentos de clientes de alto valor y tomar decisiones basadas en datos para hacer crecer tu negocio.
Esta integración requiere su clave API de DataFast, que puede obtener en su panel de DataFast.

Cómo Funciona

DataFast rastrea a los visitantes a través de un ID de visitante único almacenado en una cookie. Para atribuir ingresos a los canales de marketing, necesitas:
  1. Capture el ID de visitante de DataFast de la cookie datafast_visitor_id al crear sesiones de pago
  2. Almacene el ID de visitante en los metadatos de pago
  3. Envíe los datos de pago a DataFast cuando los pagos se completen con éxito utilizando su API de pagos
Esto permite que DataFast asocie los pagos exitosos con la fuente de tráfico original, dándote una atribución de ingresos completa.

Comenzando

1

Install DataFast Script

Primero, instale el script de seguimiento de DataFast en su sitio web. Esto crea la cookie datafast_visitor_id que rastrea a sus visitantes.Visite la documentación de DataFast para obtener instrucciones de instalación específicas para su plataforma.
2

Get Your API Key

Inicie sesión en su panel de DataFast y vaya a la configuración de su sitio web para obtener su clave API.
Mantenga su clave API segura y nunca la exponga en código del lado del cliente.
3

Capture Visitor ID in Checkout

Al crear una sesión de pago, capture el ID de visitante de DataFast de la cookie y agrégelo a los metadatos de su pago.
4

Send Payment Data via Webhook

Configure un webhook para enviar los datos de pago a la API de Pagos de DataFast cuando los pagos tengan éxito.
5

Done!

🎉 Los datos de ingresos ahora aparecerán en su panel de DataFast con atribución completa a los canales de marketing.

Guía de Implementación

Paso 1: Agregar ID de Visitante a los Metadatos del Pago

Al crear una sesión de pago, captura el ID de visitante de DataFast de la cookie e inclúyelo en tus metadatos de pago.
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;
}

Paso 2: Enviar Datos de Pago a DataFast

Configura un endpoint de webhook para enviar datos de pago a la API de Pagos de DataFast cuando los pagos sean exitosos.
1

Open the Webhook Section

En el panel de Dodo Payments, vaya a Webhooks → + Agregar endpoint y despliegue el menú desplegable de integraciones.
Add Endpoint and integrations dropdown
2

Select DataFast

Elija la tarjeta de integración de DataFast.
3

Enter API Key

Proporcione su clave API de DataFast en el campo de configuración.
Add API Key
4

Configure Transformation

Edite el código de transformación para formatear los datos de pago para la API de Pagos de DataFast.
5

Test & Create

Pruebe con cargas útiles de ejemplo y haga clic en Crear para activar la integración.

Ejemplos de Código de Transformación

Atribución Básica de Pagos

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

Manejar Monedas sin Decimales

Algunas monedas (como JPY) no utilizan decimales. Ajusta el cálculo del monto en consecuencia:
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;
}

Pagos de Suscripción

Para pagos de suscripción recurrentes, puedes rastrear cada pago:
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;
}

Mejores Prácticas

Capture el ID de visitante lo antes posible: almacene el ID de visitante de DataFast tan pronto como sea posible en su flujo de pago para asegurar una atribución precisa, incluso si el usuario se va y regresa después.
  • Siempre incluye el ID de visitante en los metadatos: Sin el ID de visitante, DataFast no puede atribuir ingresos a los canales de marketing
  • Maneja monedas sin decimales: Algunas monedas (JPY, KRW, etc.) no utilizan decimales; ajusta tu cálculo de monto en consecuencia
  • Prueba con pagos de muestra: Verifica que la integración funcione correctamente antes de activarla
  • Monitorea tu tablero de DataFast: Verifica que los pagos aparezcan correctamente con la atribución adecuada
  • Usa reintentos de webhook: La API de Pagos de DataFast es idempotente, por lo que los reintentos son seguros si un webhook falla

Solución de Problemas

  • Verifique que su clave API de DataFast sea correcta y esté activa
  • Compruebe que la cookie datafast_visitor_id se esté capturando y almacenando en los metadatos de pago
  • Asegúrese de que la transformación del webhook esté formateando correctamente la carga útil
  • Verifique que el webhook se active en eventos payment.succeeded
  • Revise el panel de DataFast en busca de mensajes de error o registros de API
  • Confirme que el script de seguimiento de DataFast esté instalado y funcionando en su sitio web
  • Verifique que la cookie datafast_visitor_id se esté estableciendo correctamente
  • Compruebe que los IDs de visitante coincidan entre la creación del pago y la finalización del mismo
  • Asegúrese de capturar el ID de visitante antes de crear la sesión de pago
  • Revise la documentación de la API de Pagos de DataFast para obtener orientación adicional
  • Valide que la estructura JSON coincida con el formato de la API de Pagos de DataFast
  • Verifique que todos los campos obligatorios (amount, currency, transaction_id, datafast_visitor_id) estén presentes
  • Asegúrese de que el monto se convierta correctamente (divídalo entre 100 para la mayoría de las monedas, excepto las de cero decimales)
  • Confirme que la URL del endpoint de la API sea correcta: https://datafa.st/api/v1/payments
  • Pruebe la transformación con cargas útiles de webhook de ejemplo
  • Para las monedas de cero decimales (JPY, KRW, CLP, VND, UGX, MGA), envíe el monto tal cual sin dividirlo entre 100
  • Para todas las demás monedas, divida el monto entre 100 para convertirlo de centavos a la unidad base
  • Verifique dos veces que el código de moneda coincida con el formato ISO 4217 (por ejemplo, “USD”, “EUR”, “JPY”)

Recursos Adicionales

¿Necesita ayuda? Contacte al soporte de Dodo Payments en support@dodopayments.com para obtener asistencia con la integración.