用途 Form Attribution 是一个轻量、零依赖的脚本,用于在网站上自动捕获营销归因数据,并将其以隐藏字段形式注入表单,从而在表单提交时一并收集来源信息。
主要能力
- 自动捕获 UTM 参数,并存入 sessionStorage。
- 向页面上的所有表单注入隐藏字段。
- 默认捕获的 URL 参数包括:utm_source、utm_medium、utm_campaign、utm_term、utm_content、utm_id、ref。
- 自动记录元数据:landing_page、current_page、referrer_url、first_touch_timestamp。
- 可通过 data-click-ids="true" 捕获广告平台点击 ID:gclid(Google)、fbclid(Meta)、msclkid(Microsoft)、ttclid(TikTok)、li_fat_id(LinkedIn)、twclid(Twitter/X)。
使用方式 在 </body> 标签前添加: <script src="https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js" defer></script>
该脚本会自动捕获 UTM 参数、将其存储在 sessionStorage 中,并向所有表单注入隐藏字段。也可通过脚本标签上的 data 属性进行配置。
配置选项
- data-storage:默认 sessionStorage,可选 sessionStorage、localStorage 或 cookie。
- data-field-prefix:隐藏字段名前缀,默认空字符串(例如 attr_)。
- data-extra-params:要捕获的额外 URL 参数,逗号分隔,默认空。
- data-exclude-forms:要排除的表单的 CSS 选择器,默认空。
- data-click-ids:是否捕获广告平台点击 ID,默认 false。
- data-debug:是否启用调试面板覆盖层,默认 false。
- data-privacy:是否遵守 GPC/DNT 隐私信号,默认 true。
- data-storage-key:自定义存储键名,默认 form_attribution_data。
当 data-storage="cookie" 时的 Cookie 专用选项:
- data-cookie-domain:Cookie 域,默认空(例如 .example.com)。
- data-cookie-path:Cookie 路径,默认 /。
- data-cookie-expires:过期天数,默认 30。
- data-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。
- 关于兼容性、隐私、性能和定制化的常见问题,见 references/faq.md。
资源链接
- CDN:https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js
- 文档:https://form-attribution.flashbrew.digital/docs
- GitHub:https://github.com/Flash-Brew-Digital/form-attribution
限制 资料未提供该库的浏览器兼容范围、性能基准、包体积数值,以及除上述平台外的具体实现步骤;相关资料位于 references/platforms.md 与 references/faq.md,但未在提供内容中展开。