
Gravity Forms Referral Source Tracking 1.6.0 is out, and the headline is one a lot of you have been waiting for: send the source you already captured on a form into Google Analytics as a real event, when the form confirms. Don’t have the plugin? Get it here.
Table of Contents
It is off by default. Flip it on and a submission fires pb_referral_submit with the source, referrer, click ID, and UTM parameters attached. That covers AJAX, in-page, and redirect confirmations.
You will find it under Forms → Settings → Referral Tracking → General, in the GA4 / Tag Manager section.

And on submit, Tag Assistant sees that event in the data layer:

If you use a standard gtag.js install, the plugin hands the event to your existing Google tag, so it shows up as a GA4 custom event. If you use Tag Manager, add one trigger and a GA4 event tag in Tag Manager that match the event name. The plugin never talks to Google itself.
Want a different event name? Change it. Leave it blank and it stays pb_referral_submit. Last-touch values go along for the ride when last-touch attribution is enabled.
ChatGPT Ads, Instagram, and YouTube
ChatGPT ad clicks now show up as ChatGPT Ads. OpenAI appends an oppref click reference to those landing URLs. The plugin captures it.
A ChatGPT citation that arrives as utm_source=chatgpt.com is ChatGPT Organic, not a source called “Chatgpt.com”.
Instagram and YouTube are real sources now, including the l.instagram.com link shim, m.youtube.com, and youtu.be. An Instagram click that also carries fbclid is recorded as Instagram, not Facebook. Add a UTM parameter and it becomes Instagram Ads.
Paid only counts when there is a real click ID
A hand-written utm_medium=cpc with no click ID is no longer marked paid. Paid now requires a click ID such as gclid or msclkid. If a gclid shows up next to a messy UTM, that visit is still Google Ads.
Facebook stays picky in the other direction. Meta adds fbclid to organic clicks too, so fbclid alone is Facebook Organic. fbclid plus any UTM parameter is Facebook Ads.
A Custom Source field that does not overwrite the detected one
The new pb_gforms_referral_tracking_source_label filter lets you write your own label into a separate Custom Source field. Detected source stays as-is. You get a merge tag, an entry column, and a mirror field, and those fields only exist while the filter is registered.
A few fixes worth the update
Last-touch no longer resets to Direct when someone clicks around your own site. A Google visitor who submits on the contact page keeps Google.
Lookalike referrers such as box.com are no longer attributed to X, Pinterest, or Google. Source detection is now anchored to whole domain labels.
Reports and the email digest now cover whole days only, ending at the last complete midnight, so “vs prior period” is not a partial day versus a full one.
The rest is in the changelog.
Update and take a look
Update Referral Source Tracking from your WordPress dashboard just like any other plugin. Then, if you want the GA4 event, flip the toggle. Leave it off if you do not.
For the full feature breakdown, visit Referral Source Tracking for Gravity Forms and check out the documentation.
New to Gravity Forms Referral Source Tracking?
Gravity Forms Referral Source Tracking answers a deceptively simple question for every Gravity Forms entry:
“Where did this lead come from?”
The plugin handles the detective work for you.
It can:
- Record the source behind each entry, including search, social, ads, email, AI assistants, and direct visits.
- Capture the full picture: source, UTM parameters, referring page, and ad click IDs such as gclid, fbclid, and msclkid.
- Add reporting under Forms > Settings > Referral Tracking, with breakdowns by source, date, UTM data, and referrer.
- Send an optional weekly or monthly email digest, so your numbers come to you.
- Make attribution data available in notifications and feeds through merge tags like {pb_ref_source}.
New to the whole attribution thing? Start here: Lead Source Tracking in Gravity Forms: The 4 Fields Every Entry Is Missing.