关于 analytics-tracking
面向营销测量的技能,涵盖使用 GA4 和 Google Tag Manager 规划、实施、审计及调试跟踪。重点包括事件分类、同意设置、转化、UTM 和归因,不涉及活动或产品分析。
主要功能
- 01GA4 和 GTM 跟踪规划与实施
- 02事件分类和参数设计
- 03现有跟踪审计与问题调试
- 04广告平台转化跟踪配置
- 05UTM 规范与 AI 流量归因
适用场景
- 01从零建立营销事件跟踪
- 02排查 GA4 中缺失或重复的事件
- 03审核同意设置和转化数据
- 04制定活动链接的 UTM 规范
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ borghei/ claude-skills --skill analytics-tracking安装后在 Claude Code 中输入/analytics-tracking确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/event_schema_checker.pyfunnel_drop_off_analyzer.pyutm_validator.py详细介绍
分析跟踪——实施与审计
类别: 营销 标签: GA4、Google Tag Manager、事件跟踪、转化跟踪、UTM、分析审计、同意模式
概述
分析跟踪是营销衡量的实施层。错误的跟踪比没有跟踪更糟糕——重复事件、缺少参数、未经同意的数据以及失效的转化,都会导致决策依据不准确的数据。此技能涵盖如何从一开始就正确搭建跟踪,以及如何在跟踪出现问题时找出故障所在。
此技能仅处理实施。要分析营销活动效果数据,请使用 campaign-analytics。对于产品分析和应用内行为,请使用 product-team 技能。
先澄清
在制定跟踪计划之前,请确认以下信息。如果有任何信息未知或含糊不清,请询问——不要自行假设:
- 运行模式——从头搭建、审计现有跟踪,还是调试特定问题(决定整个工作流)
- 平台技术栈——GA4、GTM,以及使用哪些广告平台(Google Ads / Meta / LinkedIn)(决定实施和转化跟踪设置)
- 关键转化与漏斗事件——对业务至关重要的用户操作(决定事件分类和转化配置)
- 地区 / 同意要求——是否有欧盟 / 欧洲经济区用户?(决定是否需要 Consent Mode v2)
停止规则:只询问对结果影响最大的 2-3 项。如果用户说“直接起草”,就继续处理,并在产出内容顶部列出你的假设。
运行模式
模式 1:从头搭建
尚未部署分析工具。制定跟踪计划,实施 GA4 + GTM,定义事件分类,并配置转化。
模式 2:审计现有跟踪
已有跟踪,但数据不可信。审计覆盖情况,找出缺口,清理重复项,并修复同意问题。
模式 3:调试特定问题
事件缺失、转化数据不匹配,或 GTM 预览显示已触发但 GA4 没有记录。使用结构化的调试工作流。
事件分类设计
在接触 GA4 或 GTM 之前,先做好这一步。事后重整分类既痛苦又昂贵。
命名规范
格式: object_action(snake_case,过去时动词)
| 正确 | 错误 | 错误原因 |
|---|---|---|
form_submitted | submitForm | 使用 camelCase,动词在前 |
plan_selected | clickPricingPlan | 这是实现细节,而非用户操作 |
video_started | VideoStart | 使用 PascalCase,时态不一致 |
checkout_completed | purchase | 含义模糊,不是动词短语 |
规则:
- 始终采用
noun_verb顺序,绝不使用verb_noun - 仅使用 Snake_case——不要使用 camelCase、连字符或 PascalCase
- 使用过去时动词:
_started、_completed、_failed、_viewed - 命名要足够具体,避免歧义,但不要冗长得像一句话
- 必要时添加领域前缀:
onboarding_step_completed、billing_plan_selected
标准事件参数
每个自定义事件都应包含此表中适用的参数:
| 参数 | 类型 | 示例 | 必填条件 |
|---|---|---|---|
user_id | string | usr_abc123 | 始终(已通过身份验证时) |
plan_name | string | professional | 账单 / 定价事件 |
value | number | 99.00 | 收入事件 |
currency | string | USD | 始终与 value 一起使用 |
content_group | string | onboarding | 页面 / 流程分组 |
method | string | google_oauth | 注册 / 登录事件 |
step_name | string | connect_account | 多步骤流程 |
step_number | number | 3 | 多步骤流程 |
source | string | pricing_page | CTA 点击事件 |
SaaS 事件分类(参考)
核心漏斗:
visitor_arrived (automatic page_view in GA4)
signup_started (user clicked "Sign up")
signup_completed (account created)
trial_started (free trial began)
onboarding_step_completed (params: step_name, step_number)
feature_activated (params: feature_name)
plan_selected (params: plan_name, billing_period)
checkout_started (params: value, currency, plan_name)
checkout_completed (params: value, currency, transaction_id)
subscription_renewed (params: value, plan_name)
subscription_cancelled (params: cancel_reason, plan_name)
微转化:
pricing_viewed
demo_requested (params: source)
form_submitted (params: form_name, form_location)
content_downloaded (params: content_name, content_type)
video_started (params: video_title)
video_completed (params: video_title, percent_watched)
chat_opened
help_article_viewed (params: article_name)
invite_sent (params: recipient_role)
integration_connected (params: integration_name)
GA4 配置
数据流设置
- 创建媒体资源:GA4 管理员 > 媒体资源 > 创建
- 添加包含你域名的 Web 数据流
- 增强型衡量——逐项检查:
- 网页浏览量:保持启用
- 滚动:保持启用
- 出站点击:保持启用
- 站内搜索:如果你有搜索功能,则启用
- 视频互动:如果你手动跟踪视频,则停用(避免重复)
- 文件下载:如果通过 GTM 跟踪,则停用(以获取更完善的参数)
- 配置域名:添加转化漏斗中的所有子域名
- 数据保留期限:设为 14 个月(免费版 GA4 的上限)
关键事件(以前称为“转化”)
GA4 于 2024 年 3 月将“转化”更名为关键事件;现在,“转化”指的是导入 Google Ads 的关键事件。在 GA4 管理员 > 数据展示 > 事件中将事件标记为关键事件(星形图标):
signup_completedcheckout_completeddemo_requestedtrial_started
规则:
- 标准媒体资源最多可设置 30 个关键事件(Analytics 360 最多 50 个)——请谨慎筛选
- 标记关键事件不会追溯生效——它只影响标记之后的报告,不会影响历史数据
- 除非要针对微转化优化广告系列,否则不要将微转化标记为关键事件
- 计数方法:潜在客户事件设为“每次会话一次”,购买事件设为“每次”
来源:将事件标记为关键事件(截至 2026 年 9 月)。
自定义维度
为你想要筛选或细分的任何事件参数注册自定义维度:
| 参数 | 范围 | 维度名称 |
|---|---|---|
plan_name | 事件 | 计划名称 |
user_id | 用户 | 用户 ID |
content_group | 事件 | 内容组 |
feature_name | 事件 | 功能名称 |
在 GA4 管理员 > 自定义定义 > 创建自定义维度中注册。
Google Tag Manager 实现
容器架构
GTM Container
├── Tags
│ ├── GA4 Configuration (All Pages trigger)
│ ├── GA4 Event Tags (one per custom event)
│ ├── Google Ads Conversion Tags (per conversion action)
│ └── Meta Pixel / LinkedIn Insight (if running ads)
├── Triggers
│ ├── All Pages (Page View)
│ ├── DOM Ready
│ ├── Custom Event triggers (one per dataLayer event)
│ └── Element Click triggers (CSS selector based)
└── Variables
├── Data Layer Variables (one per dataLayer key)
├── Constants (GA4 Measurement ID, etc.)
└── Lookup Tables (if needed for mapping)
实现模式:推送到数据层
你的应用会将事件推送到数据层。GTM 会接收这些事件并发送到 GA4。
应用代码:
// Push event when user completes signup
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'signup_completed',
method: 'email',
user_id: userId,
plan_name: 'trial'
});
GTM 配置:
Trigger:
Type: Custom Event
Event name: signup_completed
Tag:
Type: GA4 Event
Event name: signup_completed
Parameters:
method: {{DLV - method}}
user_id: {{DLV - user_id}}
plan_name: {{DLV - plan_name}}
SPA 处理
单页应用需要特别注意,因为页面浏览量不会在路由更改时自动触发。
选项 A:历史记录更改触发器(GTM 内置)
- 在 GTM 中启用“历史记录更改”触发器
- 每次调用 pushState/popState 时触发 GA4 page_view
选项 B:路由更改时推送 DataLayer(控制更灵活)
// In your router (React Router, Next.js, etc.)
router.events.on('routeChangeComplete', (url) => {
window.dataLayer.push({
event: 'page_view',
page_location: url,
page_title: document.title
});
});
转化跟踪:广告平台
Google Ads
**推荐方法:**将 GA4 转化导入 Google Ads(以单一数据源为准)。
- 关联 GA4 和 Google Ads 账号
- 在 Google Ads > 目标 > 转化 > 导入 > Google Analytics 中操作
- 选择要导入的 GA4 关键事件(它们会成为 Google Ads 转化)
- 设置归因模型:数据驱动型(如果每月有 50 次以上转化),否则选择末次点击
- 转化窗口:潜在客户开发设为 30 天,高考虑度 B2B 设为 90 天
**增强型转化:**启用后可将转化衡量效果提升 15–30%。它会发送经过哈希处理的第一方数据(电子邮件、电话号码),以匹配 Cookie 未能捕获的转化。
Meta(Facebook/Instagram)
- 通过 GTM 安装 Meta Pixel 基础代码
- 配置标准事件:
PageView、Lead、CompleteRegistration、Purchase - 转化 API(CAPI):强烈建议启用——由于广告拦截器和 iOS App 跟踪透明度,客户端像素会漏掉约 30% 的转化
- 去重:同时使用像素和 CAPI 时,发送相同的
event_id,以避免重复计数
LinkedIn Insight Tag
- 通过 GTM 安装(标签类型:LinkedIn Insight)
- 在 LinkedIn Campaign Manager 中配置转化事件
- 将事件与分类体系对应:
signup_completed-> LinkedIn“注册”转化
UTM 策略
规范约束
| 参数 | 规范 | 示例 |
|---|---|---|
utm_source | 平台名称,使用小写 | google、linkedin、newsletter |
utm_medium | 流量类型 | cpc、email、social、organic |
utm_campaign | 活动标识符 | q1-trial-push、brand-awareness-2026 |
utm_content | 创意变体 | hero-cta-blue、sidebar-text-link |
utm_term | 付费关键词(仅限搜索) | saas-analytics-tool |
关键规则:
- 切勿为自然流量添加 UTM 参数(这会覆盖 GA4 的自动归因)
- 切勿为直接流量或内部链接添加 UTM 参数
- 使用 UTM 构建器电子表格或工具——手动输入会导致不一致
- 全部使用小写——在 GA4 中,
Google和google是不同的来源
归因窗口
| 平台 | 默认值 | SaaS 推荐设置 |
|---|---|---|
| GA4 | 30 天 | 30-90 天(与销售周期匹配) |
| Google Ads | 30 天 | 30 天(试用),90 天(企业) |
| Meta | 点击后 7 天,浏览后 1 天 | 仅点击后 7 天(浏览归因会夸大数据;7-/28 天浏览窗口已于 2026 年 1 月移除) |
| 30 天 | 30 天 |
AI 引荐流量
来自 AI 助手(ChatGPT、Gemini、Claude、Copilot、Perplexity 等)的访问量正成为一种日益增长且独特的获客来源。应明确衡量这类流量,而不是让它们混入引荐流量或直接流量。
GA4“AI 助手”渠道(截至 2026 年 9 月)
自 2026 年 5 月 13 日起,GA4 的默认渠道组中包含一个 AI 助手渠道。当引荐来源匹配 Google 认可的 AI 助手列表时,GA4 会将 medium 设为 ai-assistant,将 campaign 设为 (ai-assistant),并将会话归入 AI 助手渠道。无需进行任何配置。此规则的评估顺序在引荐之前。来源:默认渠道组、Google Analytics 中的新增内容。
已知缺口
| 缺口 | 情况 | 缓解措施 |
|---|---|---|
| 不会追溯应用 | 推出之前的会话仍归入引荐流量 | 使用下方的自定义渠道组进行历史比较 |
| 未识别的助手 | 不在 Google 列表中的 AI 工具仍会归入引荐流量 | 使用自定义渠道组和你自己的正则表达式 |
| Google AI Overviews / AI Mode 点击 | 不计入 AI 助手;这些点击来自 google.com,会计入自然搜索 | 使用 Search Console(网页搜索类型 + 生成式 AI 报告)——GA4 无法单独识别这类点击 |
| 引荐来源被移除 | 许多来自应用和复制粘贴的访问没有引荐来源,会被归入直接流量 | 为你能控制的链接添加 UTM 参数(例如,llms.txt、文档、GPT/应用列表中的链接);留意与 AI 引用页面匹配的直接流量落地页 |
| 助手添加的 UTM 参数 | 某些助手会附加自己的 UTM 参数(根据 OpenAI 面向发布者的常见问题,ChatGPT 会为引荐链接添加 utm_source=chatgpt.com),这会改变来源/媒介的记录方式 | 匹配会话来源(由 UTM 参数设置),而不只是引荐来源 |
备用方案:自定义渠道组
在 GA4 中创建自定义渠道组(Admin > Data display > Channel groups),添加一个“AI 助手(自定义)”渠道,并将其放在引荐渠道上方,条件设为 会话来源匹配正则表达式:
^(chatgpt\.com|chat\.openai\.com|openai\.com|perplexity\.ai|www\.perplexity\.ai|gemini\.google\.com|bard\.google\.com|claude\.ai|copilot\.microsoft\.com|edgeservices\.bing\.com|chat\.deepseek\.com|grok\.com|meta\.ai|chat\.mistral\.ai|you\.com|phind\.com)$
将此列表纳入版本控制,并每季度审核一次;助手域名会发生变化。campaign-analytics 归因脚本使用相同列表来归类 ai_assistant 渠道。
跨域跟踪
对于跨越多个域名的漏斗(例如,从 acme.com 跳转到 app.acme.com):
- GA4 管理员 > 数据流 > 配置代码设置 > 配置您的域名 > 添加两个域名
- GTM:GA4 配置代码 > 要设置的字段 >
linker> 添加域名 - 管理员 > 数据流 > 列出不需要的引荐来源 > 添加两个域名
**验证:**访问域名 A,点击指向域名 B 的链接,然后检查 GA4 DebugView。会话不应重新开始。如果开始了新会话,则跨域跟踪已失效。
同意管理
Consent Mode v2
这是符合欧盟要求以及在严格要求用户同意的市场中保持数据质量的必要条件。
| 设置 | 无 Consent Mode | Basic | Advanced |
|---|---|---|---|
| 用户拒绝 Cookie | 零数据 | 零数据 | 建模数据(GA4 估算值) |
| 对数据质量的影响 | 欧盟数据损失 25-40% | 数据损失 25-40% | 数据损失 5-15% |
| 实施工作量 | 无 | 中等 | 中高 |
**建议:**通过 GTM 搭配 CMP(Cookiebot、OneTrust、Usercentrics)实施 Advanced Consent Mode v2。
各地区的预期同意率:
- 欧盟/欧洲经济区:60-75%
- 英国:70-80%
- 美国:85-95%
- 世界其他地区:80-90%
通过 GTM 实施
1. Install CMP tag (fires first, before any other tags)
2. Set default consent state:
- analytics_storage: denied
- ad_storage: denied
- ad_user_data: denied
- ad_personalization: denied
3. CMP updates consent state on user choice
4. GA4 and ad tags respect consent automatically
数据质量审计
审计清单
事件质量:
- 没有重复事件(在 GTM 预览中检查是否重复触发)
- 所有自定义事件都包含必需参数
- 事件名称遵循命名规范
- 事件参数中不包含个人身份信息(姓名、电子邮件、电话号码)
- 增强型评估没有重复记录 GTM 自定义事件
配置质量:
- 数据保留期限设为 14 个月
- 已启用内部流量过滤器(办公室和开发人员的 IP)
- 已启用机器人过滤(GA4 默认启用)
- 跨域跟踪正常工作(如适用)
- 已为过滤后的参数注册自定义维度
- 转化事件已正确标记
同意质量:
- 已实施 Consent Mode v2(如果面向欧盟用户)
- 首次访问时会显示 CMP 横幅
- 代码遵循用户同意状态(未获得同意前不会触发)
- 同意状态会在各页面间保留
常见的数据质量问题
| 问题 | 症状 | 根本原因 | 修复方法 |
|---|---|---|---|
| 网页浏览量虚高 | 是预期值的 2 倍 | GTM page_view + 增强型评估 | 停用增强型 page_view |
| 转化缺失 | GA4 和 Ads 数值不同 | 归因窗口不匹配 | 统一窗口 |
| 页面显示为 (not set) | 页面显示为 "/(not set)" | 未处理 SPA 路由 | 实施 SPA 跟踪 |
| 自引荐 | 引荐来源报告中出现自己的域名 | 缺少跨域配置 | 将域名添加到引荐来源排除列表 |
| 直接流量激增 | 付费流量显示为直接流量 | 缺少 UTM 或 UTM 被移除 | 审查 UTM 使用情况 |
| 欧盟数据为零 | 没有来自欧盟市场的流量 | 同意机制阻止了所有跟踪 | 实施 Advanced Consent Mode |
调试工作流
Step 1: Open GTM Preview mode
- Is the tag firing? Check triggers and conditions
- Is the data layer populated? Check dataLayer in console
Step 2: Check GA4 DebugView (Admin > DebugView)
- Is the event appearing? If yes, GTM is working
- Are parameters populated? Check parameter values
Step 3: Check GA4 Realtime report
- Events appearing with 5-minute delay? Normal
- Events not appearing at all? Check measurement ID
Step 4: Check Network tab (DevTools)
- Filter by "collect" or "analytics"
- Is the request being sent? Check status code
- Is the request being blocked? Check ad blockers / consent
主动触发条件
主动展示以下发现,无需用户询问:
- 每次页面加载都会触发参数完全相同的事件:触发器配置错误,导致数据虚高
- 已登录事件没有
user_id参数:无法将分析数据与 CRM 关联,也无法了解用户群组 - GA4 转化次数与 Google Ads 相差超过 15%:归因窗口或去重问题
- 欧盟市场未启用 consent mode:存在法律风险,且数据低报 25-40%
- 所有页面都显示为
/(not set):SPA 路由处理不当 - 已知付费广告系列的
utm_source显示为direct:UTM 缺失或在重定向时被移除
相关技能
| 技能 | 适用场景 |
|---|---|
| campaign-analytics | 分析营销表现和渠道 ROI(不涉及实施) |
| ab-test-setup | 设计实验(此技能的事件会为 A/B 测试提供数据) |
| launch-strategy | 跟踪产品发布事件 |
| email-sequence | 设置电子邮件点击跟踪和 UTM 参数 |
故障排查
| 症状 | 可能原因 | 解决方法 |
|---|---|---|
| 隐私变更后,GA4 显示的流量比预期少 50% | 客户端跟踪被广告拦截器阻止,且 ITP/ETP Cookie 已过期 | 实施服务器端 GTM 标记——在首个季度内可恢复 20-40% 丢失的归因数据 |
| GA4 与 Google Ads 的转化次数相差超过 15% | 归因窗口不一致,或像素与 CAPI 之间去重失败 | 统一各平台的归因窗口,并确保 event_id 匹配以进行去重 |
| 事件在 GTM 预览中触发,但未显示在 GA4 报告中 | Measurement ID 不匹配、同意模式拦截,或数据处理延迟 | 检查 GA4 配置标记中的 Measurement ID,验证同意状态,并等待 24-48 小时以生成标准报告 |
| UTM 参数在 GA4 中显示为(未设置) | UTM 被重定向剥除、被社交平台链接包装器移除,或被内部链接覆盖 | 审核重定向链,使用兼容 UTM 的短链接服务,切勿在内部链接中添加 UTM |
| 服务器端容器返回 400 错误 | 事件载荷格式错误,或 Measurement Protocol 请求缺少必需字段 | 根据 GA4 Measurement Protocol 架构验证载荷,检查必需的 client_id 和 api_secret |
| 增强型衡量重复触发自定义 GTM 事件 | 增强型衡量与 GTM 同时触发同一种事件(例如 page_view、scroll) | 对通过 GTM 跟踪的事件,关闭对应的增强型衡量选项 |
| Consent Mode v2 报告的欧盟数据为零,而非建模数据 | GA4 标记触发前未设置默认同意状态,或 CMP 未正确更新同意状态 | 确保同意默认值作为 GTM 中触发的第一个标记,在所有其他标记之前触发 |
成功标准
- 所有自定义事件均遵循一致的
noun_verbsnake_case 命名规范,架构审计中零违规 - GA4 转化次数与广告平台转化次数的差异在 10% 以内
- 部署后 90 天内,服务器端跟踪恢复 20% 以上此前丢失的归因数据
- 所有有效营销活动的 UTM 参数验证通过率达到 100%(无大小写混用、无空格、无缺少必需参数)
- 通过行为建模,Consent Mode v2 将欧盟数据损失控制在 15% 以下
- 经自动化架构检查器验证,事件参数中不存在任何 PII 违规
- 数据保留期限设为 14 个月,过滤内部流量,并验证跨域跟踪
范围与限制
范围内: GA4 配置、GTM 实施、事件分类设计、转化跟踪设置、UTM 策略、同意管理、数据质量审计、服务器端标记架构、跨域跟踪、广告平台转化集成(Google Ads、Meta、LinkedIn)。
范围外: 产品分析平台(Amplitude、Mixpanel)、数据仓库配置、自定义 ETL 管道、移动应用跟踪(Firebase)、营销归因建模(参见 marketing-analyst skill)、A/B 测试统计分析(参见 ab-test-setup skill)。
限制: 服务器端跟踪需要云托管的 GTM 容器(GCP、AWS 或第三方服务)及相关基础设施,并会产生相应费用。采用 Consent Mode v2 的隐私优先分析会为未同意的用户生成建模数据——建模数据与实际数据的差异为 5-15%。此技能不会调用 LLM 或 API;所有验证均为确定性验证。
脚本
| 脚本 | 用途 | 用法 |
|---|---|---|
scripts/utm_validator.py | 验证 UTM 参数的一致性和命名规范 | python scripts/utm_validator.py urls.csv --json |
scripts/event_schema_checker.py | 根据分类验证事件名称和参数,并检测 PII | python scripts/event_schema_checker.py events.json --json |
scripts/funnel_drop_off_analyzer.py | 分析转化漏斗并找出流失最多的环节 | python scripts/funnel_drop_off_analyzer.py --stages "Visitors:10000,Signups:1200,Paid:120" |