用途
Form Attribution 是一个轻量级、零依赖的脚本,用于自动捕获营销归因数据并将其注入表单。它的目标是帮助网站在用户提交表单时,自动携带营销来源信息,从而便于后续分析或 CRM 记录。
主要能力
- 自动捕获 UTM 参数(如 utm_source、utm_medium、utm_campaign、utm_term、utm_content、utm_id、ref)
- 自动捕获元数据:landing_page、current_page、referrer_url、first_touch_timestamp
- 可选捕获广告平台点击 ID:gclid(Google)、fbclid(Meta)、msclkid(Microsoft)、ttclid(TikTok)、li_fat_id(LinkedIn)、twclid(Twitter/X),需设置 data-click-ids="true"
- 将捕获的数据作为隐藏字段注入到页面所有表单中
- 支持三种存储方式:sessionStorage(默认)、localStorage、cookie
- 支持跨子域跟踪(cookie 模式)
- 支持字段前缀、额外参数、排除表单等配置
- 提供调试面板覆盖层(data-debug="true")
- 默认尊重 GPC 和 DNT 隐私信号
使用方式
在 </body> 标签前添加 script 标签引入 CDN 脚本:
<script src="https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js" defer></script>
脚本会自动捕获 UTM 参数、存入 sessionStorage,并向所有表单注入隐藏字段。
配置选项
通过 script 标签上的 data 属性进行配置:
data-storage:默认 sessionStorage,可选 sessionStorage、localStorage 或 cookiedata-field-prefix:隐藏字段名前缀,例如 attr_data-extra-params:额外捕获的 URL 参数,逗号分隔data-exclude-forms:要排除的表单的 CSS 选择器data-click-ids:是否捕获广告平台点击 ID,默认 falsedata-debug:是否启用调试面板覆盖层,默认 falsedata-privacy:是否尊重 GPC/DNT 隐私信号,默认 truedata-storage-key:自定义存储键名,默认 form_attribution_data
cookie 特定选项(当 data-storage="cookie" 时):
data-cookie-domain:cookie 域,例如 .example.comdata-cookie-path:cookie 路径,默认 /data-cookie-expires:过期天数,默认 30data-cookie-samesite:lax、strict 或 none,默认 lax
常见配置示例
带广告点击 ID 跟踪:
<script src="https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js"
data-click-ids="true" defer></script>
跨子域跟踪(cookie):
<script src="https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js"
data-storage="cookie"
data-cookie-domain=".example.com"
data-cookie-expires="90"
data-click-ids="true" defer></script>
CRM 字段前缀:
<script src="https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js"
data-field-prefix="lead_"
data-click-ids="true" defer></script>
排除表单(例如搜索、登录):
<script src="https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js"
data-exclude-forms=".no-track, #login-form, [data-no-attribution]" defer></script>
JavaScript API
该库暴露全局 FormAttribution 对象:
FormAttribution.getData():获取所有捕获的数据FormAttribution.getParam('utm_source'):获取特定参数FormAttribution.getForms():获取被追踪的表单FormAttribution.clear():清除存储数据FormAttribution.refresh():重新注入到表单
隐私
默认尊重 Global Privacy Control (GPC) 和 Do Not Track (DNT)。当检测到这些信号时,不会捕获任何数据。可通过 data-privacy="false" 覆盖。
适用场景
- 需要在表单提交时附带营销归因数据的网站
- 使用 Webflow、HubSpot、WordPress、Marketo 等平台(具体实现模式见 references/platforms.md)
- 需要跨子域跟踪营销来源的场景
限制
- 资料中没有提供关于兼容性、性能、定价、价格等详细信息,这些内容暂未提供。
- FAQ 内容参见 references/faq.md,但具体内容未提供。