We’ve been heads-down shipping, and it’s time to catch up the blog. This post covers three releases for Referral Source Tracking for Gravity Forms: 1.1.4 (December 2025 — never got its own announcement), 1.2.0, and the quick-follow 1.2.1, both shipped in February 2026.
Together they add some of the most-requested features to date: merge tags for every tracking field, custom source labeling for affiliate and partner traffic, a dedicated Click ID field, and a smarter attribution engine that never misses a paid ad click. Plus, 1.2.0 introduced a comprehensive set of developer hooks that make the plugin fully extensible for the first time.
Let’s go through it all.
1.1.4 — Merge Tags for Every Tracking Field
Released December 12, 2025
This one slipped by without an announcement, but it’s too useful not to highlight.
Version 1.1.4 added dedicated merge tags for every referral tracking field the plugin captures. You can now reference tracking data directly in Gravity Forms notifications, confirmations, and feed mappings — no hunting for field IDs, no custom code.
The full set of merge tags:
| Merge tag | Field |
|---|---|
| {pb_ref_source} | Referral Source |
| {pb_ref_referrer} | Referrer URL |
| {pb_ref_params} | All Referral Parameters |
| {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 |
The tags are only surfaced in the Gravity Forms UI when referral tracking is enabled on the form, so your merge tag picker stays clean.
Also in 1.1.4: If you had the lower-tier Google Ads Tracking for Gravity Forms plugin installed, activating Referral Source Tracking now automatically deactivates it and shows a notice explaining why — preventing duplicate fields from appearing on your forms.
1.2.0 — Custom Sources, Entry List Columns, and a Full Developer API
Released February 20, 2026
Custom Sources — Label Any Traffic You Control
The plugin has always handled detection automatically for the big platforms. Version 1.2.0 adds Custom Sources — a rules table in the settings UI that lets you define exactly how any other traffic should be labeled in your form entries.
Each rule lets you specify:
- Label — What to call the source when the rule fires (e.g., “Partner: Acme” or “Email: Newsletter”)
- Match Field — What to check: referrer host, UTM source, UTM medium, UTM campaign, UTM term, or UTM content
- Match Type — Contains (partial match) or Equals (exact match)
- Match Value — The text to look for (e.g., acme.com or newsletter)
- Priority — Higher number wins when multiple rules could match
Custom rules run before built-in platform detection. If a rule overlaps with a source the plugin already identifies natively, you’ll see a warning in the settings UI to help you spot and resolve conflicts.
The new Append Organic/Ads Labels setting controls whether your custom source labels receive an “Organic” or “Ads” suffix when applicable. Built-in sources always include this suffix (except email marketing). For your custom rules, it’s now your choice.
Entry List Columns for All Tracking Fields
All tracking fields — Source, Referrer, every UTM parameter, and Click ID — can now be added as selectable columns in the Gravity Forms entry list view.Enable the columns you care about and scan lead sources directly from the entry table, without opening individual entries.
A Full Developer Hook API
1.2.0 introduced a comprehensive set of hooks to make the plugin fully extensible — no forking required. Every meaningful point in the tracking pipeline is now filterable.
Action
pb_gforms_referral_tracking_loaded— Fires after full plugin initialization. The reliable boot point for add-ons.
Filters
pb_gforms_referral_tracking_enabled— Override whether tracking is active for a given form.pb_gforms_referral_tracking_field_definitions— Adjust the hidden field definitions before they’re added to the form.pb_gforms_referral_tracking_form— Filter the final form array after all tracking fields are appended.pb_gforms_referral_tracking_merge_tag_map— Modify the merge tag label/field mappings.pb_gforms_referral_tracking_value— Filter raw tracking values before they’re formatted.pb_gforms_referral_tracking_formatted_value— Filter formatted merge tag output.pb_gforms_referral_tracking_default_value— Override the fallback value for empty fields (source, referrer, or front-end default).pb_gforms_referral_tracking_js_config— Override the front-end JS configuration (cookie settings, source maps, known sources, and more).pb_gforms_referral_tracking_custom_sources— Programmatically inject custom source rules alongside those configured in the admin UI.pb_gforms_referral_tracking_enqueue_assets— Disable front-end asset loading entirely.pb_gforms_referral_tracking_inline_css— Override the inline CSS used to hide tracking fields.
1.2.1 — Click ID Field, Merge Tag, and a Critical Attribution Fix
Released February 24, 2026
Dedicated Click ID Field and {pb_ref_clid} Merge Tag
Version 1.2.1 adds a dedicated hidden field that captures the first detected click ID from any major ad platform — gclid, gbraid, wbraid, fbclid, msclkid, and more.
The new {pb_ref_clid} merge tag makes it easy to pass click IDs directly into CRM field mappings, webhook payloads, notification emails, or anywhere else merge tags are supported — without needing to parse the full query string field or write custom code.
Paid-Click Attribution Fix: No More Lost Ad Conversions
This release fixes a subtle but real attribution gap.
Previously, if a visitor arrived organically first and then returned later and clicked a paid ad within the same 7-day cookie window, their original organic attribution was locked in. The paid click was effectively ignored, which meant conversions from retargeting campaigns or branded paid searches could go uncredited.
1.2.1 changes this: paid ad visits now always force a full attribution update, regardless of what’s stored from a prior visit. If someone clicks a Google Ad on their second visit, your form entry will correctly reflect the paid source and the associated click ID.
As part of this fix, any UTM fields that weren’t present in the new paid visit are explicitly cleared — so stale values from a previous organic session can’t bleed through into the new attribution record.
Bug Fixes and Accuracy Improvements (1.2.0)
- Constant Contact, Salesforce, and HubSpot click IDs now correctly identified — previously fell through to “Unknown Ads”
- fbclid alone no longer classified as paid — Facebook click IDs are only treated as paid traffic when a paid utm_medium is also present
- DuckDuckGo and Yandex now correctly receive the “Organic” label suffix (an edge case left over from when these were first added in 1.1.0)
- Double initialization fixed — tracking JS no longer runs twice per page load, which caused double event binding on multi-page Gravity Forms
- Click ID cookie now correctly stores the first detected click ID instead of overwriting with the last
- All plugin options are now properly removed from the database on uninstall
- Tracking assets are no longer enqueued on the frontend when Gravity Forms is not active
- Plugin conflict check now correctly limited to admin-only context — was previously running on every frontend page load