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 tu clave API de DataFast, que puedes obtener desde tu tablero 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. Capturar el ID de visitante de DataFast de la datafast_visitor_id cookie al crear sesiones de pago
  2. Almacenar el ID de visitante en tus metadatos de pago
  3. Enviar datos de pago a DataFast cuando los pagos sean exitosos 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

Instalar el Script de DataFast

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

Obtén tu Clave API

Inicia sesión en tu tablero de DataFast y navega a la configuración de tu sitio web para obtener tu clave API.
Mantén tu clave API segura y nunca la expongas en el código del lado del cliente.
3

Capturar ID de Visitante en el Pago

Al crear una sesión de pago, captura el ID de visitante de DataFast de la cookie y agrégalo a tus metadatos de pago.
4

Enviar Datos de Pago a través de Webhook

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

¡Listo!

🎉 Los datos de ingresos ahora aparecerán en tu tablero de DataFast con plena atribución 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

Abre la Sección de Webhook

En tu tablero de Dodo Payments, navega a Webhooks → + Agregar Endpoint y expande el menú desplegable de integraciones.
Agregar Endpoint y menú desplegable de integraciones
2

Selecciona DataFast

Elige la tarjeta de integración DataFast.
3

Ingresa la Clave API

Proporciona tu clave API de DataFast en el campo de configuración.
Agregar Clave API
4

Configurar Transformación

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

Probar y Crear

Prueba con cargas útiles de muestra y haz 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?.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;
}

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

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

Mejores Prácticas

Captura el ID de visitante temprano: Almacena el ID de visitante de DataFast lo antes posible en tu flujo de pago para asegurar una atribución precisa, incluso si el usuario navega lejos y regresa más tarde.
  • 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

  • Verifica que tu clave API de DataFast sea correcta y esté activa
  • Comprueba que el datafast_visitor_id se esté capturando y almacenando en los metadatos de pago
  • Asegúrate de que la transformación del webhook esté formateando correctamente la carga útil
  • Verifica que el webhook se esté activando en eventos de payment.succeeded
  • Revisa el tablero de DataFast para cualquier mensaje de error o registros de API
  • Confirma que el script de seguimiento de DataFast esté instalado y funcionando en tu sitio web
  • Verifica que la datafast_visitor_id cookie se esté configurando correctamente
  • Comprueba que los IDs de visitante coincidan entre la creación del pago y la finalización del pago
  • Asegúrate de estar capturando el ID de visitante antes de crear la sesión de pago
  • Revisa la documentación de la API de Pagos de DataFast para obtener orientación adicional
  • Valida que la estructura JSON coincida con el formato de la API de Pagos de DataFast
  • Verifica que todos los campos requeridos (amount, currency, transaction_id, datafast_visitor_id) estén presentes
  • Asegúrate de que el monto se convierta correctamente (dividir por 100 para la mayoría de las monedas, excepto las monedas sin decimales)
  • Verifica que la URL del endpoint de la API sea correcta: https://datafa.st/api/v1/payments
  • Prueba la transformación con cargas útiles de webhook de muestra
  • Para monedas sin decimales (JPY, KRW, CLP, VND, UGX, MGA), envía el monto tal como está sin dividir por 100
  • Para todas las demás monedas, divide el monto por 100 para convertir de centavos a la unidad base
  • Verifica que el código de moneda coincida con el formato ISO 4217 (por ejemplo, “USD”, “EUR”, “JPY”)

Recursos Adicionales

¿Necesitas ayuda? Contacta al soporte de Dodo Payments en [email protected] para obtener asistencia con la integración.