介绍
Dub 是一个强大的链接管理平台,帮助您创建、分享和跟踪短链接。通过将 Dodo Payments 与 Dub 集成,您可以在客户完成购买时自动跟踪销售转化事件,使您能够衡量营销活动和推荐计划的投资回报率。 当客户完成以下操作时,Dub 会记录一个 “销售” 事件:- 完成一次性付款
- 订阅付费计划
- 进行定期订阅付款
此集成需要在您的链接上启用转化跟踪的 Dub 账户。
工作原理
当用户点击您的 Dub 短链接时,Dub 通过存储在 cookie 中的唯一点击 ID (dub_id) 跟踪访客。要将销售归因于您的链接,您需要:
- 在创建结账会话时捕获 Dub 的点击 ID,从
dub_idcookie 中获取 - 将点击 ID 存储在您的支付元数据中,连同客户的外部 ID
- 在支付成功时通过其 Track API 发送销售数据到 Dub
先决条件
在设置此集成之前,请确保您拥有:- 一个 Dub 账户 和一个工作区
- 为您的链接启用转化跟踪
- 您的 Dub API 密钥(可在您的 Dub 仪表板的设置 → API 密钥中找到)
开始使用
1
在 Dub 中启用转化跟踪
在您的 Dub 仪表板中,为您想要跟踪销售的链接启用转化跟踪。这允许 Dub 在客户完成购买时记录销售事件。
了解有关在 Dub 文档 中启用转化跟踪的更多信息。
2
获取您的 Dub API 密钥
导航到您的 Dub 仪表板 → 设置 → API 密钥,并创建一个具有
conversions.write 范围的新 API 密钥。3
在结账中捕获点击 ID
在创建结账会话时,从 cookie 中捕获 Dub 点击 ID,并将其添加到您的支付元数据中。
4
通过 Webhook 发送销售数据
配置一个 webhook,在支付成功时将销售数据发送到 Dub 的 Track API。
5
完成!
销售转化事件现在将在您的 Dub 分析仪表板中显示,并完全归因于您的链接。
实施指南
第 1 步:将点击 ID 和客户 ID 添加到结账元数据
在创建结账会话时,从 cookie 中捕获 Dub 点击 ID,并将其与客户的外部 ID 一起包含在您的支付元数据中。以下示例使用
POST /payments,该方式已被弃用。对于现有集成仍然有效,但新集成应使用 Checkout Sessions(POST /checkouts)——metadata 的传递方式相同。步骤 2:向 Dub 发送销售数据
配置 webhook endpoint,以便在支付成功时将销售数据发送到 Dub 的 Track API。1
Open the Webhook Section
在 Dodo Payments dashboard 中,前往 Webhooks → + Add Endpoint,然后展开 integrations 下拉菜单。

2
Select Dub
选择 Dub integration card。
3
Enter API Key
在配置字段中提供你的 Dub 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:最佳实践
- 始终在 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 支付不会作为销售进行跟踪
- 退款:如需准确的收入报告,请考虑单独跟踪退款
故障排除
Sales not appearing in Dub
Sales not appearing in Dub
- 验证你的 Dub API key 正确,并具有
conversions.writescope - 检查
dub_click_id是否已被捕获并存储在 payment metadata 中 - 确保 webhook transformation 正确格式化 payload
- 验证 webhook 是否在
payment.succeededevents 上触发 - 确认你的 Dub 链接已启用 conversion tracking
Revenue attribution not working
Revenue attribution not working
- 确认用户在 checkout 前点击了你的 Dub short links
- 验证
dub_idcookie 是否已在你的 domain 上正确设置 - 检查 click IDs 在 checkout 创建和支付完成之间是否匹配
- 确保在创建 checkout session 前捕获 click ID
Transformation errors
Transformation errors
- 验证 JSON structure 是否符合 Dub 的 Track Sale API format
- 检查所有必需字段(
clickId、externalId、amount)是否存在 - 确保 amount 以 cents 表示(整数,而非小数)
- 验证 API endpoint URL 是否正确:
https://api.dub.co/track/sale - 使用示例 webhook payload 测试 transformation
Duplicate sales being tracked
Duplicate sales being tracked
- 确保仅在
payment.succeededevents 上进行跟踪,而不是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,以获得集成方面的帮助。