メインコンテンツへスキップ

はじめに

DataFastは、収益を最優先に考えた分析ツールで、どのマーケティングチャネルが支払い顧客を引き寄せるかを発見するのに役立ちます。Dodo PaymentsをDataFastと統合することで、トラフィックソースに収益を帰属させ、高価値の顧客セグメントを特定し、データに基づいた意思決定を行ってビジネスを成長させることができます。
この統合には、DataFast ダッシュボード から取得できる DataFast API キーが必要です。

仕組み

DataFastは、クッキーに保存されたユニークな訪問者IDを通じて訪問者を追跡します。マーケティングチャネルに収益を帰属させるには、次の手順が必要です:
  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 キーを取得します。
API キーは安全に管理し、クライアント側のコードで公開しないでください。
3

Capture Visitor ID in Checkout

チェックアウト セッションを作成する際に、クッキーから DataFast の訪問者 ID を取得し、支払いメタデータに追加します。
4

Send Payment Data via Webhook

支払いが成功したときに DataFast の Payment API に支払いデータを送信するように、Webhook を構成します。
5

Done!

🎉 これで収益データが DataFast ダッシュボードに表示され、マーケティングチャネルに完全に帰属されます。

実装ガイド

ステップ1: チェックアウトメタデータに訪問者IDを追加

チェックアウトセッションを作成する際に、クッキーからDataFastの訪問者IDを取得し、支払いメタデータに含めます。
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のPayment APIに支払いデータを送信するWebhookエンドポイントを設定します。
1

Open the Webhook Section

Dodo Payments ダッシュボードで、Webhook → + エンドポイント追加に移動し、統合のドロップダウンを展開します。
エンドポイント追加と統合ドロップダウン
2

Select DataFast

DataFast 統合カードを選択します。
3

Enter API Key

設定フィールドに DataFast API キーを入力します。
API キーを追加
4

Configure Transformation

変換コードを編集して、DataFast の Payment API 用に支払いデータを整形します。
5

Test & 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 を保存して、ユーザーが離脱して再訪問した場合でも正確な帰属が行えるようにします。
  • 常にメタデータに訪問者IDを含める: 訪問者IDがないと、DataFastは収益をマーケティングチャネルに帰属させることができません
  • ゼロ小数通貨を処理する: 一部の通貨(JPY、KRWなど)は小数点以下を使用しません—金額計算を適切に調整してください
  • サンプル支払いでテストする: 本番環境に移行する前に、統合が正しく機能することを確認してください
  • DataFastダッシュボードを監視する: 支払いが正しく表示され、適切に帰属されていることを確認してください
  • Webhookの再試行を使用する: DataFastのPayment APIは冪等性があるため、Webhookが失敗した場合の再試行は安全です

トラブルシューティング

  • DataFast API キーが正しくアクティブであることを確認する
  • datafast_visitor_id がキャプチャされ、支払いメタデータに保存されていることを確認する
  • Webhook の変換がペイロードを正しく整形していることを確認する
  • Webhook が payment.succeeded イベントでトリガーされていることを確認する
  • DataFast ダッシュボードでエラーメッセージや API ログを確認する
  • DataFast トラッキングスクリプトがウェブサイトにインストールされ、正常に動作していることを確認する
  • datafast_visitor_id クッキーが正しく設定されていることを確認する
  • チェックアウトの作成と支払い完了で訪問者 ID が一致していることを確認する
  • チェックアウト セッションを作成する前に訪問者 ID をキャプチャしていることを確認する
  • 追加のガイダンスについては、DataFast の Payment API ドキュメント を確認する
  • JSON 構造が DataFast の Payment API の形式と一致していることを検証する
  • 必要なすべてのフィールド (amountcurrencytransaction_iddatafast_visitor_id) が含まれていることを確認する
  • 金額が正しく変換されていること (ほとんどの通貨では 100 で除算、ゼロ小数通貨は除く)
  • API エンドポイント URL が正しいことを確認する: https://datafa.st/api/v1/payments
  • サンプル Webhook ペイロードで変換をテストする
  • ゼロ小数通貨 (JPY、KRW、CLP、VND、UGX、MGA) の場合は、100 で除算せずに金額をそのまま送信する
  • その他すべての通貨では、金額を 100 で除算してセントから基本単位に変換する
  • 通貨コードが ISO 4217 形式 (例: “USD”、“EUR”、“JPY”) と一致していることを再確認する

追加リソース

お困りですか? 統合に関するサポートは support@dodopayments.com までご連絡ください。