Measuring marketing ROI: UTMs, attribution models, offline conversions and a one-page KPI dashboard

To know which marketing produces clients, not just clicks, you need four things working together: consistent UTM tags on every link you control, a clear choice of attribution model in GA4 and Google Ads, closed deals sent back from your CRM to the ad platforms, and one page of KPIs that ends in revenue or signed clients. Since late 2023 GA4 offers only data-driven and last-click attribution, so the model choice is simpler than it was; the hard part is the CRM link, because for most service businesses the sale happens weeks after the enquiry, by phone or email, where no tag can see it.

Key takeaways

  • Google says that when you tag a URL you "should always use utm_source, utm_medium, and utm_campaign"; missing values show up as "(not set)". Write the rules down once and reuse them.
  • GA4's default channel rules read utm_medium: "email" goes to Email, "social" to Organic Social, a paid-style medium with a social source to Paid Social. A medium nobody planned for lands in Unassigned.
  • GA4 has three attribution options left; "The first click, linear, time decay, and position-based attribution models are no longer available as of November 2023."
  • Google Ads keeps a click ID for 90 days, so closed deals must be uploaded within 90 days of the click; enhanced conversions for leads can match on hashed email instead.
  • A KPI dashboard is useful when it fits on one page, updates itself and ends in a business number: enquiries, qualified leads, clients won, cost per client.

Why can't my analytics tell me which marketing works?

Because the analytics tool sees the visit and the enquiry, and the business result happens elsewhere. A typical path for a service business: someone clicks a LinkedIn post, comes back a week later from a Google search, fills in the contact form, has two calls with your team and signs a month later. GA4 sees two sessions and one generate_lead event. Your inbox and CRM see the enquiry and the contract. Nothing connects them unless you build the connection.

Three gaps cause most of the confusion:

  1. Untagged links. Newsletter links, social posts and partner links without UTM tags arrive as Referral, Direct or Organic Social with no campaign, so nobody can tell which campaign drove the visit.
  2. Credit rules nobody chose. GA4, Google Ads and Meta each apply their own attribution and their own lookback windows, so the same enquiry is claimed by more than one platform.
  3. No closed-loop data. The ad platforms optimise for form fills because they never hear which form fills became clients.

The rest of this article fixes them in that order. It assumes your GA4 events are already reliable; if not, start with our GA4 event plan for lead-generation sites.

What UTM rules should a business use?

Short ones, written down, applied to every link you control and never to links inside your own site. Google supports nine parameters; three are the minimum:

Parameter What to put in it Example
utm_source Where the link sits: the site, platform or list linkedin, newsletter, partner-name
utm_medium The kind of channel, using values GA4's channel rules recognise social, email, paid_social, cpc, referral
utm_campaign The campaign or offer, one name per campaign 2026-10-website-review
utm_content (optional) Which link or creative, when there are several hero-button, video-a
utm_id (recommended) A campaign ID, needed if you import cost data from other platforms c2026-10-01

Medium is the one to get right, because GA4's default channel grouping is built on it. Email matches a medium of "email|e-mail|e_mail|e mail"; Organic Social matches a medium such as "social" or "social-media" or a known social source; Paid Social needs a medium matching "^(.cp.|ppc|retargeting|paid.*)$" together with a social source; Referral matches "referral", "app" or "link". Anything else lands in Unassigned.

Three habits keep the data clean: all lower case (reports keep values exactly as written, so LinkedIn and linkedin end up on separate rows), hyphens instead of spaces, and one shared sheet or URL builder that everyone uses. Do not tag internal links between your own pages; a UTM on an internal link starts a new campaign attribution for the same visit. Leave Google Ads links untagged and let auto-tagging add the click ID.

Which attribution model should I use?

Use data-driven attribution in GA4 if you have the volume, and last click as a sanity check; there is little else to choose from now. Google's current list for GA4 Attribution reports is "Data-driven attribution", "Paid and organic last click" and "Google paid channels last click". The rule-based models went in 2023: Google Ads announced that first click, linear, time decay and position-based would stop being selectable from June 2023 and that conversion actions still using them would switch to data-driven from September 2023, and GA4 states they "are no longer available as of November 2023".

Two settings matter more than the model:

  • Lookback window. In GA4, the default is 30 days for acquisition key events (first_visit, first_open) and "for all other key events, the default lookback window is 90 days". If your sales cycle is longer than 90 days, the first touch is outside the window; that is a reason to record "how did you hear about us" on the enquiry form, not to trust any model further.
  • Channels that can receive credit. GA4 can give credit to "Paid and organic channels" or only to Google paid channels. Use paid and organic for your own reporting; otherwise SEO, email and referrals disappear from the picture.

