Communitygithub.com

归因

帮助营销人员确定哪些营销活动真正推动了转化和收入,选择或解释归因模型,并协调不同工具之间的数据冲突。

归因 是什么?

归因 (Attribution) 技能旨在解决营销中最棘手的问题:哪些营销努力真正带来了转化和收入?它分为两大支柱:(A) 解读——帮助用户选择归因模型、协调工具间的数据冲突,适用于所有人,无需工程背景;(B) 自建归因——当用户拥有网站/应用控制权时,指导如何通过第一方数据自行追踪和拼接归因,尤其适用于转换发生在非自有域名的场景。该技能明确自身边界,不涉及通用事件追踪、广告像素、CRM 管道等,并提供了标准化模型(如首次接触、末次接触等)的对比,以及预算、销售周期与渠道数量对应的测量范式选择。核心洞见是:归因是方向性的而非绝对真理;大多数冲突源于各平台系统性地高估自身贡献;直接流量和品牌搜索往往是归因隐藏效应的表现。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coreyhaines31/marketingskills/tree/main/skills/attribution

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

归因 (Attribution)

你帮助用户回答营销中最棘手的问题:我的哪些努力真正导致了这次转化和这笔收入? 归因是营销人员损失最多钱的环节——那些在一个仪表盘上表现良好、在另一个仪表盘上却糟糕透顶的渠道,隐藏真实来源的“直接 / 品牌搜索”,以及那些悄然将观点包装为事实的模型。

这项技能有两个支柱。在深入之前,务必先判断用户需要哪一个:

  • (A) 解读——选择归因模型、确定衡量方法,以及协调不同工具报告的矛盾数据。这适用于所有人,即使没有工程背景。
  • (B) 自建归因(第一方)——当你控制网站/应用时,自己 进行归因的测量和拼接。这是自建路线。当用户说“我想自己追踪”或遇到一个发生在他们不拥有域名上的转化时使用。

大多数请求从 (A) 开始。只有当用户控制触点且希望自建时,才转向 (B)。

产品上下文:检查 .agents/product-marketing.md 并在存在时阅读——业务类型、销售周期和主要转化驱动了这里几乎所有的建议。

边界——这项技能不负责的内容

提前说明这些,以免重复构建相邻技能:

  • 通用事件追踪、追踪计划、UTM 设置、GA4/GTM → 属于 分析。归因假设追踪已经存在。界限:分析 = “什么事件以及如何触发它们”;归因 = “触点如何关联到转化并影响到收入”。
  • 广告平台像素、CAPI、服务器端转化追踪 → 属于 广告 (references/conversion-tracking.md)。归因使用平台报告的数字并纠正其偏差;它不设置像素。
  • 管道阶段、线索生命周期、CRM 收入仪表盘 → 属于 收入运营 (RevOps)。归因向管道数据提供输入;它不定义阶段。
  • 在 AI 搜索中出现 / 衡量 AI 搜索影响 → 属于 AI 搜索 (AI-SEO)。归因仅将 AI 流量列为盲点。

支柱 A — 解读

1. 归因能告诉你什么,不能告诉你什么

在接触任何数字之前,先设定预期:

  • 归因是指示性的,不是真理。 它是一个建立在完整数据基础上(cookie 过期、会话碎片化、离线触点消失、用户在不同设备上研究和购买)的因果模型。将其视为强烈暗示,而非最终裁决。
  • 每个模型都是一种观点。“首次接触”模型将全部功劳归给第一条广告;“末次接触”模型则将全部功劳归给促成转化的最后一次点击。两者都以相反的方式出错。选择模型就是在选择相信谁的故事——请说出来。
  • 归因差距是正常的。 所有渠道报告的转化总和几乎总是超过实际转化数,因为每个平台都声称对同一笔销售有功。你的工作是缩小并解释这个差距,而不是让数字完美吻合。它们不会。

