मुख्य सामग्री पर जाएं

परिचय

DataFast एक राजस्व-प्रथम एनालिटिक्स उपकरण है जो आपको यह पता लगाने में मदद करता है कि कौन से मार्केटिंग चैनल भुगतान करने वाले ग्राहकों को लाते हैं। DataFast के साथ Dodo Payments को एकीकृत करके, आप अपने ट्रैफ़िक स्रोतों को राजस्व सौंप सकते हैं, उच्च-मूल्य वाले ग्राहक खंडों की पहचान कर सकते हैं, और अपने व्यवसाय को बढ़ाने के लिए डेटा-संचालित निर्णय ले सकते हैं।
यह एकीकरण आपके DataFast API Key की आवश्यकता करता है, जिसे आप अपने DataFast डैशबोर्ड से प्राप्त कर सकते हैं।

यह कैसे काम करता है

DataFast आगंतुकों को एक अद्वितीय आगंतुक आईडी के माध्यम से ट्रैक करता है जो एक कुकी में संग्रहीत होती है। मार्केटिंग चैनलों को राजस्व सौंपने के लिए, आपको करना होगा:
  1. चेकआउट सत्र बनाते समय datafast_visitor_id कुकी से DataFast का विज़िटर ID कैप्चर करें
  2. विज़िटर ID को अपने भुगतान मेटाडाटा में संग्रहीत करें
  3. भुगतान सफल होने पर DataFast को उनके Payment API के माध्यम से भुगतान डेटा भेजें
यह DataFast को सफल भुगतानों को मूल ट्रैफ़िक स्रोत से मिलाने की अनुमति देता है, जिससे आपको पूर्ण राजस्व सौंपने की जानकारी मिलती है।

प्रारंभ करना

1

Install DataFast Script

सबसे पहले, अपनी वेबसाइट पर DataFast ट्रैकिंग स्क्रिप्ट इंस्टॉल करें। यह datafast_visitor_id कुकी बनाती है जो आपके विज़िटर्स को ट्रैक करती है।अपने प्लेटफ़ॉर्म के लिए इंस्टॉलेशन निर्देशों के लिए DataFast प्रलेखन देखें।
2

Get Your API Key

अपने DataFast डैशबोर्ड में लॉग इन करें और अपना API key प्राप्त करने के लिए अपनी वेबसाइट सेटिंग्स पर जाएँ।
अपने API key को सुरक्षित रखें और इसे क्लाइंट-साइड कोड में कभी प्रकट न करें।
3

Capture Visitor ID in Checkout

जब आप चेकआउट सत्र बना रहे हों, तो कुकी से DataFast विज़िटर ID कैप्चर करें और इसे अपने भुगतान मेटाडाटा में जोड़ें।
4

Send Payment Data via Webhook

भुगतान सफल होने पर भुगतान डेटा DataFast के Payment API पर भेजने के लिए एक वेबहुक कॉन्फ़िगर करें।
5

Done!

🎉 अब राजस्व डेटा आपके DataFast डैशबोर्ड में पूरी मार्केटिंग चैनलों की एट्रिब्यूशन के साथ दिखाई देगा।

कार्यान्वयन गाइड

चरण 1: चेकआउट मेटाडेटा में आगंतुक आईडी जोड़ें

चेकआउट सत्र बनाते समय, कुकी से DataFast आगंतुक आईडी को कैप्चर करें और इसे अपने भुगतान मेटाडेटा में शामिल करें।
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;
}

चरण 2: DataFast को भुगतान डेटा भेजें

भुगतान सफल होने पर DataFast के भुगतान API को भुगतान डेटा भेजने के लिए एक वेबहुक एंडपॉइंट कॉन्फ़िगर करें।
1

Open the Webhook Section

अपने Dodo Payments डैशबोर्ड में, Webhooks → + Add Endpoint पर जाएँ और एकीकरण ड्रॉपडाउन को विस्तारित करें।
एंडपॉइंट जोड़ें और एकीकरण ड्रॉपडाउन
2

Select DataFast

DataFast एकीकरण कार्ड चुनें।
3

Enter API Key

कॉन्फ़िगरेशन फ़ील्ड में अपना DataFast API Key प्रदान करें।
API Key जोड़ें
4

Configure Transformation

DataFast के Payment API के लिए भुगतान डेटा को प्रारूपित करने हेतु रूपांतरण कोड संपादित करें।
5

Test & Create

नमूना पेलोड के साथ परीक्षण करें और Create पर क्लिक करके एकीकरण को सक्रिय करें।

रूपांतरण कोड उदाहरण

बुनियादी भुगतान सौंपना

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

