- Write a one-page tracking plan before installing anything: which actions count as leads, how each is recorded and where it's reported.
- Verify Search Console as a Domain property. It's where you'll see the searches that bring people to your site.
- Install GA4 through Google Tag Manager, then build one event for each type of lead and mark those as key events.
- Test every event with a real form submission and a real tap on your phone number before you trust the numbers.
- The business should own every account. Agencies and freelancers get added as users.
For a service business, a useful setup has three parts: Search Console verified and linked to GA4, GA4 installed through Google Tag Manager, and your calls, forms and quote requests tracked as key events. Write down what counts as a lead before you install anything, then build and test one event for each. Most setups that don't work skipped that first step.
Here's the order I do it in, and the checks that catch the usual problems.
Start with a one-page tracking plan
List every action on the site that could turn into work. For most service businesses, that's a short list: a quote form, a contact form, a tap on the phone number, maybe an email link or a booking. For each one, write down four things:
- The event name you'll use in GA4
- What triggers it, such as a thank-you page loading or a tap on a phone link
- Any detail to record with it, such as the service or the page it came from
- Whether it counts as a lead, and so should be a key event
Use Google's names where they fit. GA4's list of recommended events includes generate_lead, for when someone submits a form or a request for information. Use your own names, like phone_click, for actions the list doesn't cover.
The detail you record is what makes the reports useful later. For AWPM Group, which runs three divisions from one website, I planned a single GA4 property with a division value on every lead event, rather than three separate properties. It's one setup, and each division can still see its own leads.
Set up Search Console first
Search Console is where Google shows you the searches that led to your site, with clicks, impressions and average position for each. GA4 doesn't have that data on its own.
- Add a Domain property. It covers every version of your site, with and without www, over http and https. Google's guide to adding a property explains the difference. A Domain property is verified with a DNS record, so you'll need access to wherever your domain is managed.
- Submit your sitemap in the Sitemaps report. Webflow, WordPress and most site builders create one for you.
- Check the Page indexing report after a few days to confirm your main pages are indexed. If they aren't, that's a bigger problem than tracking, and a technical SEO audit is the place to start.
Search Console keeps 16 months of performance data. Export a baseline when you set it up and before any redesign, so you have something to compare against later.
Install GA4 through Google Tag Manager
Create a GA4 property and a web data stream by following Google's setup guide. Then install a Tag Manager container on every page of the site and add your Google tag inside it, rather than pasting GA4's code straight into the site. With Tag Manager in place, you can add or fix tracking later without editing the site itself.
Two settings to change on day one:
- Data retention. Raise it to 14 months. Google's data retention page says the setting only affects explorations and funnel reports, but those are where you'll dig into leads later.
- Internal traffic. Define your office and team traffic and filter it out, so your own visits and test submissions don't show up as leads.
GA4's enhanced measurement records things like scrolls, outbound clicks and form interactions without extra setup. It's a useful start, but it treats a newsletter sign-up and a quote request as the same kind of form. Build your own events for anything that counts as a lead.
Build the lead events
Forms
The most reliable trigger is the page or message a visitor sees after a successful submission. A thank-you page with its own URL is the easiest to track. Avoid triggering on the button click alone, because it fires even when the form fails validation and nothing is sent.
Phone taps
In Tag Manager, trigger an event on any click where the link starts with tel:. This records a tap on your number, which shows intent but not a completed call. If most of your work starts with a phone call, a call tracking number goes further and logs the call itself, with its source.
Multi-step quotes and bookings
Track the final step, not the first. If you want to see where people drop out, track each step as a separate event, but only mark the last one as a lead.
Key events
In GA4, mark your lead events as key events. Be strict. A visit to the contact page or a scroll to the bottom of a service page isn't a lead, and counting it as one makes every report look better than the business feels.
Test before you trust it
Use Tag Manager's preview mode and GA4's DebugView while you test:
- Submit every form with test details, and check the event arrives with the right name and values.
- Tap each phone link on a real phone, not only in a desktop browser.
- Confirm the test lead also reaches the inbox or CRM it's meant to.
- Publish the Tag Manager container, then check the events in GA4's real-time report.
Tell the business before you test, so nobody calls back a lead named "Test Test".
Connect the pieces
Link Search Console to GA4. Google's guide to connecting Search Console to Google Analytics covers the steps. The link works one to one: one web data stream to one Search Console property. The Search Console reports in GA4 can only be combined with three GA4 dimensions: landing page, device and country. You'll still use Search Console itself for most query work.
Tag your Business Profile link. Add UTM tags to the website link on your Google Business Profile so those visits show up as their own source. I cover this on my Google Business Profile optimization page.
Link Google Ads, if you run it. Import your GA4 key events as conversions, so the ads are judged on real leads. For high-value jobs that close weeks later, capture the ad click ID in a hidden form field, so a signed contract can be traced back to the ad that started it.
A simple monthly report
Most owners don't need a dashboard. They need answers to a few questions each month:
- How many leads came in, split into calls and forms?
- Which sources sent them: organic search, the Business Profile, ads or referrals?
- Which pages did those leads start on?
- Which searches brought people to the site, and which pages get seen in search but rarely clicked?
That last question often points to the quickest wins. A page with plenty of impressions and few clicks usually needs a better title tag and meta description, not new content.
Mistakes I see most often
- GA4 installed twice, once in the site code and once through Tag Manager, so every visit counts double
- A staging or test site sending data to the live property
- Accounts owned by a former agency's or employee's Google account
- Search Console verified for one version of the site only, such as http without www
- Key events on page views instead of real submissions
- A setup nobody has opened since the day it went live
On ownership: the business should own GA4, Tag Manager, Search Console and the Business Profile. Anyone helping, me included, gets added as a user and removed when the work ends.
Where to start
Open GA4 and try to find how many leads you had last month and where they came from. If you can't get an answer in a minute or two, start with the tracking plan above.
If you'd rather hand it off, my analytics and conversion tracking service covers the plan, the setup and the testing. If you're about to relaunch your site, build tracking into the migration plan so the new site reports from day one. Or get in touch and tell me what you're trying to measure.