SEO, GEO & marketing · 10 min read
How to see which marketing actually brings customers
The short answer
To see which marketing brings customers, tag every link with UTM parameters, track calls with source-specific numbers, and save each lead's first and latest source in your CRM. Then count customers and revenue by source, not clicks. A simple first-touch and last-touch view in a weekly report beats an advanced model built on messy data.
- Published
Key takeaways
- Your CRM, not an ad platform, should be the source of truth, because it is the only place where a lead becomes a customer with revenue attached.
- Always use utm_source, utm_medium and utm_campaign, in lowercase and from one shared naming sheet; Google Analytics treats 'Meta' and 'meta' as different values.
- Phone calls are often invisible to analytics, so give each channel its own tracking number or use Google's forwarding numbers for ads.
- Store both the first and the latest source on every lead: first-touch shows what introduces people, last-touch shows what closes them.
- Google Analytics has offered only data-driven and last-click models since November 2023, which is one more reason to keep a simple first and last-touch view in your own records.
On this page
- What is marketing attribution, and why does a small business need it?
- How do UTM parameters work?
- What should your UTM naming template look like?
- How do you track phone calls back to marketing?
- Where should lead source live in your CRM?
- Which attribution model should you use: first-touch, last-touch or multi-touch?
- How can you measure marketing while respecting privacy?
- What should a weekly marketing report include?
- How do you make the CRM your source of truth?
What is marketing attribution, and why does a small business need it?
Marketing attribution is working out which marketing deserves credit for a lead or a customer. Google Analytics defines it as "the act of assigning credit for important user actions to different ads, clicks, and factors along the user's path." For a small business, it comes down to one question answered reliably for every customer: where did this person come from?
Without that answer, budgets follow opinions. Each ad platform reports the conversions it can link to its own ads, so Google and Meta can both claim the same customer. Analytics misses phone calls, walk-ins and word of mouth. And none of those tools knows which leads actually paid you.
Reliable attribution has three layers:
- Tags on the way in. Campaign parameters on every link and a distinct phone number for each channel, so each visit and call carries its source.
- Capture at the moment of contact. Forms, calls and chats save that source with the lead.
- One record that follows the lead to revenue. Your CRM keeps the source on the lead as it moves through your sales pipeline to won or lost.
Get those three right and the reporting is easy. Get them wrong and no attribution model can rescue the data.
How do UTM parameters work?
UTM parameters are short tags added to the end of a link that tell your analytics, and your CRM if you capture them, where a visitor came from. When someone clicks a tagged link, the tags travel with them to your site.
Google Analytics recognizes these parameters:
| Parameter | What it records | Example values |
|---|---|---|
| utm_source | The specific site or sender | google, facebook, newsletter |
| utm_medium | The type of channel | cpc, paid_social, email, sms |
| utm_campaign | The campaign, offer or promotion | 2026-10_spring-cleaning |
| utm_content | Which ad, link or creative was clicked | video-a, header-button |
| utm_term | The paid keyword | emergency-plumber |
| utm_id | A campaign ID, if you upload campaign data | 1042 |
A tagged link looks like this: https://www.example.com/quote?utm_source=newsletter&utm_medium=email&utm_campaign=2026-10_autumn-offer
Google's guidance is to always use utm_source, utm_medium and utm_campaign. Its best practices add four rules worth adopting:
- One value per platform. Use one source value for each platform, such as facebook or instagram, every time.
- One value per channel. Use one medium value for each type of channel, such as paid_social.
- Exact campaign names. Use one name per campaign so a single effort doesn't split into several rows.
- Lowercase, always. Values are case-sensitive: Google gives the example that "Meta" and "meta" are treated as different values.
Why medium matters most. Google Analytics sorts traffic into default channels using rules that mostly read the medium. Email needs a source or medium of "email." Paid social needs a social source and a medium such as cpc or anything starting with "paid." SMS needs "sms" exactly. A medium Google doesn't recognize, such as "qr," lands in "Unassigned," which you can fix with a custom channel group. Two more rules: Google Analytics now has an AI Assistant channel for visits from tools such as ChatGPT, Gemini and Copilot, and it counts clicks from Google's AI Overviews and AI Mode as Organic Search.
Three habits that prevent messy data:
- Keep the naming sheet in one shared place and build every link from it.
- Never tag links between pages on your own site. It makes your own website look like the source of the visit.
- Use your ad platforms' dynamic values where they offer them, so tags fill in automatically and can't be mistyped.
What should your UTM naming template look like?
Copy this template, adjust the campaign names, and make it the only way links get tagged. The last column shows the Google Analytics default channel each row should land in, based on Google's published channel rules.
| Channel | utm_source | utm_medium | utm_campaign pattern | utm_content | Google Analytics channel |
|---|---|---|---|---|---|
| Google Search ads | google (keep auto-tagging on) | cpc | yyyy-mm_service_search | ad group | Paid Search |
| Microsoft Bing ads | bing | cpc | yyyy-mm_service_search | ad group | Paid Search |
| Facebook ads | paid_social | yyyy-mm_offer_audience | ad name | Paid Social | |
| Instagram ads | paid_social | yyyy-mm_offer_audience | ad name | Paid Social | |
| Organic social posts | facebook, instagram, linkedin | social | yyyy-mm_topic | post date | Organic Social |
| Newsletter | newsletter | yyyy-mm_newsletter | link position | ||
| Automated email sequence | crm | sequence-name | step number | ||
| Text messages | sms | sms | yyyy-mm_purpose | none | SMS |
| Google Business Profile website link | organic | gbp_location-name | website-button | Organic Search | |
| Partner or referral link | partner-name | referral | partner-program | page or placement | Referral |
| Affiliate link | affiliate-name | affiliate | affiliate-program | placement | Affiliates |
| QR code on print, signs or vehicles | flyer, van, sign | qr | yyyy-mm_campaign | placement | Unassigned (add a custom channel group) |
Naming rules for the sheet: lowercase only; hyphens between words; an underscore between the parts of a campaign name; dates as yyyy-mm; no spaces, accents or personal data in any tag.
Google Ads works a little differently. Auto-tagging, on by default for new accounts, adds a Google Click Identifier (GCLID) to each ad click. Google says it is needed to track conversions on all browsers and to import offline conversions, and that Google Analytics gives it priority over manual tags. Keep it on, and add UTMs to Google Ads only if your CRM needs to read the source from the URL.
How do you track phone calls back to marketing?
Give each channel its own phone number and record which number each call came in on. Calls are often a business's most valuable leads and the ones analytics never sees.
For Google Ads. Call reporting assigns a Google forwarding number to your call ads and call assets, so you can see call duration, start time and whether the call connected, and count calls above a length you choose as conversions. For calls from your website, a short code snippet swaps the number on your page for a Google forwarding number for ad visitors, so calls can be tied to the keyword and campaign. Google notes forwarding numbers are only available in certain countries.
For everything else. Call tracking services offer two approaches:
- Static numbers per channel. One number on the vehicle, one on the flyer, one in the directory listing. Simple, and ideal for offline marketing.
- Dynamic number insertion. Your website shows a different number from a pool depending on how the visitor arrived, so calls can be matched to the campaign, much like a UTM.
Keep one main number on your Google Business Profile and directory listings so your business details stay consistent; our local SEO guide explains why. Use tracking numbers on your website, ads and offline campaigns.
Ask as well. Have whoever answers record "How did you hear about us?" in the CRM at the first conversation. Self-reported answers are imprecise, but they catch word of mouth, podcasts and conversations that no tag can see.
Many call tracking tools also record calls. Recording and consent rules vary by state and country; see our guide to AI phone calls and recording consent for the general picture.
Where should lead source live in your CRM?
On the lead record itself, in fields that are filled in automatically and never left blank. The CRM is the source of truth because it is the only system where a lead becomes a customer and revenue is recorded.
Set up these fields on every lead or contact:
| Field | How it is filled | Rule |
|---|---|---|
| Original source | Channel of the first recorded visit, call or contact | Set once, never overwritten |
| Original source detail | Campaign, ad or referring site | Set once |
| Latest source | Channel of the most recent visit or contact before converting | Updates on each new conversion |
| Self-reported source | "How did you hear about us?" | Required at first contact |
| Lead type | Form, call, chat, walk-in, referral | Automatic where possible |
| Stage and outcome | New, qualified, booked, won, lost | Updated by the team |
| Revenue | Value of the first sale and later sales | Entered when won |
Off-the-shelf CRMs often provide some of this. HubSpot, for example, sets Original Traffic Source and Latest Traffic Source automatically, with values such as organic search, paid search, paid social, email marketing, referrals, AI referrals and offline sources, plus two drill-down fields for detail. HubSpot notes that ad blockers can block its tracking cookies and affect these values.
To fill the fields from your website, add hidden fields to every form that read the campaign tags and referring site at the moment of submission. Calls take their source from the tracking number dialed. Chats and messages take it from the channel and the page.
If your tools can't hold first and latest source, or calls, forms and revenue live in separate systems, the fix is usually a better lead management system, off the shelf or custom software built around how you sell. Our comparison of custom CRMs and HubSpot covers that choice.
Which attribution model should you use: first-touch, last-touch or multi-touch?
Store first-touch and last-touch on every lead, and report them side by side. That shows what introduces customers and what closes them, without needing large data volumes or specialist tools. Move to multi-touch only when most customers have several recorded touches and you have enough of them to see a pattern.
| Model | How it gives credit | It answers | Blind spot |
|---|---|---|---|
| First-touch | All credit to the first recorded touch | What introduces new customers? | Ignores everything that persuaded them later |
| Last-touch | All credit to the final touch before converting | What gets people to act? | Ignores what made them aware |
| Linear | Equal credit to every touch | Which channels appear in journeys at all? | Treats a glance and a decision the same |
| Position-based | Most credit to first and last touches, the rest shared | Both introduction and close | Weights are a guess you choose |
| Data-driven | An algorithm assigns credit from converting and non-converting paths | Which touches change the odds of converting? | Needs volume; hard to inspect |
What Google Analytics offers. Google Analytics provides three models in its attribution reports: data-driven, paid and organic last click, and Google paid channels last click. Google removed the first click, linear, time decay and position-based models in November 2023. Its data-driven model compares the paths of people who converted and people who didn't, and Google says conversions can be reattributed for up to 7 days afterward. All its models exclude direct visits from credit unless the whole path was direct.
That is useful inside Google Analytics, but it only sees website journeys. Calls, walk-ins and referrals aren't in it, which is why your CRM needs its own first and last-touch fields.
How can you measure marketing while respecting privacy?
Collect the least data that answers your question, and lean on information people give you directly. Attribution built on your own forms, calls and CRM depends far less on tracking people across the web.
Expect gaps from browsers and blockers. HubSpot notes ad blockers can block its tracking cookies. Meta says data sent through its Conversions API, from your server or CRM, is less affected by browser loading errors, connectivity issues and ad blockers than its pixel alone. Google's enhanced conversions for leads works similarly: your site sends a hashed version of details the lead gave you, and you later upload the outcome from your CRM.
Consider cookieless analytics. Some privacy-focused tools count visits without cookies. Plausible, for example, says it uses no cookies or persistent visitor identifiers, doesn't store raw IP addresses, and counts daily unique visitors with a hash whose salt is rotated and deleted every 24 hours. Tools like this give you sources, campaigns and pages in aggregate, but they are not designed to follow one person over weeks. That job belongs to your CRM, once someone has chosen to contact you.
Know that the rules vary. In the UK, for example, the Information Commissioner's Office describes a "statistical purposes" exception for storing or accessing information on a device solely to collect statistics that improve your service, provided you give clear information and a simple, free way to object. It says that exception does not apply to online advertising purposes. Other countries and US states have their own rules.
What should a weekly marketing report include?
One page, built from the CRM, with the same numbers every week. If a number can't be traced back to individual leads, leave it off.
| Section | Metric | Split by | Comes from | This week | Last week | 4-week average |
|---|---|---|---|---|---|---|
| Spend | Spend | Channel | Ad platforms, invoices | |||
| Leads | New leads | Original source and latest source | CRM | |||
| Efficiency | Cost per lead | Channel | Spend ÷ leads | |||
| Pipeline | Qualified or booked leads | Original source | CRM | |||
| Results | Customers won | Original source and latest source | CRM | |||
| Results | Revenue won | Original source | CRM | |||
| Efficiency | Cost per customer | Channel | Spend ÷ customers | |||
| Speed | Median time to first response | Lead type | CRM | |||
| Data quality | Leads with unknown source | All | CRM |
End the report with three questions: what changed, why, and what you will do differently next week. Add a monthly section for slower numbers: Google Analytics channels (including AI Assistant), Google Business Profile actions and Search Console impressions.
Watch the unknown-source line closely. If it rises, a form, tag or tracking number has broken, and every other number on the page becomes less reliable.
How do you make the CRM your source of truth?
Work through this checklist once, then spot-check 10 recent leads every quarter to confirm each has a correct source.
- Every lead, from forms, calls, chats, walk-ins and referrals, lands in one CRM
- A shared UTM naming sheet exists, in lowercase, and every link is built from it
- Every paid ad uses UTM parameters or platform auto-tagging, consistently
- The website link on your Google Business Profile is tagged
- Website forms capture campaign tags and referring site in hidden fields at submission
- Each offline channel has its own tracking number, mapped to a source in the CRM
- "How did you hear about us?" is required at first contact
- Original source is set once and never overwritten; latest source updates on each conversion
- Stages, won or lost outcomes and revenue are recorded for every lead
- Booked and won outcomes are sent back to Google Ads and Meta for optimization
- The weekly report is built from the CRM, not from ad platform dashboards
- The share of leads with unknown source is tracked and falling
- Your privacy notice describes your analytics and tracking accurately
Worcia's digital marketing service sets up tagging, call tracking and CRM-based reporting as part of every campaign, and our lead source attribution use case shows how the pieces connect.
Sources
- URL builders: Collect campaign data with custom URLs. Google Analytics Help, October 17, 2026.
- Default channel group. Google Analytics Help, October 17, 2026.
- Get started with attribution. Google Analytics Help, October 17, 2026.
- About auto-tagging. Google Ads Help, October 18, 2026.
- About call reporting. Google Ads Help, October 17, 2026.
- Tracking calls to a phone number on a website. Google Ads Help, October 17, 2026.
- About enhanced conversions for leads. Google Ads Help, October 17, 2026.
- About Conversions API. Meta Business Help Center, October 17, 2026.
- Understand Original and Latest traffic source properties. HubSpot Knowledge Base, August 4, 2026.
- Plausible: GDPR, CCPA and cookie law compliant web analytics (data policy). Plausible Analytics, October 17, 2026.
- What are the exceptions? (Guidance on the use of storage and access technologies). Information Commissioner's Office, October 17, 2026.
Hashim, Founder & CEO
Hashim founded Worcia and leads its engineering: the architecture behind every website, app, CRM, AI agent and automation Worcia builds. How we research and write.

