You've run the LinkedIn campaign. You've boosted the Facebook post. You've even paid for Google Ads. The platform tells you the campaign delivered 340 clicks. Your contact form shows 12 submissions. And your revenue from that campaign? You genuinely have no idea.
This is the standard experience for law firms, accounting practices, counselling centres, and consultants who run any form of paid or outreach marketing. The tools that report on campaigns — Google Ads, LinkedIn Campaign Manager, Meta Ads — tell you what happened before someone reached your website. They have no visibility into what happened after. And the contact form that sits at the end of the journey tells you even less.
The result is a black hole between your marketing spend and your actual client pipeline. You're spending money on campaigns you can't evaluate, chasing leads you can't prioritise, and making decisions based on click counts that tell you nothing about client quality.
Every major campaign platform gives you the same core metrics: impressions, clicks, click-through rate, cost per click, and conversion rate. "Conversion" typically means someone arrived on your website and either submitted a form or visited a specific page. That's where the platform's visibility ends.
Google Analytics extends this slightly. With proper UTM parameter setup — the tracking codes appended to your campaign URLs — GA4 can tell you which campaign drove a specific visitor, how long they spent on your site, and whether they reached your contact page. Still useful. Still fundamentally incomplete.
Here's what none of these tools can tell you:
A law firm running personal injury campaigns needs to know whether their Google Ads traffic produces cases worth taking — not just cases worth opening. A counselling practice needs to know whether their Facebook campaigns attract people ready to start immediately or people who'll ghost after the first contact. A consultant needs to know whether their LinkedIn outreach produces budget-holding decision makers or junior researchers doing preliminary market scans.
None of that information exists in your campaign platform. It doesn't exist in GA4. It lives entirely inside the conversation that happens between your website and your visitor — and most professional services firms have no mechanism to capture it.
A standard contact form collects a name, an email, and a free-text message. It tells you someone enquired. It tells you nothing about why they enquired, how urgently they need help, whether they can afford your services, or whether they're the kind of client you actually want.
More importantly for campaign measurement, a contact form submission is a binary event. Someone submitted or they didn't. There's no signal about intent strength, qualification level, or fit. When you're evaluating two campaigns — one that produced 8 form submissions from LinkedIn and one that produced 6 from Google Ads — you're comparing two numbers that tell you almost nothing about which campaign actually produced better clients.
This is why so many professional services firms end up making campaign decisions based on cost per submission rather than cost per qualified client. It's the only metric available — and it's a deeply misleading one.
The campaign platform counts clicks. The contact form counts submissions. Neither tells you which campaigns produced clients worth having. That measurement gap is what's costing you.
Campaign attribution done properly connects three things: the source of a visitor, the behaviour of that visitor on your website, and the quality of the lead they became. Most tools connect the first two. Almost none connect all three — because they have no visibility into lead quality.
The right attribution chain looks like this: A visitor clicks your LinkedIn ad. They land on your website. The campaign source is captured the moment they arrive — specifically the UTM parameters embedded in your campaign URL (utm_source=linkedin, utm_campaign=q2-personal-injury). They then engage with your site, answer a short set of qualification questions, and submit their contact details. By the time their contact reaches you, the system has already scored them against your qualification criteria and tagged that score against the originating campaign.
Now you know: LinkedIn campaign Q2 personal injury produced 6 contacts, of which 4 scored Hot and 2 scored Cold. Your Google Ads campaign produced 8 contacts, of which 2 scored Hot and 6 scored Cold. The Google campaign produced more volume. The LinkedIn campaign produced more quality. That's a decision you can actually act on.
Before discussing any specific tool, it's worth being clear about the underlying standard that makes campaign attribution possible: UTM parameters. These are short tags appended to the end of your campaign URLs that identify where traffic came from.
A UTM-tagged URL for a LinkedIn campaign might look like this:
https://yourfirm.com/contact?utm_source=linkedin&utm_medium=paid&utm_campaign=q2-personal-injury
When someone clicks that link, any analytics system reading UTM parameters can record that this specific visitor came from LinkedIn, via a paid campaign, specifically the Q2 personal injury campaign. This is not proprietary technology — it's an open standard used across every major analytics platform.
The critical insight is that UTM parameters work at the traffic level, not the lead level. GA4 reads them. Your contact form does not. So unless your lead qualification system is also reading UTM parameters and attaching them to each lead record, you're still losing the connection between campaign and client quality.
There are several approaches professional services firms use to try to track campaign effectiveness. Here's an honest assessment of what each actually delivers.
GA4 reads UTM parameters reliably and connects campaign source to on-site behaviour. You can see which campaigns drove visitors who spent more time on specific pages, who navigated to your contact page, and who completed a form submission (if you set up goal tracking correctly). The setup is not trivial for a non-technical user — correctly configuring GA4 goals, custom events, and UTM tracking requires either technical knowledge or agency help.
The hard limit: GA4 measures behaviour, not quality. A form submission is a conversion regardless of whether the person who submitted it is a viable client. GA4 cannot see inside your qualification process because it doesn't have one.
HubSpot's marketing attribution tools are genuinely sophisticated. They can track first-touch and multi-touch attribution across campaigns, connect deals back to their originating campaigns, and give you revenue attribution if your sales team closes deals in the CRM. This is close to what professional services firms actually need.
The problems: HubSpot assumes you have a sales team entering data, running deals through pipeline stages, and closing contacts as customers inside the CRM. Most law firms, counselling practices, and small consultancies do not operate this way. The revenue attribution only works if someone enters deal values manually. The setup and ongoing maintenance require either a dedicated marketing operations person or expensive agency retainers. And the cost — HubSpot's Marketing Hub with attribution starts at several hundred pounds per month — is prohibitive for a firm where one person handles both inbound and delivery.
Each ad platform reports on its own campaigns and tends to take maximum credit for any conversion that occurred after someone saw or clicked an ad. LinkedIn will attribute a form submission to LinkedIn even if the visitor came back via Google three days later. Meta does the same. Cross-platform attribution — understanding which platform actually drove a client across a multi-touch journey — is genuinely hard and usually requires a dedicated attribution tool.
For most professional services firms running simple campaigns (one LinkedIn campaign, one Google Ads campaign), platform-native attribution is adequate for basic spend decisions — but still has the fundamental problem of measuring clicks rather than client quality.
Many small firms do this: ask clients "how did you hear about us?" during intake, enter the answer into a spreadsheet, and try to derive campaign ROI from the resulting data. This is better than nothing and cheaper than everything else. It suffers from recall bias (clients often can't remember accurately), late entry (data goes in after the fact), and the persistent problem of no standardised quality signal — a £500 client and a £50,000 client look identical in the tally.
TailyX takes a different approach. Rather than trying to add attribution on top of a contact form, it replaces the contact form entirely with a guided qualification flow. When a visitor arrives via a tagged campaign link, TailyX reads the UTM parameters the moment they land, stores them, and attaches them to every subsequent event — including the qualification flow and the final lead record.
By the time a visitor completes the flow and submits their contact details, TailyX knows: which campaign brought them, which intent button they clicked, how they answered each qualification question, what their lead score is, and which band (Hot, Warm, Lukewarm, or Cold) they fall into. All of that is connected to the originating campaign source.
The analytics panel then shows you a campaign attribution table: Source / Campaign / Visitors / Contacts / Qualified. Not just "LinkedIn produced 6 submissions" — but "LinkedIn produced 6 contacts, 4 of whom scored Hot or Warm." That's the number that tells you whether to increase your LinkedIn spend or redirect it.
TailyX makes the most sense when the following conditions are true:
It's worth being equally clear about when TailyX campaign attribution is not what you need.
If you have very low traffic — fewer than 20 visitors per month — there isn't enough data to make meaningful campaign comparisons. The attribution data will be there, but a table showing "LinkedIn: 2 visitors, 1 qualified" and "Google: 3 visitors, 1 qualified" doesn't support statistically meaningful decisions. Fix the traffic problem first.
If you're running complex multi-channel campaigns with large budgets and need cross-platform attribution modelling, dedicated attribution tools like Triple Whale or Rockerbox are designed specifically for that problem. TailyX is not a media mix modelling tool.
If you need full CRM integration — campaign source flowing automatically into a deal pipeline, revenue attribution back to campaign — and you already have a sales team operating that CRM, HubSpot's attribution is more complete. TailyX is designed for the firm that doesn't have that infrastructure and isn't going to build it.
Getting campaign attribution working with TailyX requires three things, none of which involve writing code or touching your website's backend.
First, install the TailyX widget on the page your campaigns will send traffic to. This is one line of JavaScript, the same as adding any other widget to a WordPress site. Your developer or the person who manages your website can do this in under five minutes.
Second, tag your campaign URLs with UTM parameters before publishing them. TailyX includes a link builder in the analytics panel — you enter your page URL, source, and campaign name, and it generates the tagged URL to paste into your ad or email. No technical knowledge required.
Third, use the tagged URL as the destination in your campaign. When LinkedIn asks for the URL your ad should send visitors to, paste the tagged version. That's it. From that point, every visitor who clicks your ad and arrives at the widget page has their campaign source captured automatically and attached to their lead record when they complete the qualification flow.
The campaign attribution table in your analytics panel then updates in real time as data arrives. You don't need to set up goals, configure events, or hire an agency to interpret the results.
Most campaign reporting asks: which campaigns drove the most traffic and the most form submissions? That's the wrong question for a professional services firm. The right question is: which campaigns drove the clients I actually want to work with?
Answering that question requires connecting campaign source to lead quality — not just campaign source to click count. The contact form cannot do that. GA4 cannot do that. The ad platform certainly cannot do that. Only a system that sits inside the qualification conversation, reading both the campaign data and the visitor's answers, can connect those two things.
For a law firm deciding whether to increase their LinkedIn spend or shift budget to Google, that connection is the difference between a guess and a decision. For a counselling practice choosing between Facebook campaigns and email outreach, it's the difference between cutting a campaign that produces bad leads and doubling down on one that produces good ones.
Campaign tracking that stops at the click has been the standard for professional services firms for a decade. It doesn't have to be.