文档
如何启用插件?
购买 Gravity Forms 的推荐来源跟踪插件后,将其安装到您的 WordPress 网站上。.
步骤 1: 安装
登录您的 WordPress 网站,然后导航至“插件”→“添加插件”→“上传插件”→“安装 zip 文件并激活它”。.
第二步: 注册插件
在左侧导航栏中,转到“表单”→“设置”→“推荐跟踪”。.
输入您的许可证密钥并激活。.
步骤 3: 启用该功能
激活许可证后,会出现“常规”选项卡。点击它,勾选。 默认启用 (“默认启用所有表单的引荐来源跟踪”),然后点击 保存更改.
如果取消勾选该复选框,则所有表单都会出现跟踪错误。您可以改为在“表单设置”→“表单选项”中逐个启用它。.
就是这样!启用“默认启用”后,所有现有表单和您创建的任何新表单都会激活引荐来源跟踪功能。.
功能详情
它检测到的来源
我们会获取来源网址(如有),并将其存储在条目中。对于常用平台,我们还会添加易于理解的标签,以便用户轻松识别来源。.
只有当访问带有平台自身的广告点击 ID(例如 gclid、msclkid、li_fat_id、ttclid、oppref 等)时,来源才会被标记为“广告”。如果访问的来源是已知的平台,但没有广告点击 ID,则会被标记为“自然搜索”。Facebook 和 Instagram 是个例外:Meta 会在每次点击中添加 fbclid,因此当 fbclid 和任何 UTM 参数一起出现时,这些访问会被标记为“广告”。.
以下是检测到后会被标记的来源列表:
- 谷歌: Google Ads、Google 自然搜索。Gemini 流量标签
utm_source=gemini被标记为 Google Organic;没有单独的 Gemini 标签。. - 微软/必应: 必应广告,必应自然搜索
- Facebook: Facebook广告,Facebook自然搜索
- Instagram: Instagram广告,Instagram自然流量
- LinkedIn: LinkedIn广告,LinkedIn自然搜索
- X(推特): X 有机
- Reddit: Reddit广告,Reddit自然流量
- TikTok: TikTok广告,TikTok自然流量
- Pinterest: Pinterest 广告,Pinterest 自然流量
- Snapchat: Snapchat广告,Snapchat自然流量
- YouTube: YouTube 自然搜索。指 YouTube 广告点击带来的流量。
gclid除非网址也添加了标签,否则会被记录为 Google Ads。utm_source=youtube, 它会记录 YouTube 广告。. - 其他搜索引擎: 雅虎、DuckDuckGo、Yandex
- 人工智能助手/LLM: ChatGPT Ads、ChatGPT Organic、Perplexity、Copilot、Claude、Grok、DeepSeek
- 电子邮件平台(营销活动跟踪): Mailchimp、Constant Contact、Pardot(已标注)
Salesforce),HubSpot - 直接的 和 未知 在适当的时候使用。.
- 风俗 可以在“自定义来源”下定义合作伙伴、联盟和广告系列流量的来源。.
它捕获的UTM参数
utm_sourceutm_mediumutm_campaignutm_termutm_contentutm_id
捕获的点击 ID
我们会将下面的每个点击 ID 捕获到“点击 ID”字段中,除非该行另有说明,否则每个点击 ID 都会将访问归因于其平台。.
| 平台 | 已捕获的点击 ID |
|---|---|
| 谷歌广告 | gclid, gbraid, wbraid |
| 谷歌(其他) | campaignid, gad_campaignid, gad_source这些数据会被捕获并归因于谷歌,但它们本身并不会将访问标记为广告。只有在用户真正点击谷歌广告时,它们才会出现。 gclid, 确实如此。. |
| 微软广告(必应) | msclkid |
| Meta(Facebook / Instagram) | fbclid |
| LinkedIn广告 | li_fat_id |
| Reddit广告 | rdt_cid, rd_ad |
| TikTok广告 | ttclid |
| Pinterest广告 | pin_cid |
| Snapchat广告 | snap_cid |
| ChatGPT广告 | oppref |
| Mailchimp | mc_cid, mc_eid |
| Constant Contact | cc_cid, cc_eid, cc_campaignid |
| Salesforce Pardot | pi_cid, pi_eid, pi_uid, pi_oid, pi_opt_in |
| HubSpot | _hsenc, _hssc, _hsmi, _hstc, _hsml |
| DoubleClick / DV360 | dclid已将点击 ID 捕获到字段中,但它未映射到 DoubleClick 来源标签。除非有其他信息标识,否则此次访问将被识别为“未知广告”。. |
自定义来源
内置的来源检测功能已经涵盖了主流搜索引擎、社交平台、AI 助手和电子邮件营销工具。自定义来源功能允许您在此基础上添加自定义标签规则。您可以将这些规则用于合作伙伴网站、联盟推荐、命名推广活动、品牌短链接、员工链接以及任何其他带有默认“推荐”标签或原始标签的内容。 utm_source 这个值不够具体。.

