소개
DataFast는 결제 고객을 유입하는 마케팅 채널을 보여주는 수익 중심 analytics 도구입니다. Dodo Payments 거래를 DataFast로 전송하면 각 고객의 최초 트래픽 소스에 수익을 귀속하므로, 어떤 채널과 고객 세그먼트가 가장 많은 수익을 창출하는지 확인할 수 있습니다.이 통합에는 DataFast dashboard에서 생성하는 DataFast API key가 필요합니다.
작동 방식
DataFast는datafast_visitor_id cookie에 저장된 ID로 각 방문자를 식별합니다. 수익을 마케팅 채널에 귀속하려면 다음 단계를 따르세요.
- DataFast visitor ID 캡처: checkout을 생성할 때
datafast_visitor_idcookie에서 visitor ID를 가져옵니다. - visitor ID 저장: payment의
metadata에 visitor ID를 저장합니다. - payment를 DataFast로 전송: payment가 성공하면 Payment API를 통해 DataFast로 전송합니다.
시작하기
1
Install DataFast Script
웹사이트에 DataFast tracking script를 설치합니다. 이 script는 각 방문자를 식별하는
datafast_visitor_id cookie를 설정합니다.플랫폼별 설치 방법은 DataFast documentation을 참조하세요.2
Get Your API Key
DataFast dashboard에서 웹사이트 설정을 열고 API로 이동한 다음 Create API Key를 클릭합니다.
3
Capture Visitor ID in Checkout
checkout을 생성할 때 cookie에서 DataFast visitor ID를 읽고 payment의
metadata에 추가합니다. Step 1을 참조하세요.4
Send Payment Data via Webhook
각 성공한 payment를 DataFast의 Payment API로 전송하는 webhook endpoint를 생성합니다. Step 2를 참조하세요.
5
Done
수익은 각 고객을 유입한 마케팅 채널에 귀속되어 DataFast dashboard에 표시됩니다.
구현 가이드
Step 1: Checkout Metadata에 Visitor ID 추가
checkout을 생성할 때 cookie에서 DataFast visitor ID를 읽고 payment의metadata에 포함합니다.
아래 예제는 deprecated 상태인
POST /payments을 사용합니다. 기존 통합에서는 계속 작동하지만, 새 통합에서는 metadata을 동일한 방식으로 허용하는 Checkout Sessions(POST /checkouts)을 사용해야 합니다.Step 2: Payment Data를 DataFast로 전송
성공한 payment를 DataFast의 Payment API로 전송하는 webhook endpoint를 생성합니다.1
Open the Webhook Section
Dodo Payments 대시보드에서 Developer → Webhooks로 이동한 다음 Add endpoint를 클릭합니다.