当用户要求一个确定的数字时,重新表述:“我们可以给你一个可辩护、一致的数字,以及哪些渠道在上升的判断。单一客观真理并不存在——以下是原因,以及我们用来做决策的依据。”

2. 归因模型

六种标准模型及其各自的偏差:

模型功劳分配规则最佳适用场景如何扭曲真相
首次接触100% 给第一个已知触点漏斗顶部 / 需求生成评估;短周期忽略所有关闭交易的努力;过度夸大了认知渠道
末次接触100% 给转化前的最后一个触点直接响应、快速电子商务过度夸大了漏斗底部 + 品牌搜索 / 直接流量;忽略了创造需求的源头
末次非直接跳过“直接”流量,将功劳分配给最后一个非直接触点修正直接流量问题的廉价方案仍然是单一触点;只是移动了盲点
线性平均分配给每个触点长周期、多触点的旅程,每一步都重要将一次无关紧要的访问与一次演示等同对待;偏爱高频渠道
时间衰减更接近转化的触点获得更多功劳较长的周期,近期性更重要低估了漏斗顶部;仍然是一种假设,而非测量
位置型(U 型)首次触点 40%,末次触点 40%,中间触点 20%具有明确“创建”和“关闭”场景的 B2B40/40/20 的分配是任意的;中间触点被低估
数据驱动型(算法 / Shapley)根据建模的边际贡献分配功劳高流量账户,有足够多的转化黑箱;需要数据量;无法看到未输入的数据中的离线 / 暗触点

经验法则:

  • 对于长销售周期,不要孤立地报告单一模型。并排展示首次接触和末次接触——真相位于两者之间,它们之间的差距就是洞察。
  • 数据驱动归因需要数据量(Google Ads 历史上将其门槛设为 30 天内约 3000 次广告互动和约 300 次转化;如今已放宽最低限制并将 DDA 设为默认值,但低数据量仍使其像科学般的噪音)。当数据不足时,改用位置型模型。
  • 模型的选择远不如一致性重要,并且要配合一个模型外的合理性检查(支柱 A 第 4 节,自报告)。

关于模型计算的详细内容、同一旅程六种模型计分的工作示例,以及 Shapley 值的清晰解释,请参见 references/attribution-models.md。

3. 三种测量范式

模型在你已有的追踪数据内部分配功劳。范式则是你触及因果性的方式——严谨程度递增,成本也随之增加:

范式定义回答的问题所需条件注意事项
MTA (多点归因)拼接用户级触点,应用模型“哪些触点在转化路径中出现?”清洁的跨设备用户级追踪Cookie 丢失和隐私问题已严重削减用户级数据;它在沉默中低估
MMM (媒体 / 营销组合建模)对支出与结果随时间进行顶层回归分析“每个渠道的整体贡献是多少,包括线下 / 品牌?”2-3 年的周级数据、支出变化相关性;响应缓慢;需要实际的预算波动才能学习
增量性 (地理对照、PSA、幽灵广告、开关测试)控制实验:暴露组 vs. 对照组“这个渠道是否引起了我不做也不会有的提升?”能够停止广告投放;足够的数据量以产生显著性黄金标准,但一次只能测试几件事

如何选择: 小预算 / 短周期 → 好的 UTM + 末次非直接 + 一份自报告调查比复杂的模型更好。中等预算,多个渠道 → MTA 用于日常运营,定期对你的最大预算项目进行增量性测试。大预算,线下 + 品牌投入 → MMM 用于投资组合,用增量性测试验证 MMM 的系数。每当两个渠道都声称转化相同用户时,增量性测试是仲裁者。

按预算 × 销售周期 × 渠道数量划分的决策表,以及如何解读地理对照 / PSA 测试(不是统计教程),请参见 references/measurement-paradigms.md。

4. 自报告归因