在下方查找它们 表单 → 设置 → 推荐人跟踪 在 自定义来源 章节。每一行代表一条规则。.
规则的评估方式
每次访问时,插件都会检查您的自定义来源。 前 内置检测功能。第一个匹配的规则生效:插件会将访问者的来源设置为该规则对应的来源。 标签 并跳过该次访问的内置检测。如果没有匹配项,则内置检测将照常运行(Google、Facebook、Direct 等)。.
田野,一个接一个
- 标签 – 保存为访问来源的文本(例如).
Partner: Acme,Email: Newsletter,Campaign: Spring Sale)这正是条目中显示的内容,在……{pb_ref_source}在“报告”选项卡和任何 CRM 映射中合并标签。选择一个在繁忙的条目屏幕上容易识别的标签。. - 比赛场 ——在哪里可以找到:
- 引荐来源主机 – 浏览器引用页中的域名(例如,匹配项)
acme.com当有人从https://www.acme.com/blog/post). - UTM 来源/媒介/广告系列/关键词/内容 – 相应的
?utm_*=着陆页网址上的参数。.
- 引荐来源主机 – 浏览器引用页中的域名(例如,匹配项)
- 匹配类型 – 需要注意的事项:
- 包含 – 字段值包含匹配值中的任何位置。不区分大小写。非常适合捕捉类似这样的变体。
acme.com,blog.acme.com,partner.acme.com一条规则。. - 等于 – 该字段值与您的匹配值完全一致(不区分大小写)。匹配要求更严格,因此当您需要精确匹配时请使用它,例如
utm_source正好等于newsletter.
- 包含 – 字段值包含匹配值中的任何位置。不区分大小写。非常适合捕捉类似这样的变体。
- 匹配值 ——要查找的文本。不带引号,不带星号,就是文本本身。.
- 优先事项 ——控制订单的数字。. 先跑更高段位, 因此,当规则重叠时,优先级更高的规则生效。默认值为
10; 向上移动20或50对于必须优于默认值的规则,请降至5作为包罗万象的类别。.
示例
按推荐人标记合作伙伴网站
| 标签 | 比赛场 | 匹配类型 | 匹配值 | 优先事项 |
|---|---|---|---|---|
Partner: Acme | 引荐来源主机 | 包含 | acme.com | 20 |
任何从任何子域访问的人 acme.com 被标记为 Partner: Acme 而不是通用的 Referral.
标记已标记的新闻通讯活动
| 标签 | 比赛场 | 匹配类型 | 匹配值 | 优先事项 |
|---|---|---|---|---|
Email: Newsletter | UTM 源 | 等于 | newsletter | 20 |
当您可以自行控制 URL 时(例如,每周电子邮件发送中的链接),请使用此功能。 ?utm_source=newsletter).
使用 UTM 活动名称标记付费活动。
| 标签 | 比赛场 | 匹配类型 | 匹配值 | 优先事项 |
|---|---|---|---|---|
Campaign: Spring Sale | UTM 活动 | 包含 | spring-sale | 15 |
捕捉 ?utm_campaign=spring-sale-2026, ?utm_campaign=spring-sale-google-ads, 以及一条规则中的类似变体。.
针对特定联盟营销商,覆盖 Google 内置的检测机制
| 标签 | 比赛场 | 匹配类型 | 匹配值 | 优先事项 |
|---|---|---|---|---|
Affiliate: Acme via Google Ads | UTM 源 | 等于 | acme-gads | 50 |
优先级很高,确保这条规则优先于内置规则。 utm_source=google → Google Ads 每当收到已标记的源时,就进行标记。.
“使用自定义来源”添加有机/广告标签”。
内置源始终显示为 Google Ads, Facebook Organic, 等等。 添加自然搜索/广告标签(自定义来源) 复选框(也可在“表单”→“设置”→“推荐跟踪”下找到)控制自定义标签是否添加相同的后缀。.
- 已检查 (默认)——一条标记为“自定义规则”的规则
Partner: Acme变成Partner: Acme Organic关于推荐流量和Partner: Acme Ads如果访问带有付费点击 ID,例如 gclid。. - 未检查 – 您的自定义标签将完全按照您输入的内容呈现,插件不会添加任何后缀。.
根据你的报告需求选择合适的选项。大多数团队需要后缀来比较付费合作伙伴流量和自然合作伙伴流量,但如果你使用标签本身来承载完整的标识,则应将其关闭。.
以编程方式添加规则
如果您正在构建插件或希望将规则置于版本控制之下,那么 pb_gforms_referral_tracking_custom_sources 过滤器接受与管理界面相同的形状,并与之合并。插件会将来自两个位置的规则按优先级排序,然后再由前端进行评估。.
镜像场
我们的跟踪字段会在表单渲染时动态添加到表单中,它们不属于表单的已保存字段列表。这样可以保持表单的简洁,但某些 CRM、电子邮件营销和 Webhook 插件仅使用已保存的字段构建字段映射下拉菜单,因此它们无法“识别”我们的动态字段。.
镜像字段可以解决这个问题。在“表单”→“[您的表单]”→“设置”→“表单选项”下,点击 添加镜像场 该插件会在表单中添加一组编辑器可见的隐藏字段。原始跟踪字段仍然是数据来源;插件会在创建条目时将其捕获的值复制到镜像字段中,以便您的插件可以从其常规字段下拉菜单中映射这些字段。镜像字段块仅在表单自身的引荐来源跟踪开关启用时才会显示。.
如果您的插件支持“自定义值”映射选项,则完全不需要镜像字段。只需直接映射我们的合并标签即可(例如)。 {pb_ref_source}, {pb_ref_utm_source}, {pb_ref_clid}).
管理镜像字段:
- 添加镜像场 – 创建编辑器可见的集合。.
- 添加 N 个缺失的镜像场 当表单包含部分而非全部当前镜像字段时,就会出现此提示,并显示字段数量。这种情况会在用户手动删除字段时发生,也会在启用“最后点击归因”功能后发生,因为该功能会添加一组新的定义。插件会保留已保存的字段 ID,因此已保存的映射仍然有效。.
- 删除 2 个重复的镜像字段 – 仅当存在重复项时显示,并显示重复项的数量。保留每个重复项的首次出现记录。.
- 移除镜像场 – 删除该数据集(并进行确认)。已保存到先前条目中的值仍保留在数据库中,但插件将无法再通过字段 ID 查找这些值。.
启用末次触摸归因后,镜像字段也可以包含末次触摸集。已经设置了首次触摸集的表单不会自动获取末次触摸集:请使用 添加 N 个缺失的镜像场 每人加满。.
报告
在“查找报告”下 表单 → 设置 → 推荐人跟踪 → 报告. 此标签页以可视化方式呈现您选择的日期范围内所有已跟踪的条目,并按来源、UTM 参数和引荐来源网址进行细分。插件激活前提交的条目、跟踪功能关闭的表单条目以及被删除或标记为垃圾邮件的条目均不计入统计,因此这些总数可能低于您的 Gravity Forms 条目总数。日期范围涵盖整天,并于最后一个完整日期结束。 世界标准时间 为了确保时间段的比较具有可比性,截止时间是午夜。根据您网站所在时区与 UTC 的时差,这个截止时间可能会落在您当地时间的中途。.

