ClickTrail stores attribution data from landing pages and keeps it available for later form submissions, WooCommerce orders, and event flows.
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.
It is designed for cases where attribution often breaks in practice: cached pages, dynamic forms, multi-page journeys, repeat visits, consent requirements, and optional server-side delivery.
The plugin keeps first-touch and last-touch context available until the conversion point and makes that context usable inside WordPress.
It captures first-touch and last-touch source data, keeps it available during the user journey, and makes that data usable where conversions actually happen:
- WooCommerce orders
- supported forms
- browser events
- optional server-side delivery
Teams can start with order or form attribution first, then add browser events, consent handling, or server-side transport when needed.
What problems it solves
- WooCommerce orders losing source data: 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.
- Checkout continuity breaking before purchase: WooCommerce storefront journeys can now emit opt-in
view_item, view_item_list, view_cart, add_to_cart, remove_from_cart, and begin_checkout signals through the same ClickTrail event layer used elsewhere in the plugin.
- Cached or dynamic forms: Hidden fields often break on cached pages or AJAX-rendered forms. ClickTrail includes client-side fallback and dynamic-content support.
- Cross-domain breaks: Approved link decoration and attribution tokens help keep continuity between domains or subdomains.
- Consent and transport complexity: Consent controls, browser events, webhook intake, and server-side transport live in the same plugin.
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
dataLayer pushes, canonical REST intake, webhook ingestion, lifecycle updates, one-time WordPress follow-up events such as login, sign_up, and comment_submit, and optional WooCommerce storefront events.
- Delivery: optional server-side transport, retry queue, diagnostics, consent-aware dispatch, and failure telemetry.
What is new in 1.6.0
This release extends the Gravity Forms integration with channel classification, merge tags, and per-form controls:
- Channel classification: every GF entry now receives a
ct_ft_channel value — 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, Pinterest pin_cid, Snapchat snap_cid, Mailchimp mc_cid / mc_eid, and Display & Video 360 dclid) 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
sessionStorage only when a manage_options user is logged in, preventing admin browsing from appearing in attribution reports.
- sessionStorage fallback: attribution capture now falls back to
sessionStorage when 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:
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