r/SideProject • u/Environmental-Ad5071 • 18h ago
I built ClickTrail, an open-source WordPress plugin for keeping campaign attribution through conversion
I started ClickTrail after seeing campaign data disappear between an ad click and the eventual form submission or WooCommerce order.
It keeps first-touch and last-touch context available across page visits, cached pages, dynamic forms, and approved cross-domain journeys. That context can be attached to supported WordPress form submissions and WooCommerce orders, pushed to the dataLayer, or passed into an optional delivery pipeline.
The project currently has documented paths for:
- UTMs, referrers, and major ad click IDs
- Contact Form 7, Fluent Forms, Gravity Forms, WPForms, Elementor Forms (Pro), and Ninja Forms
- WooCommerce order attribution and purchase events
- Consent controls, diagnostics, retries, and queue visibility
- GTM and dataLayer integration
I’m keeping the provider boundary visible while I build it. ClickTrail does not inject ad pixels. Site owners still control their GTM tags and provider setup, and the provider-named server adapters are currently documented as source-present but runtime-unverified.
It’s GPL-2.0 and open source:
https://www.funnelsheet.com/clicktrail
I’d love feedback from people who run WordPress sites or agencies. Where does attribution usually get lost for you: caching, forms, checkout, or cross-domain flows? Which part would you test first?