Request an audit

ClickTrail for Ninja Forms

NINJA FORMS UTM ATTRIBUTION

ClickTrail attaches stored UTMs, click IDs, and referrers to Ninja Forms submissions via the ninja_forms_submit_data filter, without relying on JavaScript-populated hidden fields.

What ClickTrail adds to Ninja Forms

  • Attribution appended to submission payload at hook time.
  • Works on cached pages.
  • First-touch and last-touch UTMs on Ninja Forms entries.
  • No Ninja Forms add-on or extra extension required.

WHY NINJA FORMS LOSES CAMPAIGN DATA

The attribution gap

Ninja Forms relies on field values set at render time or on JavaScript populating hidden fields when the page loads. Cached pages, repeat visits, and direct traffic all leave those paths broken. ClickTrail appends stored attribution to the submission payload at hook time, bypassing the render-time dependency entirely.

Common failure modes

  • Hidden UTM fields empty when JavaScript does not fire at page load.
  • Repeat and direct visits producing entries with blank source fields.
  • gclid not attached to Google Ads-driven Ninja Forms submissions.
  • Cached page rendering clearing JavaScript-populated field values.
  • Submission notifications and CRM receiving entries with no attribution.

SUBMISSION HOOK AND CACHE

How ClickTrail handles Ninja Forms

ClickTrail appends stored attribution to Ninja Forms submissions via a server-side filter hook, covering UTMs, click IDs, and referrers without relying on URL parameters at page load.

  • Submission Hook

    Appends ft_source, ft_medium, ft_campaign, ft_content, ft_term (and lt_ equivalents), gclid, fbclid, msclkid, and ft_referrer/lt_referrer to the submission payload via ninja_forms_submit_data at the point the visitor submits.

  • Cache-Safe Delivery

    Attribution is read from the first-party attribution cookie at submission time, so cached page delivery and JavaScript render timing do not affect whether campaign context reaches the entry.

  • First-Touch + Last-Touch

    Both acquisition source and last-touch source are stored and can be appended to the submission payload.

  • Consent-Aware Capture

    Attribution storage and payload enrichment respect consent state when Consent Mode is enabled.

QUESTIONS BEFORE YOU CONNECT NINJA FORMS

Ninja Forms FAQ

ClickTrail appends attribution to Ninja Forms submissions server-side via the submission data filter, so it works across cached pages and repeat visits without modifying form fields directly.

  • No Ninja Forms extension or extra plugin required.
  • Server-side hook — not dependent on JavaScript-populated hidden fields.
  • Covers direct traffic and repeat visits with no URL parameters.
Does ClickTrail need a Ninja Forms extension?
No. ClickTrail hooks into Ninja Forms via the ninja_forms_submit_data filter and ninja_forms_after_submission action available in the core plugin. No extension, add-on, or paid Ninja Forms tier is required.
How does attribution get attached to submissions?
ClickTrail reads stored attribution from the first-party attribution cookie at submission time and appends it to the Ninja Forms submission data object before notifications and actions fire. No field modifications to the form builder are required.
Does it work when UTMs are not in the submission URL?
Yes. ClickTrail reads from stored attribution rather than from the current URL, so repeat visits and direct returns carry campaign context from the original landing session.
Can I see attribution in the Ninja Forms submission admin?
Attribution fields appended via the hook appear in the submission record.
Does gclid get captured for Google Ads traffic?
Yes. ClickTrail captures gclid on landing and stores it. It is appended to the Ninja Forms submission payload alongside UTM parameters when the hook fires.

Next step

DOWNLOAD CLICKTRAIL AND FIX NINJA FORMS ATTRIBUTION BEFORE LAUNCH