If you have ever compared a platform's reported conversions with your own sales and found they do not match, you have met the attribution problem. Browsers limit tracking, visitors decline consent, people switch devices, and a good share of word-of-mouth never arrives with a referrer attached.
The answer is not a better tool that promises to see everything. It is a measurement approach that accepts the gaps and still lets you choose where the next pound or dollar goes. That approach is built from a few unglamorous parts: data you own, consistent tagging, blended numbers, and the occasional experiment.
Treat platform reports as opinions
Each ad platform reports on itself, with its own attribution window and its own incentive to claim credit. Two platforms will happily claim the same sale. Analytics reports undercount because they lose visitors who decline tracking. Neither is lying. Each is looking through a different keyhole.
The practical stance is to read platform numbers for direction inside a channel, such as which ad beats which, and to read your own records for the truth about the business: orders, booked appointments, signed contracts, revenue.
Build the first-party spine
First-party data means information you collect directly and can match to real outcomes. For most businesses this is a short list, and the value is in capturing it reliably rather than in capturing a lot.
Ask a simple question on every form or at checkout: how did you hear about us? A free-text field is better than a dropdown for finding channels you had not thought of. It is imperfect and still frequently more honest than a click path, particularly for referrals, podcasts and communities.
- Store the original source, medium and campaign with every lead or order in your CRM or database, not just in analytics
- Capture the self-reported answer to “how did you hear about us” alongside the tracked source
- Record the outcome in the same place: qualified, won, lost, revenue
- Use server-side or consent-aware tagging where your legal setup allows it, and respect declined consent rather than working around it
UTM hygiene is boring and worth it
UTM parameters are the labels you attach to links so analytics knows where a click came from. They fail through inconsistency: “Facebook”, “facebook” and “fb” become three sources, and email campaigns arrive as “direct” because someone forgot to tag them.
Agree one naming convention in a shared document, in lower case, with a fixed list of allowed values for source and medium. Use a spreadsheet or builder to generate links so nobody types them by hand. Tag every link you control: email, newsletters, social bios, QR codes, partner placements, PDFs.
If a channel shows up as direct or unassigned, the problem is usually tagging, not the channel.
Use blended metrics for the big picture
When channel-level attribution cannot be trusted, step back and measure the whole. Blended cost per acquisition is total marketing spend divided by total new customers in the same period, regardless of which channel got the credit. Blended revenue against total spend works the same way.
These numbers are blunt. They will not tell you which ad worked. They will tell you whether the overall machine is getting cheaper or more expensive to run, and they cannot be gamed by platform double-counting. Track them monthly, set against changes you made, such as budget shifts, new channels and pauses.
Look at lag as well. Long sales cycles mean this month's spend shows up as next quarter's customers. Compare against your typical time from first contact to sale, or you will cut things that are working.
Run holdouts when the stakes justify it
The cleanest answer to “does this channel cause sales” is to switch it off for a defined group or place and see what happens. A holdout can be geographic, such as pausing branded search ads in one region, or temporal, such as pausing a channel for a few weeks while holding everything else steady.
It is not always practical. Small businesses with little volume will see mostly noise, and pausing a channel carries a real cost. Use holdouts on your largest spend lines, keep the test simple, and write down in advance what result would change your decision. A test without a pre-agreed decision rule becomes an argument afterwards.
Measurement should end in a decision. If a number would not change what you do, stop reporting it.
Takeaways
- Platform reports are directional within a channel, not a record of your business.
- Store source and outcome in your own CRM or database and ask customers how they heard of you.
- One lower-case UTM convention, generated by a builder, removes most direct and unassigned traffic.
- Blended cost per acquisition shows whether the whole system is improving.
- Use simple holdouts on large spend lines, with a decision rule written beforehand.
Related services


