Lead Source Tracking For WordPress
13 November 2025
When you’re running digital advertising for clients across Google, Facebook, LinkedIn, and Microsoft, every platform has a dashboard that tells a confident story.
Google Ads says it drove 40 conversions. Meta says it drove 35. LinkedIn claims another 20. Add them up and you’ve got 95 conversions — except the client only received 60 leads last month.
Every ad platform takes credit for everything it can. They count view-through conversions, cross-device estimates, and modelled data. The numbers overlap, inflate, and contradict each other. And when your client asks the straightforward question — “Which channel is actually working?” — you’re stuck stitching together reports that don’t agree.
That’s the problem we lived with for years. And it’s why we built LeadSourcePro.
The Gap Between Platform Data and Real Leads
As a digital agency, we manage ad campaigns across multiple platforms for our clients. We optimise bids, refine audiences, write ad copy, and build landing pages. The platforms give us plenty of data — impressions, clicks, cost-per-click, conversion rates. What they don’t reliably give us is the answer to the most important question: which of these channels actually drove a real person to fill out a real form on our client’s website?
Google Analytics helps, but it has its own attribution model and its own blind spots. And when a lead takes two weeks to convert — arriving via a LinkedIn ad on Monday and coming back through an organic search a fortnight later — the trail goes cold. The form submission says “direct traffic.” The ad platforms disagree with each other about who deserves credit. And nobody can point to the truth with certainty.
We needed a single source of truth. One system that sits on the client’s WordPress site, watches every visitor arrive, records where they actually came from, and attaches that data to the form submission when they convert. No modelled data. No estimates. Just: this lead came from this campaign.
So We Built It
LeadSourcePro is a WordPress plugin we developed in-house to solve this exact problem. It captures UTM parameters (the tracking codes in ad URLs), click identifiers from Google, Facebook, Microsoft, LinkedIn, and TikTok, plus the visitor’s landing page and referrer — and stores all of it automatically.
When a visitor fills out a form — whether it’s Contact Form 7, Gravity Forms, WPForms, or any other major WordPress form plugin — LeadSourcePro attaches the full attribution data to that submission. No hidden field configuration. No custom JavaScript to maintain. No hoping the data survives across page navigations and browser sessions.
It also tracks both first-touch and last-touch attribution. First-touch tells us which campaign originally brought the visitor to the site. Last-touch tells us which campaign was the final nudge before they converted. Having both gives us the full picture — and means we can finally answer those client questions with confidence.
What Changed for Our Clients
The difference was immediate. Instead of reconciling three different platform dashboards and hoping the numbers made sense, we could open a client’s form entries and see exactly which campaign drove each lead. Not an estimate. Not a modelled conversion. The actual UTM parameters attached to an actual form submission from an actual person.
That clarity changed the conversations we have in client meetings. Instead of “Google Ads says it drove 40 leads,” we can say “We received 28 leads from Google Ads, 18 from Facebook, and 14 from organic search — here are the names.” The data is verifiable. It ties back to real form entries that the client can see in their own WordPress dashboard.
It also changed how we optimise campaigns. When you can see which specific ad group, keyword, or campaign variant is generating genuine enquiries — not just clicks, not just platform-reported conversions, but real leads — you make better decisions about where to spend the budget. We’ve paused campaigns that looked great in platform dashboards but weren’t generating actual leads, and doubled down on channels that were quietly doing the heavy lifting.
Why We Made It a Public Plugin
We built LeadSourcePro for ourselves initially, but it became clear that every business running digital ads on WordPress faces this same problem. The ad platforms will always mark their own homework. And while Google Analytics is a powerful tool, it doesn’t attach attribution data directly to individual form submissions in a way that non-technical business owners can easily access.
So we packaged it up, built a documentation site, and made it available as a standalone WordPress plugin. Whether you’re an agency managing campaigns for multiple clients or a business owner running your own ads, LeadSourcePro gives you the same ground-truth attribution data we rely on every day.
You can learn more and download the plugin at leadsourcepro.net.
The Technical Details (If You’re Curious)
LeadSourcePro works by capturing tracking parameters on the server side, which means it isn’t affected by Safari’s cookie restrictions or page caching — two things that break most JavaScript-based tracking approaches. It integrates automatically with the major WordPress form plugins, so there’s no need to add hidden fields or write custom code. And it stores everything in the WordPress database, so the data stays on your server under your control.
We’ve also published a comprehensive series of guides on the LeadSourcePro site covering everything from why UTM parameters disappear in WordPress to how multi-touch attribution works. Even if you never use the plugin, the guides are a useful resource for anyone trying to get attribution right on WordPress.
If you’re running digital ads and struggling to reconcile what the platforms report with the leads you’re actually receiving, we’ve been there. LeadSourcePro is the tool we built to fix it — and we’d be happy to walk you through it. Get in touch if you’d like to chat.









