更多: 快速开始
- 在网站上安装 TapCub
- 从 Google Analytics 4 或百度统计迁移
- 添加网站、App 或小程序
- WordPress 怎么安装 TapCub?
- Shopify 怎么安装 TapCub?
- TapCub 统计代码贴在哪里?
- 能用 Google Tag Manager 安装 TapCub 吗?
- React、Vue 或 Next.js 应用怎么统计?
- 怎么确认 TapCub 已经在收数据?
- TapCub 装好了为什么没有数据?
- 什么是站点,能添加几个?
- 站点该选哪个时区?
- 需要登记哪些域名?
- 怎么不让自己的访问进报表?
- 访客数为什么和 Google Analytics 4 对不上?
- 能同时跑 TapCub 和 Google Analytics 4 吗?
- GA4 的目标和事件怎么搬到 TapCub?
- 能把 GA4 的历史数据导入吗?
- Squarespace 怎么安装 TapCub?
- Wix 怎么安装 TapCub?
- TapCub 需要哪些内容安全策略(CSP)规则?
- 广告拦截器会拦住 TapCub 吗?
- 怎么在 React 上安装 TapCub?
- 怎么在 Nuxt 上安装 TapCub?
- 怎么在 Vue 上安装 TapCub?
- 怎么在 Next.js 上安装 TapCub?
- 怎么为 TapCub 客服抓取 HAR 文件?
- 怎么创建和管理 API 密钥?
- 怎么用 HTTP API 发送事件?
- 本分类全部文章
简短回答
在「配置 › 设置 › API 密钥」创建带「服务端 Track」权限的密钥,再用服务端 SDK 或 POST /api/v1/track 发送事件。用订单号这类 insert_id 防止重试时重复计数,然后到「事件与属性」里核对。
简短回答
创建一个带 服务端 Track 权限的 API 密钥,然后在后端用服务端 SDK(Node.js、PHP、Python、Java、Go)或直接调用 POST /api/v1/track 发送事件。每笔订单或支付都带上 insert_id,重试时就不会重复计数。
什么事件该从服务端发
需要准确计数的都该从服务端发:购买、支付、退款、订阅变更、以数据库为准的注册。这些事件在浏览器里可能因为拦截插件、页面关闭,或支付在另一个域名完成而丢失。浏览量继续用网站脚本采集,避免重复。背景见服务端追踪。
1. 创建密钥
所有者或管理员打开 配置 › 设置 › API 密钥,创建密钥并勾选「服务端 Track」。密钥以 wck_ 开头,只在创建时显示一次。把它放进环境变量或密钥管理服务,不要写进代码仓库,也不要放到浏览器或 App 里。
2. 发送事件
用 Node.js SDK:
npm install @tapcub/node
import { TapCub } from '@tapcub/node';
const tc = new TapCub({ apiKey: process.env.TAPCUB_API_KEY });
tc.track('purchase', {
loginId: user.id,
insertId: order.id,
properties: { revenue: 19.9, currency: 'USD' },
});
SDK 会把事件排队,每 3 秒或攒满 200 条发送一次;遇到网络错误、5xx 和 429 最多重试 5 次。在 Serverless 函数里,返回前先 await tc.flush()。
不用 SDK 时,把密钥放在 Authorization 请求头里,发送 JSON:
curl -X POST "https://api.pathclue.com/api/v1/track" \
-H "Authorization: Bearer wck_…" \
-H "Content-Type: application/json" \
-d '{"events":[{"event":"purchase","login_id":"u_123","insert_id":"order-1001","properties":{"revenue":19.9}}]}'
一次请求带 1 到 1,000 个事件。time 用毫秒;和服务器时间相差超过 72 小时,会被改成当前时间,并在返回里给出警告。
3. 避免重复计数
把 insert_id(不超过 36 个字符)设成订单号、支付单号这类天然唯一的键,重试时保持不变。服务端保留带这个 ID 的第一条事件。SDK 不会替你生成它。
4. 把事件和访问、来源关联起来
- 会话:不带
session_id的事件会被存下来并计数,但不计入会话指标。想让这笔购买算在那次访问里,就传那次访问的会话 ID。 - 注册来源:网站脚本开启
data-attribution后,tapcub.getAttribution()会返回访客是怎么来的。随注册表单一起发给后端,在trackSignup里作为context.campaign原样传入,同时带上请求的 IP 和 User-Agent。 - 邮箱和手机号:身份标识在存储前会做哈希;用
bind发送,不要当普通属性传。
5. 核对
联调时用调试模式(SDK 里设 consumer: 'debug',或加 ?debug=1):服务端逐条校验,但不存储。之后发一条真实事件,在 全端分析 › 数据管理 › 事件与属性 或 网站统计 › 事件 里找到它。
常见问题
| 返回 | 原因 | 怎么处理 |
|---|---|---|
401 NO_API_KEY / BAD_API_KEY | 没带密钥、密钥已撤销或没有「服务端 Track」权限 | 检查请求头和密钥权限 |
400 VALIDATION | 有字段不符合格式 | 看 issues;整个请求都会被拒 |
429 RATE_LIMIT | 单个密钥每分钟超过 600 次请求 | 等 retryAfter 秒,改成批量发送 |
| 返回成功但看不到 | 发到了 /api/v1/server/events | 那条接口只保留机器人记录;改用 /api/v1/track |
还没装网站脚本?见安装 TapCub。
相关阅读
更新记录1
- 更新更新内容
- 首次发布
这篇回答解决你的问题了吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。