更多: 快速开始
- 在网站上安装 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?
- 怎么为 TapCub 客服抓取 HAR 文件?
- 怎么创建和管理 API 密钥?
- 怎么用 HTTP API 发送事件?
- 本分类全部文章
简短回答
在根布局的 head 里加一次 TapCub 脚本标签(app/layout.tsx;pages router 是 pages/_document)。app router 的跳转自动记录。tapcub.track 和 tapcub.login 只在客户端组件里调用;服务端组件和 server action 里没有 tapcub。
简短回答
在根布局的 head 里加一次 TapCub 脚本标签(app router 是 app/layout.tsx,pages router 是 pages/_document)。app router 的跳转会自动记录。tapcub 只能在客户端组件里调用,服务端组件和 server action 里没有 tapcub。
站点密钥在 网站统计 › 配置 › SDK 代码 里。
1. 只加一次脚本
app router,把标签放在根布局的 head 里:
// app/layout.tsx
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="zh">
<head>
<script defer src="https://static.pathclue.com/client.js" data-site="YOUR_SITE_KEY" />
</head>
<body>{children}</body>
</html>
)
}
pages router 把同一个标签放在 pages/_document 的 head 里。不要在页面组件里再输出一次。
脚本会在浏览器里自己启动。不要在组件里再创建或注入一次;重复插入会被忽略。
2. 页面浏览和路由切换
首次加载和之后使用 history 模式的路由切换,都会自动发送。app router 的客户端跳转走浏览器 history,后续的页面浏览不用写代码也会发送。
想自己发送页面浏览,在脚本上设置 data-auto-track="false",并在每次路由完成后调用 tapcub.pageview()。注意这也会关掉自动的外链和下载点击、Web Vitals 和 404 事件。见在单页应用上安装。
3. 事件和登录
tapcub.track('purchase', { revenue: 19.9 });
在客户端组件(文件开头写 "use client")里调用,比如放在点击处理函数里。服务端组件和 server action 运行的地方没有 tapcub。事件名超过 100 个字符会被截断;最多保留 20 个属性,键名截到 50 个字符、字符串值截到 200 个字符。属性值只保留字符串、数字和布尔值。
用户登录后,把访客和你的用户 ID 关联起来:
tapcub.login(userId, { plan: 'pro' }, { type: 'login' });
login 来自身份脚本,调用前先确认它存在。详见识别用户。
检查是否生效
localhost 这类本地主机名默认不发送,很容易被误以为安装失败。在部署好的预览地址或线上网站测试,看浏览器网络面板里的采集请求,然后按检查安装确认。
常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
构建时报 tapcub is not defined | 在服务端组件里调用了 | 把调用移到客户端组件的处理函数里 |
| 每次跳转记两次页面浏览 | 布局和页面里各输出了一次标签 | 只保留根布局里的标签 |
| 本地开发时没有请求 | 本地主机名默认不发送 | 在部署好的地址上测试 |
| 只有第一次页面浏览 | 哈希路由却没加 data-hash="true" | 加在同一个标签上 |
| 属性丢了 | 超过 20 个属性,或者值是对象 | 发送扁平的字符串、数字或布尔值 |
不是用 Next.js?见安装 TapCub。
这篇回答解决你的问题了吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。