图表概览
- 来源细分 – 环形图显示了每个标记来源(Google 自然搜索、Facebook 广告、您的自定义来源、直接访问等)的提交份额。.
- 随时间推移的条目 – 按时间段划分的总条目数的折线图。将鼠标悬停在某个点上,工具提示会按来源细分该总数。较长的时间段(90 天和 365 天)按月划分,以保持坐标轴清晰易读;在 30 天的时间段内,图表每隔 7 个日期标签绘制一个,以避免过于拥挤。.
- 顶级 UTM 来源/媒介/广告系列 – 每个 UTM 维度中条目最多的值的水平条形图。.
- 顶级推荐人 – 水平柱状图,显示带来最多提交内容的引荐域名。该插件会将直接流量与引荐来源网址一起存储。
Direct, 因此,它在这里显示为一个独立的栏目,而不是一个域名。.
过滤器
- 形式 – 可限定为单个表单,或保留“所有表单”以查看全站内容。.
- 日期范围 – 预设窗口(最近 7 天、30 天、90 天和 365 天)。.
- 与上期相比 – 显示该期间总计及其相对于相应前一时间段的百分比变化(例如,最近 7 天与前 7 天相比,最近 30 天与前 30 天相比,等等),并在时间图上以虚线叠加显示前一期间。UTM 和引荐来源柱状图不进行比较。.
- 隐藏未注明出处 – 隐藏“未设置”和“未知”存储桶,以便您可以专注于已归属的来源。“直接”存储桶保留。.
该插件会记住每个用户的日期范围、比较周期和隐藏未归因选项,因此您下次访问时无需再次设置。.
性能和缓存
该插件会根据 Gravity Forms 表单条目计算报告并缓存结果,从而加快重复加载速度。新条目会自动使缓存失效,并设置 60 秒的延迟来防止高流量表单导致缓存过载。开发者可以通过以下方式调整延迟时间(或完全禁用延迟): pb_gforms_rt_invalidate_debounce 筛选。参见下方的“钩子”。.
电子邮件摘要
如果您更希望接收归因摘要而不是打开控制面板,请在“设置”下启用电子邮件摘要。 表单 → 设置 → 推荐人跟踪 → 电子邮件报告. 您选择的日期和时间将以您网站的时区为准,但报告的周期本身以整个时区为单位进行测量。 世界标准时间 覆盖天数,截止到邮件发送前最后一个完整的UTC午夜。对于远离UTC的地区,覆盖范围会与您当地的日期有所偏差。.