2
Select DataFast
Integration에서 DataFast를 선택합니다.
3
Enter API Key
API key에 DataFast API key를 붙여 넣습니다. Dodo Payments는 모든 delivery의 
Authorization 헤더에 이 값을 전송합니다.
4
Check the URL and Events
Endpoint URL이 비어 있으면
https://datafa.st/api/v1/payments을 입력합니다. Subscribed events에서 payment.succeeded을 선택합니다.5
Configure Transformation
Transformation code에서 handler를 편집하여 DataFast의 Payment API에 맞는 형식으로 payment data를 변환합니다. 예시를 참고하여 시작할 수 있습니다.
6
Test & Create
Test this code에서 Simulate를 클릭하여 sample payload에 대해 handler를 실행합니다. 그런 다음 Create endpoint를 클릭합니다.
Transformation Code 예시
각 handler는payment.succeeded에서 실행됩니다. payment의 metadata에 visitor ID가 없으면 webhook.cancel = true을 설정하므로 DataFast로 request가 전송되지 않습니다. 취소된 delivery도 webhook logs에서는 successful로 표시됩니다.
DataFast의 Payment API는 amount을 major currency unit으로 받습니다. 예를 들어 29.99과 같습니다. Dodo Payments는 total_amount을 smallest currency unit으로 전송합니다. 예를 들어 USD의 cents가 이에 해당하므로, 아래 예시에서는 이를 변환합니다.
기본 Payment Attribution
basic_payment.js
소수점이 없는 통화 처리
JPY와 같은 zero-decimal currency에는 minor unit이 없으므로total_amount은 이미 major unit으로 표시됩니다. KWD와 같은 three-decimal currency에는 major unit당 1,000개의 minor unit이 있습니다. 이 예시에서는 Dodo Payments가 zero-decimal 및 three-decimal로 처리하는 통화를 사용하여 각 경우의 amount를 변환합니다.
zero_decimal.js
Subscription Payments
Subscription payments도payment.succeeded을 발생시키며, subscription_id이 설정됩니다. 이 handler는 모든 subscription payment를 DataFast로 전송하고 renewal 시 renewal: true을 설정하므로, DataFast에서 renewal과 첫 payment를 구분할 수 있습니다.
Renewal은 off-session으로 청구되므로 payload에는 subscription_id이 설정되고 checkout_session_id은 null으로 설정됩니다. Checkout Session을 통해 생성된 subscription의 첫 payment에는 checkout_session_id이 설정됩니다. Renewal payment에는 subscription의 metadata이 포함되므로, renewal을 attribution하려면 subscription의 metadata에 datafast_visitor_id을 유지합니다.
subscription_payment.js
모범 사례
- metadata에 visitor ID 포함: visitor ID가 없으면 DataFast에서 revenue를 marketing channel에 attribution할 수 없습니다.
- zero-decimal currency 처리: JPY 및 KRW와 같은 일부 통화에는 decimal place가 없습니다. 이러한 통화와 KWD와 같은 three-decimal currency에 맞게 amount conversion을 조정합니다.
- sample payment으로 테스트: Test this code를 사용하여 handler를 실행하고, live 환경으로 전환하기 전에 integration이 작동하는지 확인합니다.
- DataFast dashboard 모니터링: payment가 예상한 attribution과 함께 표시되는지 확인합니다.
- webhook retry 활용: DataFast는 이미 기록한
transaction_id이 있는 payment를 건너뛰므로, retry된 delivery가 duplicate를 생성하지 않습니다.
문제 해결
Payments Not Appearing in DataFast
Payments Not Appearing in DataFast
- DataFast API key가 올바르고 active 상태인지 확인합니다.
datafast_visitor_id이 수집되어 payment metadata에 저장되었는지 확인합니다.- webhook transformation이 payload를 올바르게 format하는지 확인합니다.
- endpoint가
payment.succeeded을 구독하는지 확인합니다. - DataFast dashboard에서 error message 또는 API logs를 확인합니다.
- DataFast의 response를 확인하려면 Developer → Webhooks의 Logs 탭에서 endpoint의 delivery attempts를 엽니다. visitor ID가 없는 payment는 취소되며 successful로 표시됩니다.
Revenue Attribution Not Working
Revenue Attribution Not Working
- DataFast tracking script가 website에 설치되어 실행 중인지 확인합니다.
datafast_visitor_idcookie가 설정되었는지 확인합니다.- payment metadata의 visitor ID가 DataFast가 visit에 대해 기록한 값과 일치하는지 확인합니다.
- checkout을 생성하기 전에 visitor ID를 수집합니다.
- 자세한 내용은 DataFast의 Payment API documentation을 참조합니다.
Transformation Errors
Transformation Errors
- payload가 DataFast의 Payment API format과 일치하는지 확인합니다.
- 필수 field가 모두 있는지 확인합니다:
amount,currency,transaction_id. attribution을 위해datafast_visitor_id을 포함합니다. - amount conversion을 확인합니다. 대부분의 통화는 100으로 나누고, three-decimal currency는 1,000으로 나누며, zero-decimal currency는 나누지 않습니다.
- endpoint URL이
https://datafa.st/api/v1/payments인지 확인합니다. - sample webhook payload로 transformation을 테스트합니다.
Currency Conversion Issues
Currency Conversion Issues
- zero-decimal currency(BIF, CLP, DJF, GNF, JPY, KMF, KRW, MGA, PYG, RWF, UGX, VND, VUV, XAF, XOF 및 XPF)는 amount를 그대로 전송합니다.
- three-decimal currency(BHD, IQD, JOD, KWD, LYD, OMR 및 TND)는 amount를 1,000으로 나눕니다.
- 그 외 모든 통화는 smallest unit에서 major unit으로 변환하기 위해 amount를 100으로 나눕니다.
- currency code가 ISO 4217 format을 사용하는지 확인합니다. 예를 들어
USD,EUR또는JPY과 같습니다.
추가 리소스
DataFast Documentation
DataFast의 Payment API와 revenue attribution에 대해 알아봅니다.
DataFast Dashboard
DataFast dashboard에서 revenue analytics 및 attribution data를 확인합니다.
이 integration에 대한 도움이 필요하면 support@dodopayments.com으로 Dodo Payments support에 문의하세요.