शून्य दशमलव मुद्राओं को संभालना

कुछ मुद्राएँ (जैसे JPY) दशमलव स्थानों का उपयोग नहीं करती हैं। राशि की गणना को तदनुसार समायोजित करें:
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;
}

सदस्यता भुगतान

आवर्ती सदस्यता भुगतानों के लिए, आप प्रत्येक भुगतान को ट्रैक कर सकते हैं:
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;
}

सर्वोत्तम प्रथाएँ

विज़िटर ID जल्दी कैप्चर करें: सटीक एट्रिब्यूशन सुनिश्चित करने के लिए अपने चेकआउट फ्लो में जितना जल्दी हो सके DataFast विज़िटर ID संग्रहीत करें, भले ही उपयोगकर्ता आगे चला जाए और फिर लौट आए।
  • हमेशा मेटाडेटा में आगंतुक आईडी शामिल करें: बिना आगंतुक आईडी के, DataFast राजस्व को मार्केटिंग चैनलों को सौंप नहीं सकता
  • शून्य दशमलव मुद्राओं को संभालें: कुछ मुद्राएँ (JPY, KRW, आदि) दशमलव स्थानों का उपयोग नहीं करती हैं—अपनी राशि की गणना को तदनुसार समायोजित करें
  • नमूना भुगतानों के साथ परीक्षण करें: सुनिश्चित करें कि एकीकरण सही ढंग से काम कर रहा है इससे पहले कि आप लाइव जाएं
  • अपने DataFast डैशबोर्ड की निगरानी करें: जांचें कि भुगतान सही ढंग से उचित सौंपने के साथ दिखाई दे रहे हैं
  • Webhook पुनः प्रयासों का उपयोग करें: DataFast का भुगतान API idempotent है, इसलिए यदि कोई वेबहुक विफल हो जाता है तो पुनः प्रयास सुरक्षित हैं

समस्या निवारण

  • सुनिश्चित करें कि आपका DataFast API key सही और सक्रिय है
  • जांचें कि datafast_visitor_id कैप्चर हो रहा है और भुगतान मेटाडाटा में संग्रहीत हो रहा है
  • सुनिश्चित करें कि वेबहुक रूपांतरण सही ढंग से पेलोड प्रारूपित कर रहा है
  • पुष्टि करें कि वेबहुक payment.succeeded घटनाओं पर ट्रिगर हो रहा है
  • किसी भी त्रुटि संदेश या API लॉग के लिए DataFast डैशबोर्ड की जाँच करें
  • पुष्टि करें कि DataFast ट्रैकिंग स्क्रिप्ट आपकी वेबसाइट पर इंस्टॉल है और काम कर रही है
  • जांचें कि datafast_visitor_id कुकी सही ढंग से सेट हो रही है
  • सुनिश्चित करें कि चेकआउट निर्माण और भुगतान पूर्णता के बीच विज़िटर ID मेल खा रहा है
  • यह सुनिश्चित करें कि आप चेकआउट सत्र बनाने से पहले विज़िटर ID कैप्चर कर रहे हैं
  • अतिरिक्त मार्गदर्शन के लिए DataFast के Payment API दस्तावेज़ की समीक्षा करें
  • सत्यापित करें कि JSON संरचना DataFast के Payment API प्रारूप से मेल खाती है
  • जांचें कि सभी आवश्यक फ़ील्ड (amount, currency, transaction_id, datafast_visitor_id) मौजूद हैं
  • सुनिश्चित करें कि राशि सही ढंग से रूपांतरित हो रही है (अधिकांश मुद्राओं के लिए 100 से भाग करें, सिवाय शून्य दशमलव मुद्राओं के)
  • API एंडपॉइंट URL सही है यह सत्यापित करें: https://datafa.st/api/v1/payments
  • नमूना वेबहुक पेलोड के साथ रूपांतरण का परीक्षण करें
  • शून्य दशमलव मुद्राओं (JPY, KRW, CLP, VND, UGX, MGA) के लिए राशि को बिना 100 से भाग किए वैसे ही भेजें
  • अन्य सभी मुद्राओं के लिए राशि को सेंट से बेस यूनिट में बदलने के लिए 100 से भाग करें
  • यह सुनिश्चित करने के लिए दोबारा जाँचें कि मुद्रा कोड ISO 4217 प्रारूप (जैसे “USD”, “EUR”, “JPY”) से मेल खाता है

अतिरिक्त संसाधन

सहायता चाहिए? एकीकरण में सहायता के लिए support@dodopayments.com पर Dodo Payments सपोर्ट से संपर्क करें।