ClickTrail – UTM, Click ID & Ad Tracking (with Consent)
Attribution usually breaks somewhere between the ad click and the conversion. ClickTrail makes it survive: cached pages, dynamic forms, multi-page journeys, repeat visits, and consent requirements.
ClickTrail keeps the source of the visit, not a profile of the visitor. Capture is first-party and consent-aware: the plugin does not call external services to identify or enrich visitors, and data only leaves your site through integrations you enable yourself (GTM, webhooks, server-side delivery).
ClickTrail stores first-touch and last-touch attribution from the landing page and keeps it available until the conversion point, where it becomes usable inside WordPress:
- WooCommerce orders
- supported forms
- browser events
- optional server-side delivery
In WooCommerce, ClickTrail stores attribution on the order, pushes enriched purchase events on the thank-you page, and can optionally emit GA4-style storefront events for view_item, view_item_list, view_cart, add_to_cart, remove_from_cart, and begin_checkout, plus post-purchase milestones, through the same ClickTrail pipeline.
Pick a starting path
- WooCommerce store: enable Capture and WooCommerce. Orders carry campaign context from day one; add storefront events later if you want funnel signals.
- Lead-gen forms: enable Capture and Forms. Contact Form 7 and Fluent Forms get hidden fields automatically; Gravity Forms and WPForms fill the
ct_*fields you add. - GTM / sGTM stack: enable Capture, Events, and Delivery. Browser events push to the
dataLayer, and the server-side adapters feed sGTM or platform APIs directly.
What problems it solves
- No paid order reports as “direct”: Paid traffic often ends up looking like direct traffic by the time an order is placed. ClickTrail stores attribution on the order and keeps purchase reporting tied to campaign context.
- No checkout journey goes dark: WooCommerce storefront journeys can emit opt-in
view_item,view_item_list,view_cart,add_to_cart,remove_from_cart, andbegin_checkoutsignals through the same ClickTrail event layer used elsewhere in the plugin. - No cached or AJAX-rendered form drops attribution: Hidden fields often break on cached pages or dynamically rendered forms. ClickTrail includes client-side fallback and dynamic-content support.
- No cross-domain hop breaks continuity: Approved link decoration and attribution tokens keep continuity between domains or subdomains.
- No consent signal is ignored: Consent controls, browser events, webhook intake, and server-side transport live in the same plugin and respect the same consent state.
Core capabilities
- Capture: first-touch and last-touch UTMs, major ad click IDs, and referrers with automatic organic/social/referral fallback when UTMs are absent.
- WooCommerce: checkout attribution persistence, thank-you purchase event push, enriched commerce payloads, optional storefront commerce events, and optional order-status milestones.
- Forms: automatic hidden-field enrichment for Contact Form 7 and Fluent Forms, compatible hidden-field population for Gravity Forms and WPForms, client-side fallback, dynamic form support, and WhatsApp attribution continuity.
- Events: browser event collection with
dataLayerpushes, canonical REST intake, webhook ingestion, lifecycle updates, one-time WordPress follow-up events such aslogin,sign_up, andcomment_submit, and optional WooCommerce storefront events. - Delivery: optional server-side transport, retry queue, diagnostics, consent-aware dispatch, and failure telemetry.
Recent additions
Recent releases extended the Gravity Forms integration with channel classification, merge tags, and per-form controls:
- Channel classification: every GF entry now receives a
ct_ft_channelvalue — a human-readable label such as Google Ads, ChatGPT, or Mailchimp — derived from click IDs, UTM parameters, or referrer context. A server-side fallback covers sessions where JS attribution was unavailable. - Expanded click ID capture: six additional click IDs (Reddit
rdt_cid, Pinterestpin_cid, Snapchatsnap_cid, Mailchimpmc_cid/mc_eid, and Display & Video 360dclid) are now captured and stored. - Merge tags: nine
{clicutcl_*}merge tags are available in GF notifications and confirmations, including{clicutcl_channel},{clicutcl_click_id}, and seven UTM-based tags. - Per-form toggle: attribution tracking can be enabled or disabled per form via a dedicated ClickTrail section in Gravity Forms form settings.
- Admin QA mode: attribution data is stored in
sessionStorageonly when amanage_optionsuser is logged in, preventing admin browsing from appearing in attribution reports. - sessionStorage fallback: attribution capture now falls back to
sessionStoragewhen the browser blocks cookies. - Minification protection: ClickTrail script tags carry exclusion attributes recognised by Autoptimize, Cloudflare Rocket Loader, WP Rocket, and LiteSpeed Cache (corrected attribute set in 1.7.0).
Current admin structure
The main settings experience is organized by capability:
- Capture
- Forms
- Events
- Delivery
Operational screens stay separate:
- Logs
- Diagnostics
Supported integrations
- Forms: Contact Form 7, Elementor Forms (Pro), Fluent Forms, Gravity Forms, Ninja Forms, WPForms
- Commerce: WooCommerce
- CMP sources: ClickTrail banner, Cookiebot, OneTrust, Complianz, GTM, custom
- Webhook providers: Calendly, HubSpot, Typeform
- Server-side adapters: Generic collector, sGTM, Meta CAPI, Google Ads / GA4, LinkedIn CAPI, Pinterest Conversions API, TikTok Events API
Forms behavior by plugin
- Contact Form 7 and Fluent Forms: ClickTrail can add hidden attribution fields automatically.
- Gravity Forms and WPForms: ClickTrail can populate matching hidden fields you add to the form.
- Recommended for Gravity Forms and WPForms: add the hidden fields you want stored or exported, and ClickTrail will fill them.
- Elementor Forms (Pro): ClickTrail uses the available submission hooks and attribution fallback, not automatic hidden-field injection.
- Ninja Forms: ClickTrail stores attribution with the submission and surfaces it in the submission record, not as automatic hidden-field injection.
Supported click IDs
- Google:
gclid,wbraid,gbraid - Meta:
fbclid - TikTok:
ttclid - Microsoft:
msclkid - X / Twitter:
twclid - LinkedIn:
li_fat_id - Snapchat:
sccid - Pinterest:
epik
Additional capture fields
- Extended UTMs:
utm_id,utm_source_platform,utm_creative_format,utm_marketing_tactic - Browser/platform identifiers:
fbc,fbp,_ttp,li_gc,ga_client_id,ga_session_id
