If you're running more than one marketing channel — paid ads, email, organic search, social media — you've probably asked yourself this question: which one is actually working?
It sounds like a simple question. It isn't.
A customer might find you through a Google search in January, sign up to your email list, read three of your newsletters, click a Facebook ad in March, then finally buy after seeing a remarketing ad in April. Which channel gets the credit?
This is the attribution problem. Attribution just means: which marketing activity gets credit for a sale or a lead? It matters because your budget decisions depend on it. If you think Facebook ads are driving all your revenue but it's actually your email list doing the heavy lifting and Facebook is just closing deals that email already warmed up — and you cut your email budget — you've just cut the thing that's actually working.
For most small and medium businesses, you don't need a sophisticated or expensive tool to get clarity on this. You need the right data from the right places and a consistent way of reading it. That's what this guide covers.
This guide gives you a solid foundation in attribution — how to understand which channels are contributing, how to set up basic tracking, and how to make better decisions. Later guides in this series go deeper into individual channels: paid ads, organic search, email, and CRM data each get their own dedicated guide.
What "attribution" means in plain English: It's the process of figuring out which marketing channels contributed to a sale or lead. Think of it like giving credit where credit is due — but marketing journeys are rarely straight lines, so giving credit is harder than it sounds. The goal isn't a perfect model. It's a consistent, honest picture you can act on week after week.
Here's something most people don't realise: every ad platform — Google Ads, Meta, LinkedIn — reports its own results in the most favourable way possible. By default, they all use what's called last-click attribution.
What is last-click attribution?
Last-click attribution gives 100% of the credit for a sale or lead to the last marketing channel the customer interacted with before converting. So if someone clicked a Google ad right before buying, Google Ads gets all the credit — even if they found you through organic search three months ago, subscribed to your email list, and read five newsletters before that final click.
This makes some channels look more powerful than they are, and others look almost invisible.
Who gets overcredited: Channels that appear at the end of the customer journey — branded paid search (ads that show when someone searches your company name), Google Shopping ads, and remarketing ads (ads that follow people who have already visited your site). These channels often intercept people who were going to buy anyway.
Who gets undercredited: Channels that do the early work — organic search, content, email newsletters, social media. These channels introduce people to your business and build trust over time, but rarely get the final click. Under last-click reporting, they look like they contribute nothing.
The practical consequence: Many businesses cut back on email and building email lists or stop investing in organic content because the platform reports make it look like neither is driving revenue. Then they wonder why paid ad performance drops over the next six months — because they've cut the channels that were warming people up.
Last-click data is still useful. It tells you which channel closed the deal. The problem is using it as the only measure of a channel's value.
The last-click trap: If you make budget decisions based on last-click data alone, you will systematically underinvest in the channels that build awareness and trust — and overinvest in the ones that merely close deals that were already in progress. Email and organic search are the most commonly cut channels for this reason. They rarely get last-click credit, but they're often what makes the sale possible in the first place.
Because different channels play different roles in the customer journey, you can't use the same type of comparison for every channel metric. This is the same principle introduced in Guide #1 — using the right lens for each metric type.
Here's how it applies specifically to channel attribution:
Week-on-week (WoW): Use for metrics you directly control and change deliberately — like your ad spend or how many emails you sent this week. If your spend went up or down, that was your decision and WoW comparison is meaningful.
4-week rolling trend: Use for performance metrics like click-through rates, conversion rates, and cost per result. A single week is too noisy — ad auctions fluctuate, email open rates vary, one big client signing can distort a whole week. A 4-week trend filters the noise and shows you the real direction.
vs. target: Use for pipeline and revenue metrics — leads generated, deals closed, revenue attributed to each channel. These need to be read against what you planned to achieve, not just against last week. Last week might have been unusually good or bad for reasons outside your control.
Year-on-year (YoY): Use for channels where seasonal patterns heavily influence results — especially organic search and content. A drop in organic traffic in January compared to December doesn't mean your SEO is broken. It means it's January. YoY comparison removes that distortion.
New to these lenses? Guide #1 (How to build a weekly marketing report from scratch) covers the four comparison lenses in detail and shows you how to structure a spreadsheet that uses all four automatically. If you haven't read it, it's worth starting there.
Rather than relying on one number from one platform, look for five different signals across your channels. When multiple signals point in the same direction, you can be confident in your conclusion. When they contradict each other, that contradiction is itself worth investigating.
1
How many people converted from each channel
A conversion is a meaningful action someone takes on your website — filling in a contact form, making a purchase, booking a call, downloading a resource. The number of conversions coming from each channel tells you which channels are producing results, not just traffic.
Where to find it: GA4 → Reports → Acquisition → Traffic acquisition. Look at the Conversions column. This shows you how many key actions were completed by people who arrived from each channel — organic search, paid search, email, social, and so on. Read this as a 4-week trend, not just this week alone.
GA4 → Traffic acquisition
2
Which channel originally brought people to you
The first channel someone ever interacted with before becoming a customer is called their "first touch" or "original source." This tells you which channels are introducing people to your business — even if a different channel gets the last click.
Where to find it: In your CRM. HubSpot tracks this automatically in a field called "Original source." Other CRMs may call it something different or require you to set it up manually. This is one of the most valuable pieces of data you can track and it's often ignored.
CRM → Original source
3
What it costs to acquire a customer or lead from each channel
Cost per acquisition (CPA) is the total amount you spent on a channel divided by the number of leads or customers it produced. If you spent $500 on Google Ads and got 10 leads, your CPA is $50. Simple.
Track this as a 4-week rolling average, not week by week. Paid ad performance fluctuates week to week due to auction competition, creative performance, and seasonality. A single bad week doesn't mean the channel is broken. Three bad weeks in a row means something needs attention.
Ad platform + GA4
4
Which channels assisted conversions even if they didn't close them
An assisted conversion is when a channel contributed to a customer's journey but wasn't the last touchpoint before they converted. For example: someone reads your blog post (organic search), then later signs up after clicking an email — the blog post "assisted" the conversion even though email gets the last-click credit.
Where to find it: GA4 → Advertising → Attribution → Model comparison. Look at the difference between last-click conversions and assisted conversions for each channel. A channel with lots of assisted conversions but few last-click conversions is doing valuable upper-funnel work — introducing people to your business — even if the reports make it look inactive.
GA4 → Attribution
5
How quickly leads from each channel become customers
Some channels produce leads that close quickly. Others produce leads that take months to convert. This matters for cash flow — a channel that generates cheap leads that never close isn't actually cheap.
Where to find it: In your CRM, compare the time between a lead's original source and their close date, filtered by channel. This is more advanced and requires clean CRM data, but even a rough sense of which channels produce faster-closing leads is useful.Which channels produce leads that close fastest. Critical for cash flow.
CRM → Deal close date
You don't need all five signals on day one. Start with signals 1 and 3 — conversions by channel from GA4, and cost per acquisition from your ad platforms. Add signals 2, 4, and 5 as your tracking setup matures. Getting the basics right consistently is worth more than trying to track everything imperfectly.
This is a one-time setup that takes two to three hours. Once it's done, updating the numbers weekly takes about 30 minutes.
Make sure GA4 is tracking the right events as conversions
GA4 tracks a lot of things automatically — page views, scrolling, button clicks. But it doesn't know which of those things actually matter to your business. You need to tell it.
Go to GA4 → Admin → Events. Look through the list of events being tracked. Find the ones that represent meaningful actions for your business: a form submission, a purchase, a button click that books a call, a file download. Click the toggle next to each one to "mark as conversion."
Once marked, these will appear in your conversions reports and channel attribution data. Without this step, GA4 will report traffic from each channel but won't tell you which channels are producing the results you actually care about.
Understand what UTMs are and check yours are set up
A UTM (which stands for Urchin Tracking Module — don't worry about the name) is a short piece of code added to the end of a URL that tells GA4 where a visitor came from.
For example, a normal link to your website might look like this:
www.yoursite.com/contact
A link with UTM tracking looks like this:
www.yoursite.com/contact?utm_source=mailchimp&utm_medium=email&utm_campaign=march-newsletter
When someone clicks the second link, GA4 knows they came from your March newsletter sent via Mailchimp. Without the UTM, GA4 would record that visit as "direct" — meaning unknown source.
Why this matters: If your email campaigns don't have UTM parameters, all the traffic they generate shows up as direct in GA4. Your email channel looks like it drives almost no traffic. You might conclude email isn't working and cut it — when actually it's working fine but invisible because of missing UTMs.
How to check: Go to GA4 → Reports → Acquisition → Traffic acquisition. If you see a large "direct / (none)" row with significant traffic, some of your channels are likely missing UTMs. Check your last five email campaigns — do the links in those emails include utm_source, utm_medium, and utm_campaign? If not, that's where to start.
Most email platforms (Mailchimp, Klaviyo, HubSpot) have a built-in toggle to add UTMs automatically to all links. Turn it on if it isn't already.
Set up lead source tracking in your CRM
Your CRM is where you record leads, contacts, and customers. If it tracks where each lead originally came from — which channel, which campaign — you can see over time which channels produce leads that actually become customers.
HubSpot does this automatically in a field called "Original source." If you use a different CRM, check whether it has a similar field. If it doesn't, add a custom field called "Lead source" and make it mandatory when a new contact is created.
This data becomes more valuable over time. After six months you'll be able to see clearly which channels produce your best customers — not just your most leads.
Build a simple channel tracking spreadsheet
Create a new tab in your reporting spreadsheet (the one from Guide #1 if you've built it) called "Channels." Add one row per active marketing channel.
Columns to include:
Channel | Weekly spend | Conversions this week | CPA (4-week avg) | Leads in CRM (month) | vs. target | Notes
The Notes column is where you record context — a campaign that changed, a seasonal event, a landing page you updated. Numbers without context are just numbers. The Notes column is what lets you look back in three months and understand what was actually happening.
The UTM trap: If even one major channel is missing UTM parameters, its traffic shows up as "direct" in GA4 — making it invisible in your attribution data. One untagged email campaign to a list of 5,000 people can generate hundreds of website visits that GA4 records as unknown source. Before you draw any conclusions about which channels are working, check that your UTMs are set up correctly. Building attribution on incomplete data leads to confidently wrong decisions.
Each channel has different characteristics, different typical metrics, and different comparison lenses. Here's what to look for — and what not to overreact to.
Organic Search
Good: clicks growing on a 4-week trend, average position for your key search terms stable or improving. Don't read organic search week-on-week — Google's ranking algorithm changes constantly and single weeks are meaningless. From month 13 onwards, compare year-on-year to remove seasonal search patterns from the picture.Watch for: position dropping consistently over four or more weeks. That's a signal worth investigating — possibly a Google algorithm update affecting your site, or a competitor publishing better content on your key topics.
Google Ads
Good: cost per conversion trending downward or holding steady over 4 weeks, conversion volume at or above your monthly target. One expensive week is normal. Three expensive weeks in a row means something has changed — check whether your audience has saturated (the same people keep seeing your ad), whether a competitor has increased their bids, or whether your landing page has changed.Watch for: spend increasing while conversion volume stays flat or drops. That's your cost per acquisition rising — a clear signal to review what's changed.
Meta (Facebook and Instagram ads)
Good: return on ad spend (ROAS) above your break-even point on a 4-week basis. Meta ad performance is more volatile than Google — it's normal for individual weeks to vary significantly. Watch your ROAS trend rather than week-on-week movement.Watch for: click-through rate declining week after week. This is usually creative fatigue — your audience has seen your ads enough times that they've stopped paying attention. New creative is the fix.
Good: open rate above your list's average on a 4-week trend, click-through rate above 1.5% for B2B content, unsubscribes below 0.2% per send. One bad open rate week almost always means the subject line didn't land — not that your list is in trouble.Watch for: unsubscribes creeping up over three or more sends. That's a signal that something structural has changed — either you're emailing too frequently, the content has drifted from what people signed up for, or list hygiene is overdue.
Organic Social and Content
These are the hardest channels to attribute directly because the journey from a social post or a blog article to a sale is long and indirect. Don't try to read them on last-click conversion data — you'll always be disappointed. Instead look at assisted conversions in GA4 and check your CRM original source data to see whether these channels are introducing people to your business, even if they're not closing deals.
A note on GA4 data reliability: GA4 is accurate for channels where UTM tagging is consistent. It's less reliable for "direct" traffic, where some portion is actually from links shared in private messaging apps (WhatsApp, Slack, iMessage) — these strip UTM parameters when clicked, making the traffic appear sourceless. For revenue attribution specifically, your CRM's original source data is more reliable than GA4 because it captures where a customer first came from, not just the last session before converting.
Once you have four weeks of data, you can start making decisions with confidence. The key principle is the same as in Guide #1: don't react to single weeks. Look for patterns across multiple weeks before changing anything.
"Paid social ROAS dropped this week — pause the campaigns."
"Meta ROAS has declined for three consecutive weeks despite stable spend — review creative fatigue and test two new ad formats before scaling back budget."
The most common mistake is cutting a channel after one or two bad weeks. The second most common mistake is keeping a channel running for six months because stopping it feels like admitting it didn't work.
The solution to both is setting a decision rule before you start — and sticking to it. For example: "If cost per acquisition exceeds double our target for four consecutive weeks, we review the channel." Decide the rule when you're not under pressure. Follow it when you are.
This is an introduction to attribution — enough to get you from flying blind to having a consistent, honest picture of which channels are contributing to your business. Later guides in this series go deeper on individual channels: how to read your Google Ads data in detail, how to analyse your email performance properly, how to interpret organic search data, and how to get more from your CRM.
For now, the time cost of the setup and weekly maintenance described in this guide:
Every week after: 30 minutes —
That's roughly 25–30 hours per year of structured attribution work — before factoring in the time spent switching between platforms, reconciling conflicting numbers, and trying to remember what changed in a campaign three weeks ago.
If you've already built the weekly reporting spreadsheet from Guide #1, this adds one tab and about 15 extra minutes to your existing weekly routine. The data pull overlaps significantly — you're already exporting from GA4 and your ad platforms.
That's roughly 25–30 hours per year of structured attribution work — before factoring in the time spent switching between platforms, reconciling conflicting numbers, and trying to remember what changed in a campaign three weeks ago.
If you've already built the weekly reporting spreadsheet from Guide #1, this adds one tab and about 15 extra minutes to your existing weekly routine. The data pull overlaps significantly — you're already exporting from GA4 and your ad platforms.
Go to GA4 → Reports → Acquisition → Traffic acquisition. Look at the Session source/medium column. If you can see rows like "mailchimp / email" or "google / cpc" with traffic numbers next to them, your UTMs are working for those channels. If the majority of your traffic is showing as "direct / (none)" or "(not set)" — especially if you're running active email campaigns or ads — your UTMs are either missing or set up incorrectly.
Start with your email platform. Most platforms (Mailchimp, Klaviyo, HubSpot Email) have a setting to automatically add UTMs to all links. Check that it's turned on. Then check your most recent email campaign — click one of the links and look at the URL in your browser. If you see utm_source= in the URL, it's working.
You can still do basic attribution tracking without a CRM, but you'll be missing the most reliable piece of data — which channels produce leads that actually close. In the short term, track lead source manually in a spreadsheet: when a new lead comes in, note where they came from. Even an imperfect manual record is more useful than nothing. If you're getting enough leads that manual tracking feels impossible, that's a strong signal it's time to set up a CRM. HubSpot has a free tier that includes the original source tracking described in this guide.
Mostly, with caveats. GA4 is reliable for channels where UTM tagging is consistent — paid ads and email with UTMs turned on. It's less reliable for direct traffic, where some portion is actually from links shared in private messaging apps that strip tracking parameters. For organic search, read GA4 alongside Google Search Console — they measure slightly different things and together give a more complete picture. For overall revenue attribution, your CRM is generally more reliable than GA4 because it captures the full customer journey rather than just the most recent session.
They measure differently, so both can be correct. Google Ads counts a conversion every time someone who clicked one of your ads completes a conversion action within the attribution window — even if they came back to your site days later via a different channel. GA4 counts the session that directly preceded the conversion. For comparing channels against each other, use GA4 — it applies the same rules to every channel so the comparison is fair. Use Google Ads data when you're optimising within your paid search campaigns specifically.
For paid channels (Google Ads, Meta): at least six to eight weeks of consistent spend at a meaningful budget before drawing conclusions. The first few weeks are often a "learning phase" where the algorithm is optimising — results during this period are not representative of steady-state performance.
For organic search and content: allow six to twelve months before expecting to see clear revenue attribution. SEO is a long game and the relationship between a published article and a customer signing up can span many months.
For email: you can read performance signals within four sends, but list health trends (open rates, unsubscribe rates) take two to three months to interpret reliably.
First-touch gives credit to the first channel that introduced a customer to your business. Last-touch gives credit to the last channel they interacted with before converting. Neither is completely accurate — the truth is usually somewhere in between, with multiple channels contributing at different stages.
For small businesses, the most practical approach is to track both: use last-touch data (from your ad platforms and GA4) to understand which channels close deals, and first-touch data (from your CRM original source field) to understand which channels introduce people to your business. When the two tell very different stories about the same channel, that's a signal worth investigating.
Attribution is much simpler when you have one channel — everything is coming from that source. This guide is most relevant when you're running two or more channels simultaneously and need to understand how they interact. If you're currently single-channel, use this guide to understand attribution before you add a second channel, so you have proper tracking in place from the start. It's much easier to set up tracking when you add a channel than to retrofit it after the fact.
Attribution is hard to do manually at scale
Everything in this guide works. With proper UTM tagging, a well-configured GA4, and a CRM that captures where leads originally come from, you can build a reliable picture of which channels are contributing to your revenue — and make better budget decisions because of it.
The friction is the ongoing maintenance. Pulling data from four or five platforms each week, reconciling numbers that don't always agree, keeping your UTMs consistent across every campaign, and making sure your CRM data stays clean takes real discipline. As your channel mix grows, so does the complexity.
Zynop reads your platform data every week, applies the right comparison lens to each channel's metrics automatically, and surfaces a clear picture of what's driving revenue — alongside 3–5 specific actions. No pulling, no reconciling, no wondering whether the number you're looking at is actually reliable.
If you're not ready for that yet, this guide gives you what you need to do it yourself. The next guide in this series goes deeper on paid channel performance — how to read your Google Ads and Meta data in detail, what the numbers actually mean, and how to know when to adjust versus when to be patient.