Skip to main content

介绍

Dub 是一个强大的链接管理平台,帮助您创建、分享和跟踪短链接。通过将 Dodo Payments 与 Dub 集成,您可以在客户完成购买时自动跟踪销售转化事件,使您能够衡量营销活动和推荐计划的投资回报率。 当客户完成以下操作时,Dub 会记录一个 “销售” 事件:
  • 完成一次性付款
  • 订阅付费计划
  • 进行定期订阅付款
此集成需要在您的链接上启用转化跟踪的 Dub 账户。
联盟计划集成:此集成还与 Dub Partners 无缝协作,以跟踪联盟推荐和佣金。使用 Dub 的转化跟踪将销售归因于您的联盟链接,并衡量合作伙伴的表现。了解有关设置联盟计划的更多信息,请参阅我们的 联盟功能指南

工作原理

当用户点击您的 Dub 短链接时,Dub 通过存储在 cookie 中的唯一点击 ID (dub_id) 跟踪访客。要将销售归因于您的链接,您需要:
  1. 在创建结账会话时捕获 Dub 的点击 ID,从 dub_id cookie 中获取
  2. 将点击 ID 存储在您的支付元数据中,连同客户的外部 ID
  3. 在支付成功时通过其 Track API 发送销售数据到 Dub
这使得 Dub 能够将成功的销售与原始链接点击匹配,从而为您提供完整的转化归因。

先决条件

在设置此集成之前,请确保您拥有:
  1. 一个 Dub 账户 和一个工作区
  2. 为您的链接启用转化跟踪
  3. 您的 Dub API 密钥(可在您的 Dub 仪表板的设置 → API 密钥中找到)

开始使用

1

在 Dub 中启用转化跟踪

在您的 Dub 仪表板中,为您想要跟踪销售的链接启用转化跟踪。这允许 Dub 在客户完成购买时记录销售事件。
了解有关在 Dub 文档 中启用转化跟踪的更多信息。
2

获取您的 Dub API 密钥

导航到您的 Dub 仪表板 → 设置 → API 密钥,并创建一个具有 conversions.write 范围的新 API 密钥。
保持您的 API 密钥安全,切勿在客户端代码中暴露它。
3

在结账中捕获点击 ID

在创建结账会话时,从 cookie 中捕获 Dub 点击 ID,并将其添加到您的支付元数据中。
4

通过 Webhook 发送销售数据

配置一个 webhook,在支付成功时将销售数据发送到 Dub 的 Track API。
5

完成!

销售转化事件现在将在您的 Dub 分析仪表板中显示,并完全归因于您的链接。

实施指南

第 1 步:将点击 ID 和客户 ID 添加到结账元数据

在创建结账会话时,从 cookie 中捕获 Dub 点击 ID,并将其与客户的外部 ID 一起包含在您的支付元数据中。
以下示例使用 POST /payments,该方式已被弃用。对于现有集成仍然有效,但新集成应使用 Checkout SessionsPOST /checkouts)——metadata 的传递方式相同。

步骤 2:向 Dub 发送销售数据

配置 webhook endpoint,以便在支付成功时将销售数据发送到 Dub 的 Track API。
1

Open the Webhook Section

在 Dodo Payments dashboard 中,前往 Webhooks → + Add Endpoint,然后展开 integrations 下拉菜单。
Add Endpoint and integrations dropdown
2

Select Dub

选择 Dub integration card。
3

Enter API Key

在配置字段中提供你的 Dub API Key。
Add API Key
4

Configure Transformation

编辑 transformation code,以便为 Dub 的 Track Sale API 格式化支付数据。
5

Test & Create

使用示例 payload 进行测试,然后点击 Create 以激活集成。

Transformation Code 示例

基本销售跟踪

在支付成功时跟踪销售:
basic_sale.js

跟踪订阅销售

跟踪初始订阅和 recurring payments:
subscription_sale.js

排除税费后跟踪销售

仅将税前金额发送到 Dub,以准确跟踪收入:
sale_without_tax.js

使用自定义事件名称跟踪销售

使用自定义事件名称对不同类型的销售进行分类:
custom_events.js

替代方案:Client-Side 实现

如果你更希望从服务器跟踪销售,而不是使用 webhooks,可以在支付成功后直接调用 Dub 的 Track API:

最佳实践

尽早捕获 click ID:在 checkout 流程中尽快存储 Dub click ID,以确保准确归因,即使用户离开后稍后返回也不受影响。
  • 始终在 metadata 中包含 click ID:没有 click ID,Dub 无法将收入归因到你的链接
  • 一致使用 external IDs:传递你系统中使用的相同 customer ID,以便进行准确的客户级分析
  • 妥善处理 organic traffic:没有 click ID 时设置 webhook.cancel = true,以避免不必要的 API 调用
  • 使用示例支付进行测试:在正式上线前验证集成是否正常工作
  • 监控你的 Dub dashboard:检查销售是否正确显示并完成适当的归因

重要说明

  • 金额格式:Dub 要求金额以 cents 表示(例如,$10.00 = 1000)
  • 货币:使用 ISO 4217 货币代码(USD、EUR、GBP 等)
  • 免费试用:$0 支付不会作为销售进行跟踪
  • 退款:如需准确的收入报告,请考虑单独跟踪退款

故障排除

  • 验证你的 Dub API key 正确,并具有 conversions.write scope
  • 检查 dub_click_id 是否已被捕获并存储在 payment metadata 中
  • 确保 webhook transformation 正确格式化 payload
  • 验证 webhook 是否在 payment.succeeded events 上触发
  • 确认你的 Dub 链接已启用 conversion tracking
  • 确认用户在 checkout 前点击了你的 Dub short links
  • 验证 dub_id cookie 是否已在你的 domain 上正确设置
  • 检查 click IDs 在 checkout 创建和支付完成之间是否匹配
  • 确保在创建 checkout session 前捕获 click ID
  • 验证 JSON structure 是否符合 Dub 的 Track Sale API format
  • 检查所有必需字段(clickIdexternalIdamount)是否存在
  • 确保 amount 以 cents 表示(整数,而非小数)
  • 验证 API endpoint URL 是否正确:https://api.dub.co/track/sale
  • 使用示例 webhook payload 测试 transformation
  • 确保仅在 payment.succeeded events 上进行跟踪,而不是 payment.processing
  • 为每笔销售使用唯一的 invoiceId
  • 对于订阅,在其中附加 timestamps 或 billing period,以防续费时产生重复

其他资源

Dub Conversions Documentation

详细了解 Dub 的 conversion tracking 和 analytics 功能。

Dub Track Sale API

查看 Dub Track Sale endpoint 的完整 API reference。

Dub Dashboard

访问你的 Dub dashboard,查看 conversion analytics 和 attribution data。

Webhook Events Guide

了解所有可用的 Dodo Payments webhook events。
需要帮助?请通过 support@dodopayments.com 联系 Dodo Payments support,以获得集成方面的帮助。
最后修改于 2026年8月6日