Skip to content

feat(growth): UTM 跟踪 doc 分享 + turbopack root 锁定#334

Merged
longsizhuo merged 1 commit intomainfrom
feat/utm-tracking-v2
May 6, 2026
Merged

feat(growth): UTM 跟踪 doc 分享 + turbopack root 锁定#334
longsizhuo merged 1 commit intomainfrom
feat/utm-tracking-v2

Conversation

@longsizhuo
Copy link
Copy Markdown
Member

背景

i18n PR (#330) 之前 feat/utm-tracking 分支上有几个零散改动,PR 开始时 stash 出来避免和 i18n 大重构混在一起。本 PR 恢复这些工作。

内容

1. UTM 跟踪 GitHub README 入站流量

README.md / README.en.md 的 logo 和 badge 链接:

- href="https://involutionhell.com"
+ href="https://involutionhell.com/?utm_source=github&utm_medium=readme&utm_campaign=logo"
- href="https://involutionhell.com"   (badge)
+ href="https://involutionhell.com/?utm_source=github&utm_medium=readme&utm_campaign=badge"

GA Source 维度可以分清"从 GitHub readme logo 进站" vs "从 badge 进站"。

2. UTM 跟踪用户主动分享 doc 链接

DocShareButton.tsx 用户点"复制链接"时:

- const url = window.location.href;
+ const target = new URL(window.location.href);
+ target.searchParams.set("utm_source", "doc_share");
+ target.searchParams.set("utm_medium", "user_share");
+ const url = target.toString();

用户复制到 Discord / 微信 / X 之后,回流时 GA 能看到 doc_share source,区别于 (direct)/(none),能定量看出"用户主动分享"对站点流量的贡献。

3. turbopack root 显式锁定(次要工程改动)

next.config.mjs 加:

turbopack: { root: projectRoot },
outputFileTracingRoot: projectRoot,

Next.js 16 默认会向上搜 lockfile 推 workspace root。开发机 /home/ubuntu/package-lock.json 这类上层 lockfile 会把 root 推到上层,turbopack 解析 node_modules 错位 → Can't resolve 'tailwindcss' 之类报错。锁死 root 防 dev 翻车。

Test plan

  • preview 部署 README 链接点开后 URL 上能看到 utm_*
  • 任意 doc 页点"复制链接"粘贴出来带 utm 参数
  • dev server 起得来(验证 turbopack root 锁定不破其它东西)
  • GA 一周后 Acquisition 报告能看到 github / readmedoc_share / user_share source

恢复自 i18n PR 之前 stash 出来的 utm-tracking 工作。

UTM 跟踪:
- README badge / logo 链接加 utm_source=github,utm_medium=readme,
  utm_campaign={logo,badge},让 GA Source 维度看到 GitHub 入站流量
- DocShareButton 复制链接时打 utm_source=doc_share,utm_medium=user_share,
  用户分享到 DC/微信/X 后回流在 GA 看到,区别于 (direct)/(none)

turbopack root:
- next.config.mjs 显式锁定 turbopack root 和 outputFileTracingRoot 到
  frontend/ 自己目录。Next.js 16 默认会向上搜 lockfile 推 workspace root,
  开发机上 /home/ubuntu/package-lock.json 之类的会把 root 推到上层,
  turbopack 解析 node_modules 错位 → "Can't resolve 'tailwindcss'" 类报错。
Copilot AI review requested due to automatic review settings May 6, 2026 15:40
@vercel
Copy link
Copy Markdown

vercel Bot commented May 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
involutionhell-github-io Ready Ready Preview, Comment May 6, 2026 4:03pm
website-preview Ready Ready Preview, Comment May 6, 2026 4:03pm

@longsizhuo longsizhuo merged commit 6506c8d into main May 6, 2026
12 checks passed
@longsizhuo longsizhuo deleted the feat/utm-tracking-v2 branch May 6, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant