GA4 can’t show which lead came from which keyword
Analytics counts sessions and conversions in totals. It can’t tell you that Sarah’s quote request came from “emergency plumber perth” last Tuesday, or which campaign your best client clicked.
Lead source tracking for marketers and agencies
SourceXray attaches the channel, campaign, keyword, first touch and last touch to every form submission, so you can see which ads, posts and pages actually produce enquiries.
Works with WordPress, Webflow, Shopify, HubSpot and any site via one line of code.
| Lead | Channel | Source / medium | Campaign | Keyword | First touch | Visits |
|---|---|---|---|---|---|---|
Sarah M. |
Paid Search | google / cpc | Emergency Plumbing | emergency plumber perth | Organic Search | 3 |
James T. |
AI Assistants | chatgpt / referral | (not set) | (not set) | AI Assistants | 1 |
Priya K. |
Google Business Profile | google / organic | gbp | (not set) | Organic Search | 2 |
Tom R. |
instagram / social | (not set) | (not set) | 4 | ||
Emma L. |
newsletter / email | Spring Hot Water | (not set) | Paid Search | 5 | |
Daniel W. |
Direct | (direct) / (none) | (not set) | (not set) | Paid Search | 2 |
Your reports know how many people visited. Your inbox knows who enquired. The link between the two, the ad, keyword or post behind each lead, gets lost along the way.
Analytics counts sessions and conversions in totals. It can’t tell you that Sarah’s quote request came from “emergency plumber perth” last Tuesday, or which campaign your best client clicked.
UTM tags disappear as soon as a visitor clicks through to a second page, and copy-pasted field scripts stop working after a plugin update. Nobody notices until the monthly report is wrong.
Returning visitors, bookmarks and in-app browsers all show up as Direct. The channel that actually found the customer gets no credit, because the first visit was never recorded.
No developer needed. SourceXray records the source on every visit and hands it to your forms the moment someone enquires.
Paste the script into your site’s head, or install it with Google Tag Manager or the WordPress plugin. One small file, loaded asynchronously.
Add hidden fields to your forms so source details reach your CRM and email notifications. Or let SourceXray capture submissions from your form builder automatically.
Channel, source, campaign, keyword, landing page, first and last touch, visits and days to convert. In your inbox, your CRM and your SourceXray dashboard.
<head>
<script async
src="https://cdn.sourcexray.com/sx.js"
data-site="sx_your_site_key"></script>
Built for marketers who need to prove what’s working, and for agencies who report on it every month.
Keyword, campaign, ad group, ad, match type, network and device for every Google Ads lead, from a copy-paste tracking suffix we generate. The exact typed query for Microsoft Ads.
See the channel that first found each lead and the one that converted them, plus the number of visits, pages viewed and days to convert.
Visits from ChatGPT, Perplexity, Gemini, Copilot and Claude get their own AI Assistants channel instead of hiding inside Referral.
SourceXray waits for your form builder’s real success event, so failed and invalid submissions never count as leads.
Source details are written into hidden form fields, so they reach your CRM, email notifications and spreadsheets with no extra integration.
A workspace for every client site, team members, and branded monthly reports that show exactly which channels produced leads.
No pageview tracking, no fingerprinting, first-party storage on your own domain. Only leads are stored, with retention limits and consent mode support.
Send each lead to your other tools as it arrives with webhooks, Zapier or Make, or export to CSV whenever you need it.
Channel names follow GA4’s default channel grouping, so your team already knows how to read them.
Since 2013, Google has removed the search term from organic clicks before the visitor reaches your website. That’s why Google Analytics shows (not provided). No tool can see it, whatever its marketing says.
So SourceXray shows you what is real: the exact keyword for paid ads, the exact query wherever the platform passes it, and the channel, search engine and landing page for organic visits. No guesses and no modelled data.
Want organic search terms in aggregate? Google Search Console shows them by page.
Start on the free plan and move up when you need more websites, more leads or a longer history. All prices in USD.
Try it on one website, with no time limit.
$0/month
No credit card needed Start freeFor a single business website.
$19/month
Billed monthly Choose StarterFor growing businesses with more than one site.
$49/month
Billed monthly Choose ProEverything in Starter, plus:
For agencies managing client websites.
$149/month
Billed monthly Choose AgencyEverything in Pro, plus:
Have an AppSumo code? Redeem it
No, and no honest tool can. Since 2013 Google has removed the search term from organic clicks before the visitor reaches your website, which is why Google Analytics shows “(not provided)”.
For organic leads, SourceXray shows the channel (Organic Search), the search engine and the landing page. For Google Ads you get the exact keyword, campaign, ad group and ad, and for Microsoft Ads the exact search query the person typed. Wherever a platform passes the query, we show it. To see organic search terms in aggregate, use Google Search Console.
No. The script is a single file of about 8KB. It loads asynchronously, so it never blocks your page from rendering, and browsers cache it after the first visit. It doesn’t track pageviews.
It’s built to collect as little as possible. There’s no pageview tracking and no fingerprinting, visit details are kept in first-party storage on your own domain, and SourceXray only stores leads.
Data retention limits apply, you can switch on a mode that doesn’t store contact details at all, and consent mode is supported so tracking can follow your cookie banner. As with any tool that handles enquiries, mention it in your privacy policy.
Gravity Forms, Elementor, Contact Form 7, WPForms, Fluent Forms, Formidable, Webflow, HubSpot, Typeform, Tally, Calendly bookings and plain HTML forms.
SourceXray waits for each form builder’s real success event, so failed and invalid submissions are never counted as leads.
Not yet. SourceXray tracks form submissions and bookings today. A call tracking integration is on the roadmap.
Yes. The Agency plan covers 25 websites and 15,000 leads a month, with a separate workspace for each client, team members, and branded monthly reports you can send to your clients.
No. SourceXray works on its own. If you already use Google Analytics, it runs happily alongside it, and the channel names will feel familiar because they follow GA4’s default channel grouping.
Most sites are done in about five minutes: add the script (or the Google Tag Manager template or WordPress plugin), add hidden fields or turn on auto-capture, then send a test enquiry to see it arrive.
Set up SourceXray in five minutes and see the full source story behind every enquiry.