节奏和时机
- 每周 – 选择星期几(星期日到星期六)和电子邮件发送时间。.
- 月度 – 选择当月的日期(上限为 28 日,以便即使在二月份也能收到电子邮件)和时间。.
- 发送计划遵循您的 网站时区 (WordPress → 设置 → 常规),设置页面会在小时选择器旁边显示当前时间。报告窗口本身仍然以 UTC 天数计算。.
收件人
每行一个电子邮件地址。如果留空,则摘要将回退到默认摘要。 网站管理员邮箱 在发送时进行。这有助于解决管理员邮箱地址可能稍后更改,而您希望摘要自动随之更改的情况。.
这 现在给我发送一封测试邮件 按钮使用您的设备提供相同的摘要正文。 已保存 设置。与定时发送不同的地方有两点:主题会添加前缀。 [TEST], 并且它忽略了 跳过空摘要, 因此,即使在平静期进行测试,实际摘要本应保持静默,测试结果仍然会显示出来。按钮会在有未保存的更改时自动禁用;请先保存,然后再进行测试。.
内容选项
- 跳过空摘要 如果该期间的摘要总数为零,则完全不要发送电子邮件。对于数据量较少的表单,这可以避免在数据量较少的几周发送空白摘要。 隐藏未注明出处 此外,该总数忽略了“未设置”和“未知”条目,因此仅包含未归属条目的期间计为空并被跳过。.
- 与上期相比 – 在电子邮件顶部显示与前一个同期相比的百分比变化(上周与前一周相比,上个月与前一个月相比,等等)。.
- 隐藏未注明出处 – 从电子邮件表中省略“未设置”和“未知”值,以便将重点放在已归属的来源上。.
合并标签
{pb_ref_source} – 存储在隐藏的“来源”字段中的值(当无法对访问进行分类时,默认为“未知”)。.
{pb_ref_params} – 捕获的引用参数的完整字符串(UTM 和其他查询变量我们一起保存)。.
{pb_ref_referrer} – 本次访问的引荐来源网址。这是实际的引荐来源网址,而非原始浏览器值。当点击 ID 或已识别的 URL 被识别时,就会产生引荐来源网址。 utm_source 识别平台后,插件会存储规范的平台 URL。因此, gclid 访问记录 https://www.google.com/ 即使点击来自电子邮件,同域且无引荐来源的访问也会被记录。 Direct. 没有合并标签,就不会暴露未经修改的浏览器引用地址。.
{pb_ref_utm_id} – utm_id.
{pb_ref_utm_source} – utm_source.
{pb_ref_utm_medium} – utm_medium.
{pb_ref_utm_campaign} – utm_campaign.
{pb_ref_utm_term} – utm_term.
{pb_ref_utm_content} – utm_content.
{pb_ref_clid} – 首次检测到的访问点击 ID(gclid、fbclid、msclkid 和其他平台点击 ID)。.
{pb_ref_custom_source} ——您自己为此次访问撰写的标签 pb_gforms_referral_tracking_source_label 过滤器(参见“钩子”)。该标签仅在过滤器附加了回调函数时才存在。插件会将检测到的源单独存储,并且永远不会对其进行更改。.
最后一步合并标签
启用末次点击归因后,该插件会添加一组并行组件:
{pb_ref_last_source}{pb_ref_last_referrer}{pb_ref_last_params}{pb_ref_last_clid}{pb_ref_last_utm_source}{pb_ref_last_utm_medium}{pb_ref_last_utm_campaign}{pb_ref_last_utm_term}{pb_ref_last_utm_content}{pb_ref_last_utm_id}{pb_ref_last_custom_source}
每个都与其首次接触的对应物相同,但存储提交前的最新来源。. {pb_ref_last_custom_source} 还需要 pb_gforms_referral_tracking_source_label 滤镜,与它的初次触控版本相同。.
将数据发送到 Google Analytics
引荐来源跟踪功能不会主动联系 Google。它收集的所有信息都保留在您的 Gravity Forms 表单中。如果您启用 GA4 设置,则由您自己的 Google 代码发送事件。.
自 1.6.0 版本起,您可以选择加入 GA4 事件。在“表单”→“设置”→“引荐来源跟踪”→“常规”中启用 GA4 / 标签管理器。确认后,插件会发送一个名为“GA4”的自定义事件。 pb_referral_submit (在同一设置中重命名)包含来源、引荐来源、点击 ID 和 UTM 参数,以及启用最后触摸事件时的最后触摸值。验证失败则不会发送。重定向和页面感谢确认需要 1.7.1 版本。.
请在 GA4 实时监控或调试视图中查看事件。您无需使用代码管理器触发器。您的 Google 代码会发送事件;插件不会联系 Google。.
可选:如果您已通过感谢页面 URL 上的营销活动参数进行转化,还可以将合并标签传递到重定向确认查询字符串(如下所示)。这与自定义事件是分开的。.
这项活动承载着什么?
参数键与合并标签名称匹配。空值将完全从有效负载中省略,并且事件在每个页面浏览周期内最多触发一次。.
| 范围 | 价值 |
|---|---|
pb_ref_source | 标注来源,例如. Google Ads |
pb_ref_referrer | 有效引荐来源网址 |
pb_ref_clid | 首次检测到的点击 ID |
pb_ref_params | 完整捕获的参数字符串 |
pb_ref_utm_source, _medium, _campaign, _term, _content, _id | 六个UTM值 |
pb_ref_last_* | 仅当启用末次触摸归因时,才会显示并行末次触摸集。 |
pb_ref_form_id | Gravity Forms 表单 ID。仅在 AJAX 确认时出现,此时 ID 已知。 |
可选:在感谢 URL 中传递值
- 打开表单的确认信息 表单 → [您的表单] → 设置 → 确认, 然后编辑(或添加) 重定向 确认。.
- 在 重定向 URL 在此字段中,输入您的感谢页面 URL,后跟由跟踪合并标签构建的查询字符串:
https://yoursite.com/thank-you/?gclid={pb_ref_clid}&utm_source={pb_ref_utm_source}&utm_medium={pb_ref_utm_medium}&utm_campaign={pb_ref_utm_campaign}&utm_term={pb_ref_utm_term}&utm_content={pb_ref_utm_content}Gravity Forms 会在提交时自动填充并对每个值进行 URL 编码,因此通过 Google Ads 点击进入网站的访客会看到类似这样的 URL:
https://yoursite.com/thank-you/?gclid=EAIaIQ...&utm_source=google&utm_medium=cpc&utm_campaign=spring-sale您在感谢页面上设置的 GA4 或 Google 代码管理器会以与处理任何广告系列网址相同的方式读取这些参数,并触发转化或潜在客户事件,同时附加捕获的来源、广告系列和点击 ID。对于特定访问未捕获的值,则会显示为空。.
您可以在此处使用任何跟踪合并标签。请参阅 合并标签 完整列表请见此处。(如果您愿意, 通过查询字符串传递字段数据 同一重定向确认选项接受这些相同的合并标签。)
为什么使用合并标签而不是您自己的隐藏字段
如果您已经通过自定义隐藏字段将广告系列数据传递到感谢页面,请将查询字符串指向我们的合并代码。这样,条目中保存的值和发送到 GA4 的值都来自同一数据源,因此两者不会出现偏差。条目和 GA4 始终显示相同的广告系列。此外,这也意味着您需要维护的字段集减少了一组。.
关于点击 ID 的说明
{pb_ref_clid} 保存访问过程中检测到的第一个点击 ID,无论该点击来自哪个平台: gclid 对谷歌来说,也对…… msclkid (微软),, fbclid (元)等等。如果您将其专门映射到一个 gclid= 对于 Google Ads 的参数,非 Google 访问会将点击 ID 放置在该位置。如果您只想包含 Google Ads 访问的点击 ID,请在确认信息中添加条件逻辑。 gclid= 仅当……时才会发送参数 来源 是 谷歌广告.
验证其有效性
您可以通过以下四个步骤确认整个链条:
- 向任何着陆页 URL 添加测试参数(例如)
?gclid=TEST123&utm_source=google&utm_medium=cpc然后提交表格。. - 在感谢页面上,检查地址栏:您的值应该出现在 URL 中。.
- 打开浏览器的开发者工具,然后转到…… 网络 标签页和筛选器
collect. 向谷歌提出的请求应包含您的信息。gclid和utm价值观。. - 确认GA4已收到 调试视图 或 即时的 报告。.
请在私密窗口或未登录窗口中进行测试。当您以管理员身份登录时,该插件会故意以仅会话模式运行,写入永不过期的 cookie,因此无法从管理员会话中重现归因窗口。.
这四个步骤检查了可选的查询字符串方法。对于内置的自定义事件,提交表单后,在确认或感谢页面上打开“开发者工具”→“网络”,然后筛选。 g/collect, 并寻找 en=pb_referral_submit (或您的活动名称)。或者使用 GA4 DebugView。如果活动出现在“网络”标签页中,但不在 GA4 中,则说明您的 Google 代码存在缺失。如果活动不在“网络”标签页中,则说明插件未触发。.
将事件发送到 GA4
自 1.6.0 版本起,您可以将 Gravity Forms 表单中已有的数据源作为自定义事件发送到 Google Analytics 4 (GA4)。此功能默认关闭。发送过程由您自己的 Google 代码完成——插件本身不会联系 Google。您可以在 GA4 实时视图或调试视图中查看该事件。您无需使用代码管理器触发器。.
前往 表单 → 设置 → 推荐人跟踪 → 常规. 。 打钩 在表单确认时,将捕获的参数作为自定义事件发送到 GA4。. 活动名称保留为 pb_referral_submit 除非你有理由更改它,否则请点击“保存更改”。.