最被低估的信号,对于长周期和暗社交通常也最诚实。基于转化的“你从哪里听说我们的?”调查捕获了追踪系统无法覆盖的内容:播客、口口相传、Slack 社区、创始人的推文、“朋友告诉我的”。

  • 何时优于追踪: 长考虑周期、高口碑、品牌 / 社区导向、大量暗社交(见第 5 节)。如果你的大部分旅程来自“直接”流量,那你正面临一个需要自报告调查解决的问题。
  • 在转化时刻(注册、首次购买、演示请求)进行询问——此时记忆最清晰。
  • 措辞: 开放式问题(“你最初是怎么知道我们的?”)能捕获暗社交;简短的选项列表更容易量化,但会预先引导答案。最佳实践:已知渠道的选项列表加上一个自由文本的“其他 / 告诉我们更多”。
  • 将其视为三角测量的输入,而非信条——记忆是模糊的,人们会把功劳归给令人难忘的触点,而非第一个。它是让你的追踪模型保持诚实的模型外检查。
  • 从自建角度看,这是一个写入 CRM / 分析系统中的人物属性的表单字段——参见支柱 B 和 references/first-party-tracking.md。

5. 协调冲突的数据源

大多数归因工作背后的真正请求:“Google 说 50,Meta 说 40,GA 说 60,我的 CRM 说 35——谁是对的?” 没有谁是对的。以下是分析框架。

每个数据源系统的偏差:

数据源偏向于原因
广告平台 (Google/Meta/LinkedIn)高估自身在自己的归因窗口内同时认领展示和点击转化;每个平台都声称对同一笔销售有功;有动机显得表现良好
GA / 网站分析末次非直接点击丢失跨设备流量、丢失阻止 Cookie 的用户,将未知部分倾倒到“直接”流量
CRM任何代表输入 / 表单捕获的内容人工输入、线索来源改写、无数字足迹的线下交易
自报告调查令人难忘的触点回忆偏差;低估无聊但真实的触点,如重定向

如何进行三角测量:

  1. 为转化计数选择一个唯一真实来源——通常是你的 CRM 或后端(资金真实存在的系统)。其他所有系统只顾解释这些转化从何而来,而非重新定义有多少。
  2. 永远不要跨平台相加。 如果 Google 和 Meta 都声称同一笔转化,你有一笔转化和两个认领者,而不是两笔转化。根据真实来源的总数进行去重。
  3. 读取方向性一致,而非绝对匹配。 如果每个来源都说付费搜索在本季度上升而自然搜索下降,那么这个趋势是可信的,即使没有两个数字完全相符。
  4. 当平台为同一笔转化争执时,使用自报告作为仲裁者,当赌注足够大时,使用增量性测试。
  5. 预期并预算差距。 报告“平台声称 N;我们可以验证 M;差额来自过度认领 + 展示归因 + 无法追踪的渠道——这是我们最好的分配方案。”

输出是一份带有置信水平的诚实分配,而非虚假的精确到小数点的调和。

6. 盲点

转化隐藏的地方,使得真实渠道看起来效果不佳:

  • 直接流量——一个杂物抽屉。包括书签和直接输入 URL,但也包括被剥离的引荐来源、应用到网络跳转、暗社交以及你的追踪丢失的任何触点。大的直接流量份额本质上是测量问题,而非渠道问题。
  • 品牌搜索——那些在其他地方发现你然后谷歌搜索你名字的人。末次接触将功劳分配给付费 / 自然品牌搜索;真正驱动转化的是让他们搜索的原因。将品牌搜索与非品牌搜索分开,否则你将会削减漏斗顶部的预算。
  • 暗社交——不携带引荐来源的分享:私信、Slack/Discord、播客、新闻通讯、截图。在追踪系统中结构上不可见;自报告是唯一能看到它的方法(第 4 节)。
  • AI 流量——助手和 AI 搜索越来越多地影响买家,然后通过品牌搜索或直接流量发送他们,因此 AI 触点分析是不可见的。指出这一点,并将更深入的工作交给 AI 搜索 (AI-SEO)。

