Was this helpful?

How marketing attribution works for a local business

For business ownersFor agencies and marketers
On this page

Attribution is the work of connecting a customer back to the marketing that brought them in. This page explains how that connection is made, where it usually breaks, and what a setup needs at each level. It is the model I build for clients, written so an owner can follow it and a marketer can implement it.

The question attribution answers

Here is a journey I see all the time. Someone searches for a plumber, clicks an ad, looks around, and leaves. Three days later they search the business by name, read a few reviews, and call. Two weeks after that the job is finished and paid.

Ask the ad account what happened and it will tell you somebody clicked. Ask the office and they will say the customer "found us on Google." Neither answer tells you whether the ad paid for itself. Attribution closes that gap: it follows the original click through the visit, the call, and the finished job, then reports the money back to the channel that earned it.

The six stages of a tracked lead

Every attribution setup, from a free Google Analytics install to a server-side system with its own database, does some version of these six jobs.

  1. ArriveSomeone lands on the site from an ad, a search, a post, or a link. The URL may carry clues such as gclid or utm_source.
  2. CaptureA tag on the site reads those clues, plus the referrer and landing page, before they disappear on the next click.
  3. PersistThe source is saved in first-party cookies, and ideally in a database, so it survives return visits.
  4. IdentifyWhen the visitor fills out a form or calls, the saved source rides along with their name, email, or phone number.
  5. CloseThe job is marked won in the CRM, with a dollar value attached.
  6. Report backThe won value is sent to Google Ads, Meta, and GA4 against the original click, so each platform learns what a good lead looks like.

Most setups I audit handle stages 1 and 2, skip 3 and 4, and never reach 6. That is why the ad account and the bank account tell different stories.

How each channel is identified

Every visit carries some evidence of where it came from. The job is to read the strongest evidence available and fall back gracefully when it is missing.

ChannelThe evidenceWhat trips it up
Google AdsA click ID in the URL (gclid, or gbraid and wbraid on some iOS traffic), plus UTM tags if you add themThe click ID is only in the URL on the first page view. If nothing saves it, it is gone by the second page.
Meta adsAn fbclid in the URL and UTM tags on the ad's destination linkAds without UTM tags show up as ordinary Facebook or Instagram referrals.
Organic searchA search engine referrer with no ad click IDSearch engines do not pass the keyword, so reporting stops at "organic search" unless you add Search Console data.
Google Business ProfileUTM tags you add to the website link on the profileWithout tags, profile clicks look like organic search, which hides one of the strongest local channels.
Email and SMSUTM tags on every linkUntagged links opened in email apps often arrive with no referrer and get counted as direct.
Referral sitesThe referring domain, such as a directory or a partner's siteSome apps and privacy settings strip the referrer.
DirectNo referrer, no tags, no click ID"Direct" is often a returning visitor whose first visit came from somewhere else. Saving the first source fixes most of this.
Phone callsA tap on a tracked phone link, or a tracking number that forwards to the business linePeople who dial by hand from a truck, a yard sign, or a saved contact leave no web trail.
Walk-ins and word of mouthNothing digitalRecord the answer to "how did you hear about us?" in the CRM so it still counts.

Why browser-only tracking undercounts

The default install, a Google tag or Tag Manager container running in the visitor's browser, loses data in three predictable ways.

Cookies expire early on Safari

Safari limits cookies created by JavaScript to seven days. If someone clicks an ad on an iPhone and calls on day eight, the saved click ID is already gone and the call looks like direct traffic. Cookies set by a server, in the HTTP response, on the business's own domain are not held to that seven-day limit. That is the main reason I run tracking through a server-side tagging container on a subdomain of the client's site.

Blockers stop the requests

Ad blockers and privacy browsers block requests to well-known tracking domains. A first-party endpoint on the business's own domain is blocked far less often. It is not invisible, and it still has to respect consent, but it stops losing honest data to generic block lists.

The source never reaches the CRM

This is the biggest leak, and it has nothing to do with browsers. The form emails the name and message to an inbox, someone types the lead into the CRM by hand, and the source is never recorded. Hidden form fields that carry the saved click ID and UTM tags into the submission fix this for forms. Tracking numbers, or a required lead source field in the CRM, fix it for calls.

First touch, last touch, and what I report

An attribution model is the rule that decides which touch gets credit when there were several.

First touch
Credits the channel that introduced the customer. Useful for judging what fills the top of the funnel, such as ads and organic search.
Last touch
Credits the final channel before the lead. Useful for judging what closes the gap, such as a branded search or a review site.
Data-driven
The default model in GA4 and Google Ads. It spreads credit using patterns in the account's own data, and it works best with plenty of conversions, which a small local account often does not have.

For small businesses I report first touch and last touch side by side, with revenue pulled from the CRM rather than from the ad platform. When the two columns disagree, the disagreement is the interesting part: it shows which channels start conversations and which ones finish them.

Levels of attribution, from basic to closed loop

You do not need everything on day one. Each level builds on the one before it, and each answers a better question.

LevelWhat it takesThe question it answers
1. EventsGA4 and Tag Manager recording form submissions, phone taps, and email clicks as key eventsHow many leads did the site produce, and from which channels?
2. Source in the CRMHidden form fields, a lead source on every CRM record, and UTM tags on every link you controlWhich channels produce leads that become customers?
3. First-party dataA server-side tagging container on the business's own subdomain, server-set cookies, and events stored in a database the business ownsWhat happened across return visits and devices, without Safari or blockers erasing it?
4. Closed loopWon jobs and their values sent back to Google Ads, Meta, and GA4 against the original clickWhich campaigns and keywords make money, and can the platforms optimize for that?

Level 1 is an afternoon of work, and the GA4 and Tag Manager quickstart walks through it. Level 4 is where ad budgets start getting smarter, covered in Send offline conversions back to Google Ads.

Who should own the data

Build every piece inside accounts the business owns: its own Google Analytics property, its own Tag Manager container, its own ad accounts, and a database it can export. When an agency owns the accounts, the history leaves with the agency. I set everything up under the client's ownership and keep my own access as a user the client can remove.

What's next

Rather have me do this for you?

I set up tracking that ties every call and form to the marketing that earned it, inside accounts you own, and report it in plain language.

See how I do it

Last updated 2026-09-13 UTC. Written by Tucker Shively.