はじめに
Segment integration は、Dodo Payments のイベントを Track および Identify calls として Segment の HTTP Tracking API に送信します。Segment はその後、ワークスペースに接続された 300 以上の送信先から、分析、マーケティング、データウェアハウスのツールに決済、サブスクリプション、顧客データを転送します。この integration には、Segment ワークスペースの HTTP API source の Write Key が必要です。また、Dodo Payments dashboard の Developer → Webhooks にアクセスできる必要があります。
始め方
1
Open the Webhook Section
Dodo Payments ダッシュボードで、Developer → Webhooks に移動し、Add endpoint をクリックします。

2
Select Segment
Integration で Segment を選択します。dashboard に Endpoint URL と Segment 用の transformation code が入力されます。
3
Enter Write Key
Segment で Connections → Sources に移動し、HTTP API source を開くか作成します。source の設定から Write Key をコピーし、API key に貼り付けます。
4
Select Events
Subscribed events で、transformation が処理するイベントだけを選択します。このページの例では
payment.succeeded、subscription.active、subscription.cancelled を使用します。5
Configure Transformation
Transformation code で handler を編集し、Segment の Track または Identify API 用にイベントをフォーマットします。例から始めてください。
6
Test & Create
Test this code でイベントタイプを選択し、Simulate をクリックして Segment への call をプレビューします。次に Create endpoint をクリックします。
7
Switch to Basic Authentication
Dodo Payments は API key の値を bearer token として送信しますが、Segment の HTTP API は Basic authentication を通じた Write Key、または body 内の
writeKey field を受け付けます。endpoint を作成した直後に、その Advanced tab を開きます。Custom headers で、非表示の Authorization row に新しい値を入力します。値は Basic、スペース、そして末尾にコロンを付けた Write Key の Base64 encoding です。次に Save をクリックします。たとえば、echo -n 'YOUR_WRITE_KEY:' | base64 は encoded value を出力します。8
Done
Subscribed events が Segment に届き、接続された送信先に転送されるようになります。
Transformation Code の例
各 handler はwebhook.url を Segment API endpoint に設定し、webhook.payload を call に置き換えます。Dodo Payments の金額は通貨の最小単位で表されるため、例では 100 で割っています。JPY や KRW などの小数点以下の桁数がない通貨では、金額をそのまま使用してください。
Track Payment Events
決済が成功したときにPayment Completed event を記録します。
track_payments.js
Track Subscription Lifecycle
Subscription Started event と Subscription Cancelled event を記録します。
track_subscriptions.js
Identify Customer Properties
決済が成功するたびに、顧客の traits を更新します。各 Identify call は送信した値で traits を設定するため、これらの traits は最新の決済を表します。identify_customer.js
ヒント
- integration 全体で一貫した event names を使用します。たとえば、
Payment Completedにある Segment の object と action の形式です。 - 分析と segmentation に必要な properties を含めます。
- event の
timestampからtimestampを設定し、到着時刻ではなくイベント発生時刻を Segment に記録させます。 - Dodo Payments の
customer_idをuserIdとして使用し、顧客に対するすべての call が同じ Segment user に紐付くようにします。
トラブルシューティング
Events Not Appearing in Segment
Events Not Appearing in Segment
- Write Key が HTTP API source に属していること、および
Authorizationheader が Basic authentication を使用していることを確認します。 - Segment は、受け付けなかったリクエストを含むほとんどのリクエストに対して
200を返すため、Dodo Payments logs で delivery が成功していても、event が届いたことの証明にはなりません。Segment の source にある Debugger を確認してください。 - event names が Segment の命名規則に従っていることを確認します。
- すべての call が
userIdを設定していることを確認します。userIdもanonymousIdもない call は Segment に拒否されます。 - HTTP API の Segment の rate limits を確認します。Segment は、ワークスペースあたり毎秒 1,000 requests 未満に抑えることを推奨しています。
- ワークスペースが Segment の EU region を使用している場合は、代わりに
https://events.eu1.segmentapis.com/v1/trackとhttps://events.eu1.segmentapis.com/v1/identifyに call を送信します。
Transformation Errors
Transformation Errors
- payload が Segment の API format と一致していることを確認します。
- 必須 fields がすべて存在することを確認します。Track には
eventが必要で、Track と Identify の両方にはuserIdまたはanonymousIdが必要です。 - event names が objects ではなく strings であることを確認します。