Expect GA4, Google Ads and other ad platforms to disagree. Each counts conversions with its own rules and windows, and Google notes that "Google Ads conversions don't appear in standard Google Analytics reports". Pick one tool as the reporting source of truth for channel comparisons (GA4 or the CRM), and use each ad platform's numbers only for optimising inside that platform.

How do I connect closed deals back to the ads?

By sending the outcome of each lead back to the ad platform, which Google Ads calls offline conversion import. There are two ways to match a deal to an ad click:

  1. Click ID (GCLID). With auto-tagging on, the landing URL carries gclid (and gbraid or wbraid on some iOS traffic). Capture it with the enquiry, store it with the lead in your CRM, and upload a conversion when the lead becomes a client. The limit: "We retain the GCLID for only 90 days", so the deal must be uploaded within 90 days of the click. Google also recommends waiting 6 hours after a click before a scheduled upload.
  2. Enhanced conversions for leads. The website sends hashed, first-party data such as the email address from the lead form at the moment of submission; later, when you import the closed lead, "the provided hashed information is used to attribute back to the Google Ad campaign". Uploads matched this way must be within 63 days.

Both depend on consent where consent is required: on our own site click IDs are stored only after marketing consent, as our GTM and Consent Mode write-up describes. Start with one conversion action, "client won", uploaded weekly with a value if you can estimate one, set as primary, and keep form fills as a secondary conversion. The point is to teach bidding which enquiries matter.

For non-Google channels, GA4 can import campaign data "such as aggregated cost, clicks, and impressions" from other platforms; utm_source and utm_medium are required and utm_id is recommended, which is one more reason for consistent tags. That lets you calculate cost per enquiry by channel in one place.

What goes on a one-page KPI dashboard?

The numbers someone would act on, in funnel order, ending in money. For a service business:

Row Metric Source
Reach Sessions by channel (GA4 default channel group) GA4
Interest Key-event rate per session GA4
Enquiries Leads by channel, from the form and from calls GA4 and CRM
Qualified Qualified leads, and the qualification rate CRM
Clients Clients won and revenue or contract value CRM
Cost Spend by channel, cost per enquiry, cost per client Ad platforms, GA4 cost import
Search Clicks and impressions for target pages Search Console
AI search AI referral sessions and citation share GA4 and a monthly prompt panel

Google's free reporting tool, called Looker Studio from 2022 and renamed Data Studio in April 2026, connects to GA4, Google Ads, Search Console and Google Sheets, so CRM exports can sit in a sheet until you connect the CRM directly. It can email the report "with the report attached as a PDF file" on a schedule (at most once a day without the paid tier). Send it monthly, with three written lines at the top: what changed, why we think it changed, and what we will do next month.

Keep the AI search row even if the numbers are small; our guide to measuring AI search traffic explains how to collect them. And keep the dashboard to one page: a dashboard nobody reads is the same as no dashboard.


Impinge Solutions sets up campaign tagging, GA4 attribution, offline conversion import and KPI dashboards as part of its digital marketing and analytics work. Run our free website audit to check what your site can measure today.

FAQ

What is the minimum UTM tagging I need?

utm_source, utm_medium and utm_campaign on every link you control outside your own website, in lower case, with medium values that match GA4's channel rules (for example "email", "social", "cpc"). Google says those three should always be used, and missing values appear as "(not set)". Add utm_id if you import cost data from other platforms.

Can I still use first-click or linear attribution in GA4?

No. Google removed first click, linear, time decay and position-based models from Google Ads in 2023 and states they have not been available in GA4 since November 2023. GA4 now offers data-driven attribution, paid and organic last click, and Google paid channels last click.

Why do GA4 and Google Ads report different conversion numbers?

They count with different rules: different attribution models, lookback windows, conversion settings and treatment of consent. Google also notes that Google Ads conversions do not appear in standard GA4 reports. Choose one source of truth for comparing channels, and use each ad platform's own numbers only inside that platform.

How do I tell Google Ads which leads became clients?

Use offline conversion import. Capture the click ID with each enquiry and upload a "client won" conversion within 90 days of the click, or use enhanced conversions for leads, which matches on hashed form data and allows uploads within 63 days. Both require the right consent where consent is required.

What should a monthly marketing report contain?

One page: sessions by channel, key-event rate, enquiries, qualified leads, clients won, spend and cost per client, plus search and AI search visibility, with three lines on what changed, why, and what happens next. Build it in Google's free reporting tool (Data Studio, formerly Looker Studio) and schedule it to arrive by email.

Sources

Are you ready to partner with us?

Our good-natured team is waiting to hear your business requirements.

Book a free project call

Stay informed with our newsletter