翻译
此插件已做好翻译准备,并包含以下语言的预置翻译:
- 阿拉伯语(
ar) - 孟加拉语(
bn_BD) - 菲律宾语(
fil) - 德国(
de_DE) - 西班牙语 (
es_ES) - 西班牙语 (
es_MX) - 法语 (
fr_FR) - 印地语(
hi_IN) - 印尼语(
id_ID) - 意大利语(
it_IT) - 日本人 (
ja) - 葡萄牙语(
pt_BR) - 俄罗斯(
ru_RU) - 乌尔都语(
ur) - 简体中文(
zh_CN) - 中文传统(
zh_HK)
默认语言:英语(en_US)
如果您的语言未在下方列出 翻译 即使按照上面的说明操作,您仍然可以自行翻译插件。它已做好翻译准备。使用免费的翻译工具。 Loco Translate 插件 创建网站语言/区域设置的翻译。首次使用 Loco Translate?请点击此处。 适合初学者的教程.
常见问题解答
我可以导出数据吗?
是的。跟踪值会保存在每个 Gravity Forms 表单条目中,因此它们会显示在条目导出文件中。.
这个插件具体会捕获哪些内容?
我们会采集常用的属性字段,并将其存储在 Gravity Forms 表单条目中。这包括 UTM参数 (来源、媒介、活动、术语、内容), 点击 ID (gclid、msclkid、gbraid/wbraid 等) 原始引用网址, 以及相关的着陆页内容,以便您可以查看每个潜在客户的来源。.
我可以添加自定义数据源吗?
是的。请在下方添加规则。 表单 → 设置 → 推荐人跟踪 → 自定义来源 按名称标记合作伙伴网站、联盟流量、品牌推广活动和类似访问。每条规则都匹配引荐来源网址或 UTM 参数,并应用您选择的标签。请参阅 自定义来源 本节包含分领域指南和实例说明。.
我的CRM/邮件/Webhook插件在其映射下拉菜单中看不到跟踪字段。我该怎么办?
我们的跟踪字段会在渲染时动态添加到您的表单中,而不是保存到表单的字段列表中,因此仅使用已保存字段构建下拉列表的插件无法识别它们。您有两种选择。如果您的插件具有“自定义值”映射,请直接映射我们的合并标签({pb_ref_source}, {pb_ref_utm_source}, {pb_ref_clid}, 等等)。如果它仅支持字段下拉列表,请打开“表单设置”→“表单选项”→“镜像字段”,然后单击。 添加镜像场. 这会添加编辑可见的隐藏字段,插件会自动填充这些字段。有关完整操作步骤,请参阅“镜像字段”部分。.
推荐数据保存在哪里?
数据存储在您的 WordPress 数据库和 Gravity Forms 表单条目中。该插件不会自行将数据发送到任何地方。如果您希望将捕获的值导入 GA4,请启用 GA4 设置。该插件仍然是数据源;数据发送由您自己的 Google 代码完成。.
这是首次接触归因还是末次接触归因?
两者皆可。默认情况下,它使用首次点击归因,存储首次将访客引导至您网站的原始引荐来源和广告系列参数(在归因窗口期内)。有一个复选框可以忽略直接回访,这样末次点击归因就会保留之前的广告或引荐来源。回访点击 ID 仅存储在点击 ID(末次点击)中。这为您提供了一组并行的…… {pb_ref_last_*} 合并标签、条目列表列和 CSV 导出列。“报告”选项卡包含一个“首尾”切换按钮,可在两种视图之间切换每个图表。.
它会记住访客的归因数据多久?
归因窗口默认为 7 天,您可以在“表单”→“设置”→“引荐来源跟踪”中更改此设置。如果访客在其首次被跟踪访问的窗口期内提交表单,则该条目将保留首次访问时的原始归因值。.
它支持缓存/CDN吗?
通常情况下可以。跟踪操作在客户端运行,因此大多数缓存/CDN 配置都能正常工作。如果您使用了激进的脚本优化(例如压缩或延迟加载),请勾选此项。 保护脚本免受优化 在“表单”→“设置”→“引荐来源跟踪”→“高级”中,清除缓存。此操作会标记插件脚本,使其被跳过,并自动将其添加到 WP Rocket、LiteSpeed Cache、SG Optimizer、Autoptimize 和 Cloudflare Rocket Loader 的排除列表中。如果您使用 Breeze 或其他不在上述列表中的压缩工具,请手动排除以下两个文件,并在更新后清除它们的 CDN 缓存。.
对于任何该设置未涵盖的优化器,请手动排除这两个文件并测试提交:
/wp-content/plugins/pb-gforms-referral-tracking/assets/js/front-end.js/wp-content/plugins/pb-gforms-referral-tracking/assets/dist/js.cookie.min.js
它是否兼容支持 AJAX 的 Gravity Forms 表单?
是的。它支持 AJAX 表单和标准(非 AJAX)提交。Gravity Forms 2.9 及更高版本中的重定向和页面感谢确认功能需要 1.7.1 版本才能支持 GA4 事件。.
我可以同时跟踪多个表单吗?
是的。它适用于您所有的 Gravity Forms 表单。每次提交都会将各自的归属值保存到该条目中。.
这是否可以取代 GA4 / Google Ads 转化跟踪?
不,它是一个数据源,而不是转化像素,它不会触发任何像素或直接联系谷歌。如果您希望在 GA4 中获取归因信息,可以通过 GA4/代码管理器设置,在表单确认时,将归因信息作为自定义事件通过您自己的谷歌代码发送。.
它会收集个人数据吗?
默认情况下,它会捕获归因数据(UTM,, gclid, (,引荐来源网址)。确实如此。 不是 默认情况下会收集额外的个人身份信息 (PII)。您的表单字段和 URL 中包含的任何参数均由您的网站和营销设置控制。.
它是否符合GDPR/CCPA要求?
如果您需要在收集任何归因数据之前获得用户同意,请启用可选的同意门。它会将首次接触数据保存在浏览器中,直到访问者通过您的 Cookie 横幅(通过窗口标志、回调或事件)授予同意,然后应用该数据。.
它是否支持 WordPress 多站点网络?
太长不看
- 无限制许可: 启用一次网络模式;一个键即可管理 每一个 子站点设置 + 支持。.
- 网络激活: 所有子网站均运行推荐跟踪功能,并立即接收更新。.
- 有限套餐/无子站点许可: 该子站点的跟踪功能处于非活动状态。在激活密钥或网络模式推送密钥之前,不会捕获任何跟踪字段、合并标签或条目数据。.
- 支持服务遵循许可协议: 有效密钥覆盖范围内的站点均符合条件。.
是的,一旦每个子站点获得许可并启用后即可。. 网络激活会将插件安装到所有位置,更新也会在全网范围内进行,但子站点需要有自己激活的许可证(或通过网络模式推送的无限密钥),插件才能添加任何跟踪字段或捕获任何值。之后,在该子站点启用“默认启用”或“按表单启用跟踪”。.
如果您拥有无限许可证,则可以从主站点启用网络模式,并将该密钥一次性推送至所有子站点(实时更新进度)。这些子站点将自动继承许可证管理的设置和支持。.
设置参考
下方的一切都生活在……之下 表单 → 设置 → 推荐人跟踪, 在每个标题中指定的标签页上。.
数据与隐私
| 环境 | 默认 | 它的作用 |
|---|---|---|
| 无 Cookie 回退存储 | Off | 关闭此功能后,仅保留 cookie 中的归属信息。. Persistent 对于阻止 Cookie 的访客,系统会回退到浏览器本地存储,并丢弃所有早于归因窗口期的数据。此功能仅在 Cookie 不可用时启用,并且在启用用户同意机制后,跟踪脚本才会写入本地存储。浏览器本地存储与 Cookie 一样,都需遵守 GDPR 和 ePrivacy 的相关规定,因此请在您的隐私政策中予以涵盖。. |
| 卸载时删除数据 | Off | 关闭插件选项会在删除插件时保留所有设置。开启插件选项则会清除插件设置、表单跟踪配置、许可证数据、计划事件以及用户报告偏好设置。无论选择哪种方式,您的 Gravity Forms 表单条目及其保存的跟踪值都不会受到影响。. |
先进的
| 环境 | 默认 | 它的作用 |
|---|---|---|
| 保护脚本免受优化 | Off | 标记插件的前端脚本,以便压缩和延迟加载工具跳过它们,并将它们添加到 WP Rocket、LiteSpeed Cache、SG Optimizer、Autoptimize 和 Cloudflare Rocket Loader 的排除列表中。如果在启用缓存插件后引荐来源数据丢失,请启用此选项。. |
同意门
此处没有复选框。同意门禁是开发者选择加入的选项:设置 consentRequired 通过 pb_gforms_referral_tracking_js_config 过滤器。跟踪脚本保存首次触摸数据。 sessionStorage 直到获得同意,然后将其提升到持久存储状态。.
add_filter( 'pb_gforms_referral_tracking_js_config', function( $config ) {
$config['consentRequired'] = true;
return $config;
} );通过以下三种方式中的任意一种,即可从您的 Cookie 横幅中发出同意信号:
- 放
window.PBReferralTrackingConsent = true. - 调度事件:
window.dispatchEvent( new Event( 'pb-ref-tracking:consent-granted' ) ). - 分配一个
consentGranted获得同意后返回 true 的回调函数。.
钩子
行动
pb_gforms_referral_tracking_loaded
插件完全初始化后触发:类已加载、钩子已注册、API 已准备就绪。这是扩展 Referral Source Tracking 的附加组件或配套插件的可靠启动点。.
参数:
$plugin(插件) – 插件实例。.
add_action( 'pb_gforms_referral_tracking_loaded', function( $plugin ) {
// Safe to interact with the plugin's classes and filters here.
// Example: register your own add-on after the plugin is ready.
if ( class_exists( 'MyReferralAddon' ) ) {
new MyReferralAddon( $plugin );
}
} );过滤器
pb_gforms_referral_tracking_enabled
覆盖特定表单是否启用引荐来源跟踪。返回 true 强制启用跟踪,返回 false 强制禁用跟踪,无论表单的开关设置或全局默认值如何。.
参数:
$enabled(布尔值) – 当前是否启用跟踪功能。.$form_id(整数) 当前表单的 ID。.$form(数组|null) – 表单元数组,如果不可用则为 null。.
// Disable tracking on a specific form (e.g. an internal staff-only form).
add_filter( 'pb_gforms_referral_tracking_enabled', function( $enabled, $form_id, $form ) {
$excluded_form_ids = [ 12, 27 ];
if ( in_array( $form_id, $excluded_form_ids, true ) ) {
return false;
}
return $enabled;
}, 10, 3 );pb_gforms_referral_tracking_field_definitions
在插件将隐藏的跟踪字段定义注入表单之前,对其进行过滤。可以使用此功能添加、删除或修改任何单个跟踪字段。.
参数:
$fields(大批) – 字段定义数组的数组。.$form(大批) – 当前表单元数据。.
// Remove the Referral Parameters field from all forms.
add_filter( 'pb_gforms_referral_tracking_field_definitions', function( $fields, $form ) {
return array_filter( $fields, function( $field ) {
return ! isset( $field['cssClass'] ) || $field['cssClass'] !== 'pb-ref-tracking-ref-params';
} );
}, 10, 2 );pb_gforms_referral_tracking_form
在插件添加完所有跟踪字段后,对整个表单数组进行过滤。最终的表单对象在渲染之前可供您修改。.
参数:
$form(大批) – 已添加跟踪字段的表单数组。.$field_definitions(大批) – 所使用的字段定义。.
// Log which forms have tracking fields injected (useful for debugging).
add_filter( 'pb_gforms_referral_tracking_form', function( $form, $field_definitions ) {
error_log( 'Referral tracking fields added to form ID: ' . $form['id'] );
return $form;
}, 10, 2 );pb_gforms_referral_tracking_merge_tag_map
修改合并标签映射,该映射定义了哪些合并标签可用以及它们解析到哪些字段 ID。您可以使用此映射添加完全自定义的合并标签或重命名现有标签。.
参数:
$map(大批) – 标签的关联数组 => [ 'label' => string, 'field_id' => string ]。.$base_id(细绳) – 基本字段 ID 前缀。.$constants(常量) – 插件常量实例。.
// Rename the "Source" merge tag label as it appears in the GF dropdown.
add_filter( 'pb_gforms_referral_tracking_merge_tag_map', function( $map, $base_id, $constants ) {
if ( isset( $map['pb_ref_source'] ) ) {
$map['pb_ref_source']['label'] = 'Traffic Source';
}
return $map;
}, 10, 3 );pb_gforms_referral_tracking_value
在插件格式化原始跟踪字段值并将其用于替换通知或确认中的合并标签之前,需要对其进行过滤。您可以在此处对特定值进行清理或转换。.
参数:
$value(细绳) – 原始字段值。.$tag(细绳) – 合并标签键(例如 pb_ref_source)。.$data(大批) – 合并标签元数据(标签,field_id)。.$entry(大批) – 当前条目。.$form(大批) – 当前形式。.
// Truncate long referrer URLs in merge tag output.
add_filter( 'pb_gforms_referral_tracking_value', function( $value, $tag, $data, $entry, $form ) {
if ( $tag === 'pb_ref_referrer' && strlen( $value ) > 100 ) {
return substr( $value, 0, 100 ) . '…';
}
return $value;
}, 10, 5 );pb_gforms_referral_tracking_formatted_value
在 Gravity Forms 对其运行自己的格式化管道(转义、URL 编码等)之后,过滤完全格式化的合并标签值。.
参数:
$formatted(细绳) – 格式化的输出字符串。.$tag(细绳) – 合并标签键。.$data(大批) – 合并标签元数据。.$entry(大批) – 当前条目。.$form(大批) – 当前形式。.$url_encode(布尔值)$esc_html(布尔值)$nl2br(布尔值)$format(细绳)
// Wrap the source value in a bold tag in HTML-format notifications.
add_filter( 'pb_gforms_referral_tracking_formatted_value', function( $formatted, $tag, $data, $entry, $form, $url_encode, $esc_html, $nl2br, $format ) {
if ( $tag === 'pb_ref_source' && $format === 'html' && ! $url_encode ) {
return '<strong>' . $formatted . '</strong>';
}
return $formatted;
}, 10, 9 );pb_gforms_referral_tracking_default_value
覆盖提交时跟踪字段为空时使用的备用值。默认值为“未知”。.
参数:
$default(细绳) – 当前默认值(“未知”)。.$key(细绳) – 上下文键:source、referrer 或 front_end。.
// Use "Direct" instead of "Unknown" for the source field fallback.
add_filter( 'pb_gforms_referral_tracking_default_value', function( $default, $key ) {
if ( $key === 'source' ) {
return 'Direct';
}
return $default;
}, 10, 2 );pb_gforms_referral_tracking_js_config
在插件将前端 JavaScript 配置对象传递给跟踪脚本之前,覆盖整个前端 JavaScript 配置对象。您的回调控制 cookie 设置,源映射(utmSourceMap 和 utmReferrerMap),已知来源,以及 paidClickIds 该列表决定哪些查询参数表明是付费点击。.
参数:
$config(大批) – 完整的 JS 配置数组。.
按键及其默认值:
| 钥匙 | 默认 | 控制 |
|---|---|---|
cookieExpiry | 7 | 归因窗口期(天)。. |
cookiePrefix | pb-ref-tracking- | 每个存储的键都有前缀。. |
cookiePath | / | Cookie 路径。. |
cookieSameSite | Lax | SameSite 属性。. |
defaultValue | Unknown | 当未捕获到任何内容时,写入的值。. |
appendOrganicPaid | true | 自定义标签是否会添加 Organic/Ads 后缀。. |
paidClickIds | 10 个 ID | 查询参数可以证明这是一次付费点击,从而生成广告标签。. |
utmSourceMap / utmReferrerMap | 见下文 | 普通字符串映射来自 utm_source 将值赋给标签和规范引用 URL。. |
customSources | [] | 自定义来源规则。建议使用上方的专用筛选器。. |
sessionOnlyMode | false | 无过期时间的会话 cookie。已登录的管理员必须启用此功能。. |
fallbackStorage | none | local 启用无 cookie 回退机制。. |
consentRequired / consentGranted | false / null | 同意门。请参阅“设置”参考文档。. |
enableLastTouch | false | 还要捕捉到最后一次触球的瞬间。. |
enableDataLayerPush | false | 发出 GA4 事件。. |
dataLayerEventName | pb_referral_submit | 该事件的名称。. |
trackingFieldBaseId | '' | 注入字段的基本字段 ID。. |
debug | false | 设置为 true 可将捕获决策记录到浏览器控制台。这是查看访问标记原因的最快方法。. |
sourcePatterns 该列表故意缺少它。它的条目需要启用 JavaScript。 RegExp 对象,以及 PHP 回调返回的任何内容,在配置被 JSON 编码后都会以字符串形式到达,这会在匹配时抛出异常。要扩展引用模式,请分配给 window.PBReferralTrackingConfig 在跟踪脚本运行之前,从 JavaScript 中获取。.
// Extend cookie lifetime to 30 days and add a custom paid medium.
add_filter( 'pb_gforms_referral_tracking_js_config', function( $config ) {
// Extend the first-touch attribution window to 30 days.
$config['cookieExpiry'] = 30;
// Turn on the cookieless localStorage fallback for visitors who block cookies.
$config['fallbackStorage'] = 'local';
return $config;
} );pb_gforms_referral_tracking_custom_sources
通过编程方式注入自定义源规则,这些规则与管理界面中配置的规则并行运行。该插件会将此过滤器中的规则与已保存的界面规则合并,按优先级对合并后的规则集进行排序,并将其传递给前端。.
参数:
$sources(大批) – 空数组。返回一个包含要添加的规则数组的数组。.
每条规则必须包含:标签、匹配字段(referrer、utm_source、utm_medium、utm_campaign、utm_term、utm_content)、匹配类型(包含或等于)、匹配值,以及可选的优先级(默认为 10,数值越高运行越快)。.
通过此过滤器添加的规则也可以使用 referrer_url matchField 会匹配完整的引用 URL,包括路径和查询语句,而不仅仅是主机名。管理界面不提供此功能,因此仅在此处可用。.
// Add partner and affiliate sources without touching the admin UI.
add_filter( 'pb_gforms_referral_tracking_custom_sources', function( $sources ) {
$sources[] = [
'label' => 'Partner: Acme Corp',
'matchField' => 'referrer',
'matchType' => 'contains',
'matchValue' => 'acme.com',
'priority' => 20,
];
$sources[] = [
'label' => 'Campaign: Spring Sale',
'matchField' => 'utm_campaign',
'matchType' => 'contains',
'matchValue' => 'spring-sale',
'priority' => 10,
];
return $sources;
} );pb_gforms_referral_tracking_source_label
提交时,请在单独的“自定义来源”字段中输入您自己的标签。检测到的来源始终保持不变,因此条目会同时保留插件自动计算的来源和您输入的来源。当 CRM 需要简化或内部标签,而您又不想丢失真实来源时,此功能非常有用。. 自 1.6.0 版本起。.
启用此功能需要添加回调函数。如果没有挂钩,自定义来源字段及其合并标签将不存在。添加回调函数后,插件会开始向表单添加自定义来源字段,并在启用末次点击归因时添加自定义来源(末次点击)字段。返回空字符串可使该字段在特定访问中留空;它不会回退到检测到的标签。.
参数:
$label(细绳) 例如,检测到的源标签。Google Ads.$key(细绳) ——被标记的是哪一种触摸?source或last_source.$form(大批) – 当前表单对象。.
// Roll the detected source up into a few buckets for the CRM.
add_filter( 'pb_gforms_referral_tracking_source_label', function( $label, $key, $form ) {
if ( 0 === strpos( $label, 'Google' ) || 0 === strpos( $label, 'Bing' ) ) {
return 'Search';
}
if ( 0 === strpos( $label, 'Facebook' ) || 0 === strpos( $label, 'Instagram' ) ) {
return 'Social';
}
// Anything else: leave the Custom Source field empty.
return '';
}, 10, 3 );pb_gforms_referral_tracking_enqueue_assets
控制插件的前端资源(cookie 库和跟踪脚本)是否入队。返回 false 可完全禁用页面或特定条件下的加载。.
参数:
$enqueue(布尔值) – 是否将资源加入队列。默认为 true。.
// Disable tracking assets on the homepage only.
add_filter( 'pb_gforms_referral_tracking_enqueue_assets', function( $enqueue ) {
if ( is_front_page() ) {
return false;
}
return $enqueue;
} );pb_gforms_referral_tracking_inline_css
覆盖隐藏前端和区块编辑器预览中跟踪字段的内联 CSS。默认 CSS 会隐藏跟踪字段、旧版 Google Ads 跟踪器和镜像字段包装器,从而影响目标定位。 .gform_wrapper .gfield 带有 pb-ref-tracking-、pb-gads-tracking- 和 pb-ref-mirror- 类前缀。.
参数:
$css(细绳) – 内联 CSS 字符串。.
// Replace the default hide rule with a more specific selector.
add_filter( 'pb_gforms_referral_tracking_inline_css', function( $css ) {
return '.my-theme .gform_wrapper .gfield[class*="pb-ref-tracking-"] { display: none !important; }';
} );pb_gforms_rt_invalidate_debounce
调整(或禁用)报表缓存失效防抖窗口。每当有新条目提交后,报表缓存最多每隔指定秒数重建一次,以避免高流量表单频繁刷新缓存。默认值为 60 秒;返回 0 则表示每次提交新条目后立即使缓存失效。.
参数:
$seconds(整数) – 防抖窗口,单位为秒。默认值为 60。.
// Rebuild Reports data immediately on every new entry (no debounce).
add_filter( 'pb_gforms_rt_invalidate_debounce', function( $seconds ) {
return 0;
} );pb_gforms_referral_tracking_mirror_field_definitions
自定义向表单添加镜像字段时创建的持久镜像字段定义。 label 这是你可以安全更换的部件。.
离开 cssClass 单独提交时,插件会从中读取规范跟踪键,以及之后的所有内容。 pb-ref-mirror-, 找到要复制的值。重命名类后,镜像字段每次都提交为空。.
参数:
$fields(大批) – 镜像场定义数组的数组。.$form(大批) – 当前表单元数据。.
// Prefix every mirror field label so they're easy to spot in the editor.
add_filter( 'pb_gforms_referral_tracking_mirror_field_definitions', function( $fields, $form ) {
foreach ( $fields as &$field ) {
$field['label'] = 'Tracking: ' . $field['label'];
}
return $fields;
}, 10, 2 );pb_gforms_referral_tracking_docs_url
重新指向设置屏幕中显示的“在文档中了解更多信息”链接。这对于维护自身文档的白标或代理安装非常有用。.
参数:
$url(细绳) – 文档 URL。请输入您自己的 URL 进行替换。.
// Point the settings-screen docs link at our own handbook.
add_filter( 'pb_gforms_referral_tracking_docs_url', function( $url ) {
return 'https://example.com/handbook/referral-tracking/';
} );