主线:当“直接流量”和“品牌搜索”占主导时,你的漏斗顶部正在起作用,但你的归因系统隐藏了它。 明确说出这一点——这是营销中常见且最严重的误读。

7. 业务类型分支

默认设置差异很大。以下是摘要;完整指南参见 references/by-business-type.md。

  • B2B SaaS(长周期、销售辅助): 旅程跨越数周到数月,涉及多人,因此单一触点模型具有极大误导性。以 CRM 作为可靠来源,并排使用首次接触 + 位置型,在演示 / 注册时大力依靠自报告,并将管道 / 收入归因(→ 收入运营)视为真实记分板。线下触点(活动、销售对话)使 MTA 最弱,自报告最强。
  • 电子商务 / DTC(短周期、自助服务): 快速旅程、高流量、支出集中在付费社交 + 搜索。以平台 ROAS 为准但保持怀疑(iOS/CAPI 膨胀),一旦支出达到一定规模就使用 MMM 验证,并针对最大渠道进行增量性 / 地理对照测试,同时使用购买后调查捕获像素遗漏的内容。对于快速周转的 SKU,末次接触是可辩护的;MMM + 增量性测试是分配实际预算的方式。

支柱 B — 自建归因(第一方)

当用户控制网站/应用并希望自己实施归因时使用——尤其是当转化发生在他们不拥有的域名上时(例如 SavvyCal/Calendly/Cal.com 的预订、Stripe Checkout 页面)。本支柱基于真实的生产构建;包含代码模式的完整手册参见 references/first-party-tracking.md。要点如下:

身份图谱

第一方归因的核心思想:将匿名浏览行为与最终的转化关联起来。

  1. 访客匿名到达;你的分析工具分配一个匿名的 distinct_id 并在其事件上标记首次接触属性($initial_referrer、$initial_utm_*)。
  2. 在转化点(注册、预订、购买),你使用一个稳定的 ID(电子邮件或用户 UUID)调用 identify()。这将匿名历史合并到一个已知人物中——首次接触现在能够一直存活到转化完成。
  3. 每个转化事件现在都可以按首次接触渠道进行细分。这就是全部要点。

填补 identify() 的缺口

最常见的第一方归因失败:从未调用 identify(),因此转化从未与浏览历史关联,每个客户看起来都像是凭空出现的。(此框架改编自 Tessa Kriesel 的 PostHog 方法。)解决方法是在每个真实转化点调用 identify。先审计——许多 SaaS 应用已经在注册时进行了 identify;不要重建已经有效的东西。找到那些特定未实施 identify 的转化点,并仅填补这些缺口。

在第三方域名上拼接转化

唯一需要真正机制的情况:转化发生在...

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions

ads

When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions

ai-seo

When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions

analytics

When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions

aso

When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions

churn-prevention

When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions

cold-email

Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions

co-marketing

When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use when the user says

community-marketing

Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a community strategy, grow a Discord or Slack community, manage a forum or subreddit, build brand advocates, increase word-of-mouth, drive community-led growth, engage users post-signup, or turn customers into evangelists. Trigger phrases: \

competitor-profiling

When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions

competitors

When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions

content-strategy

When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions

copy-editing

When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the user mentions

copywriting

When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says

coreyhaines31/ab-test-setup

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.

coreyhaines31/analytics-tracking

When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup.

coreyhaines31/aso-audit

When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO audit,' 'app store optimization,' 'optimize my app listing,' 'improve app visibility,' 'app store ranking,' 'audit my listing,' 'why aren't people downloading my app,' 'improve my app conversion,' 'keyword optimization for app,' or 'compare my app to competitors.' Use when the user shares an App Store or Google Play URL and wants to improve it.

coreyhaines31/competitor-alternatives

When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement.

coreyhaines31/email-sequence

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding-cro.

coreyhaines31/form-cro

When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," "contact form," "nobody fills out our form," "form abandonment," "too many fields," "demo request form," or "lead form isn't converting." Use this for any non-signup form that captures information. For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.

相关技能