SmartDingo Form Tracker captures campaign and visitor data in the browser, auto-fills it into your existing forms, and (on paid plans) stores each submission as a lead you can review and export. This page explains what the plugin does, defines the vocabulary used throughout these docs, and points you to the right place to start.
SmartDingo Form Tracker answers a simple question: where did this form submission come from?
When a visitor lands on your site, the plugin reads the campaign tags on the URL plus a set of visitor and page signals, remembers them in the browser, and writes them into the form fields you
nominate. When the visitor submits — on a paid plan — the whole picture is saved as a lead:
their contact details and the tracking data that brought them there.
It works alongside your form plugin. It does not build forms, send email, or replace your form
plugin’s own entries — it reads tracking data and fills it into the fields you already have.
If you just want hidden UTM fields populated, the free plan is enough. If you want a stored,
filterable, exportable list of leads, you need a paid plan.
Three stages, in order:
(Starter). When the form submits successfully, the plugin saves theStages 1 and 2 are available on every plan. Stage 3 requires a paid plan.
Note Lead capture is reliable for supported form plugins that submit via AJAX, and
best-effort for redirect-style confirmations and unknown forms. It is not a universal
catch-all for every form on the web — see Supported form plugins.
These terms are used throughout the docs. They are defined here once.
| Term | What it means |
|---|---|
| UTM parameters | The utm_source, utm_medium, utm_campaign, utm_term and utm_content tags added to a URL query string to label a campaign, e.g. ?utm_source=google&utm_medium=cpc. The tracker reads them straight off the URL. |
| Ad click IDs | Platform click identifiers such as gclid (Google), fbclid (Meta), msclkid (Microsoft) and others. Treated like UTM values: read from the URL and stored. |
| Landing page | The first page URL the visitor arrived on. Stored once as a first-touch value and not overwritten on later pages. |
| First-touch vs last-touch | First-touch fields record the first value seen for a visitor and never change — landing page, referrer, and the first_utm_* fields (Starter). Last-touch fields (the plain utm_* fields, conversion_page) reflect the most recent visit or the moment of submission. Capturing both lets you see where a visitor originally came from and which campaign closed the deal. |
| Visitor vs session | A session is one browsing session — data in sessionStorage is cleared when the tab or browser closes. A visitor is recognised across sessions by a stored visitor_id, which requires localStorage. On the free plan storage is session-only, so a returning person looks like a new visitor; paid plans add localStorage, enabling visitor_type (new/returning) and visit_count. |
| CSS-selector field mapping | How you tell the plugin which form input receives which tracked value, by giving a CSS selector such as input[name="utm_source"]. One mapping = one tracked field → one selector. |
| Auto-fill | The act of writing stored tracking values into the mapped inputs when the form page loads. Mapped fields are typically hidden. |
| Lead | A saved record of one form submission: the contact fields plus all attached tracking data, stored in the plugin’s own database table and shown on the Leads page. Paid plans only. |
| capture_method | An internal label stored with each lead recording how it was captured: ajax (the default — used both for validated captures from supported AJAX plugins and for the best-effort fallback on unknown forms) or beacon-best-effort (fired before server-side validation on redirect forms). Reliability depends on the form plugin, not on this label alone — see Supported form plugins. |
GDPR Tracking data on its own is not identifying, but combined with a submitted form it is
personal data. Choose a consent mode deliberately before you go live — see
GDPR & consent.
The plugin uses Freemius licensing with three plans: Free, Starter, and Pro. Features
are marked inline throughout the docs — (Free) (everyone), (Starter) (any paid plan),(Pro) (Pro only). Unmarked features are available on all plans.
| Capability | Free | Starter | Pro |
|---|---|---|---|
| UTM / visitor tracking (free field set) | ✅ | ✅ | ✅ |
| Field auto-fill, page scanner, debug overlay | ✅ | ✅ | ✅ |
| Consent modes (Off / WP Consent API / Manual) | ✅ | ✅ | ✅ |
| Browser storage | sessionStorage | + localStorage | + localStorage |
| Form configurations | 1 | 5 | 25 |
| Tracked fields | 12 | 26 | 34 |
| Lead capture + Leads page & dashboard | — | ✅ | ✅ |
| CSV export of leads | — | ✅ | ✅ |
| Settings export / import (JSON) | — | ✅ | ✅ |
| Lead retention / auto-delete | — | ✅ | ✅ |
| Dashboard preferences (show/hide widgets, chart view) | — | ✅ | ✅ |
| Custom chart colours | — | — | ✅ |
Limits: form configurations 1 / 5 / 25 · visited pages 10 / 30 / 50 · retention: no plan cap
(0 = never delete, otherwise 1–120 months).
For upgrading, moving a licence, or the full breakdown, see
Licenses & plans.
(Starter) — filter, review,You’ve spent the budget. You’ve run the campaigns. You deserve to know what actually worked. SmartDingo gives you complete, accurate, first-party attribution for every WordPress form submission. Start today on the forms you already use.
SmartDingo is a WordPress lead tracking plugin built for online marketers and WordPress developers who need accurate, cookieless attribution. It captures UTM parameters, traffic sources, landing pages, and full visitor journeys for every form submission, working seamlessly with Fluent Forms, Gravity Forms, Ninja Forms, WPForms, and other major WordPress form plugins. Whether you’re tracking leads from Google Ads, Meta, LinkedIn, or organic search, SmartDingo connects every lead to the marketing campaign that generated it.