Conversion tracking for Gravity Forms
Gravity Forms is a WordPress plugin with a proper PHP hook system, which puts it in a much better position than any hosted form tool. Submissions are usually AJAX, so a navigation-bound trigger won't fire — but gform_after_submission runs server-side on every entry regardless of what the browser did, and that's the reliable event.
Free30 minutesNo obligation
Gravity Forms tracking · what breaks
What goes wrong on Gravity Forms
- 01
AJAX submission with no navigation
So URL-bound triggers never fire.
- 02
WordPress caching and optimisation
Inherited complications that break browser-side events.
- 03
Multi-page forms losing hidden values
Unless carried through each page.
- 04
Plugin duplication
The WordPress inventory problem.
Gravity Forms tracking · the fix
What changes — Gravity Forms tracking
Conversions on real submission
Browser event or PHP hook.
Click IDs in the entry
Hidden fields populated on landing.
Server-side events immune to caching
From the PHP hook.
Gravity Forms tracking · architecture
What Gravity Forms actually lets you do
A WordPress plugin with a genuinely good hook system.
- 1
gform_after_submission
PHP, once per entry, with the full entry object.
- 2
gform_confirmation_loaded
A JavaScript event for browser-side binding.
- 3
Hidden fields
Populated on landing, stored on the entry.
- 4
Multi-page forms
Values need carrying between pages.
- 5
WordPress underneath
Caching, optimisation and plugin sprawl.
Gravity Forms tracking · diagnose
Where Gravity Forms tracking breaks, in diagnostic order
Each check rules out a class of cause, so by the last one there is usually a single explanation standing.
- 01
Submit a form and watch the URL
AJAX submission means no change.
- 02
Check hidden fields have values in the entry
Not just that they exist.
- 03
Test multi-page forms end to end
Values can be lost between pages.
- 04
List tracking-adjacent plugins
WordPress inventory.
- 05
Reconcile entries against your CRM
For a closed month.
Gravity Forms tracking · prove
The QA evidence — Gravity Forms tracking
Run on Gravity Forms specifically, on a live conversion rather than in preview mode.
Source of truth
your Gravity Forms entry records
- Conversion confirmed firing on a real submission.
- Click identifiers confirmed present in the entry.
- Multi-page forms tested end to end.
- Entry ID confirmed as the deduplication key on both paths.
- Entries reconciled against CRM records for a closed month.
- Reconciled over a fully closed window, matched per record rather than on totals.
- Re-checked 30 days later, and after any platform update.
Gravity Forms tracking · free audit
What we check in the free audit
- Submit a form and watch the URL
- Check hidden fields have values in the entry
- Test multi-page forms end to end
- List tracking-adjacent plugins
- Reconcile entries against your CRM
Checked against
your Gravity Forms entry records
Free30 minutesNo obligation
Gravity Forms tracking · when not to buy
When you don't need this on Gravity Forms
Worth reading before you buy anything, from us or anyone.
- If your Gravity Forms conversions fire and entries carry click IDs, this is working.
- The PHP hook is straightforward WordPress development. Hand your developer gform_after_submission and this page.
- If you don't need server-side reliability, gform_confirmation_loaded alone is a legitimate browser-side setup.
- Check one entry for hidden field values first — it takes a minute.
Gravity Forms tracking · what we deliver
The event map on Gravity Forms
Form view
Browser-side.
Confirmation loaded
Gravity Forms' own JavaScript event, for browser-side conversions.
Entry created
gform_after_submission, PHP, once per entry.
Hidden fields
Click identifiers, populated on landing.
Qualified lead
From your CRM.
Written guarantee
95%+ tracking accuracy
Measured against your Gravity Forms entry records. Miss it and we keep working at no cost.
Pricing
Pick the package that fits your ad spend
Browser-side starter
$400One-time fee · lifetime ownership
Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.
- Root cause fixed, not worked around
- Verified on a live conversion
- Reconciled against your own records
- Written handover
1st-party server-side
Recommended$800One-time fee · most popular
Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.
- First-party server container on your own subdomain
- Money events from your records, not the browser
- Deduplicated on a shared event ID at every destination
- First-party cookies beyond Safari's 7-day cap
- 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Full 1st-party stack
$1,800One-time fee · lifetime ownership
Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.
- Everything in 1st-party server-side
- Pinterest, Snapchat, Reddit and LinkedIn CAPI
- CRM and offline conversion loop
- Refunds and cancellations corrected wherever each platform allows it
- Monitoring on every destination
FAQ
Gravity Forms tracking questions, answered
The trigger is waiting for a navigation that AJAX submission doesn't produce. Bind to gform_confirmation_loaded instead.
gform_after_submission in PHP. It runs once per entry regardless of caching, deferral or what the browser did.
They can, unless the values are carried through each page. Test end to end.
For tracking, yes. A PHP hook on your own server beats an iframe on someone else's origin.
Free · 30 min
Get Gravity Forms tracking done properly
Free30 minutesNo obligation
