Back to Blog

How to Track Which Marketing Channel Converts with UTMs

How to track which marketing channel converts: use a UTM convention, read first- and last-touch data in GA4, and double down on what drives signups and payers.

Anatolii Kharchuk
Anatolii KharchukCofounder, CPO · November 9, 2026

Key takeaways

  • Tag every off-site link with a consistent lowercase UTM convention so free tools like GA4 can tell your Reddit comments apart from your X threads.
  • Read both first-touch and last-touch attribution in GA4: the gap between them shows which channels start journeys and which ones close them.
  • Trust first-touch when deciding where to spend discovery effort and last-touch when fixing the page that closes signups.
  • Before killing an assist-only channel, check assisted conversions in GA4; keep it if its assisted conversions are at least half of a winning channel's conversions.
  • Check channel data weekly before 100 users and monthly after, acting when a channel drives 30%+ of first touches for two consecutive checks.

Tag every link you share with a consistent UTM convention, then read first-touch and last-touch signup data in free tools like Google Analytics 4 or Plausible to see which channel starts and which closes. This guide gives you the copy-paste UTM table and a simple decision rule for when channels overlap.

What does 'which channel converts' actually mean for a solo founder?

"Converts" means two different things before you have 100 users: a signup (someone tried the product) and a paying user (someone gave you money). Track them separately. A channel that fills your waitlist but never produces a card-on-file is telling you something, and you only hear it if you split the two numbers.

Channel-level attribution answers one question: for each place a visitor came from (Reddit, X, Product Hunt, a directory), how many signups and paying users did it produce? GA4 defaults to last-click attribution, meaning the final touch before conversion gets all the credit, though you can switch to first-click and other models in the reports (Google Analytics Help).

Why bother pre-revenue? Because your time is the budget. If Reddit drives signups and X drives payers, you need to know before you spend another 3 hours a day in the wrong tab. Pick a starting hypothesis with 5 pre-launch marketing signals to pick your first channel, then let the data confirm or kill it.

How do you tag channels with UTMs without breaking your data?

UTM tagging is the only way a free stack (GA4, PostHog free tier) can tell your Reddit comment apart from your X thread. Without consistent UTMs, GA4 lumps everything into "Direct" and you learn nothing.

The naming convention, copy-paste ready

Pick lowercase, underscore-free values and never deviate. Here is the convention:

utm fieldvalueexample
utm_sourcethe platformreddit, x, producthunt, hackernews
utm_mediumthe channel typesocial, community, email, referral
utm_campaignlaunch or sprint, no spaceslovable-launch, build-in-public-w1
utm_contentthe exact assetreply-thread, bio-link, dm

Copy-paste template:

?utm_source=reddit&utm_medium=community&utm_campaign=lovable-launch&utm_content=reply-thread

Use a plain spreadsheet tab to generate links. A typo in utm_source creates a new "channel" forever, so generate, never hand-type.

Three mistakes that split one channel into five rows

  1. Case and punctuation drift. Reddit, reddit, and r/SaaS become three sources in GA4. Fix: lowercase everything, one word per value.
  2. Campaign names with dates or vibes. utm_campaign=summer_final_v2 tells future-you nothing. Fix: name campaigns after the goal, like first-100-users.
  3. Tagging internal links. UTMs on your own nav or bio pages poison last-touch data with self-referrals. Fix: tag only inbound links you place off-site.

Get this right and the reading step becomes trivial; the channel signals worth acting on are covered in our breakdown of which growth channels to keep using.

Where do you read conversion data if you only use free tools?

You need two views, and GA4 gives you both without spending anything: the default Acquisition reports show last-touch, and Explorations show first-touch.

GA4: two reports, two attribution models

Open Reports → Acquisition → Traffic acquisition for last-touch: GA4 credits the final channel before the signup or purchase. Then go to Advertising → Attribution → Attribution paths (or build an Exploration) and switch the attribution setting to First click to see where people originally arrived. The gap between the two numbers is your real story. If Reddit shows zero last-touch signups but a strong first-touch count, it is starting journeys that other channels close, so cutting it would starve your pipeline.

The definitions of utm_source, utm_medium, and utm_campaign that feed these reports come straight from Google's Analytics documentation, which is worth 10 minutes of reading before you build any report. This is the same staging logic we use when solo founders pick marketing tools by stage: read the free data first, buy tools only when the reading gets tedious. Honestly, GA4's attribution-path UI is clunky and the model switch is buried in Admin settings, so expect 30 frustrating minutes on your first pass. That friction is the price of free.

No traffic yet? Track it in a spreadsheet

If you launched on Lovable last week and get single-digit daily visitors, GA4 sampling will mislead you. Log every signup manually: date, link clicked, channel, whether they paid. Twenty rows of hand-collected data beats a dashboard guessing at three.

When should you trust first-touch over last-touch attribution?

The decision rule in one sentence

Trust first-touch when you're deciding where to spend your discovery effort, and last-touch when you're deciding what to fix on the page that closes. Neither model is "the truth"; each answers a different question. First-touch tells you which channel introduces people to you. Last-touch tells you which surface gets them over the line.

Worked example: Reddit discovers, your homepage closes

Say you posted a build-in-public thread on r/SaaS. A vibe-coder sees it, Googles your product name two days later, lands on your homepage direct, and signs up. First-touch says Reddit. Last-touch says direct. Both are right: Reddit created the demand, your homepage closed it.

The practical read: if your last-touch report is dominated by direct traffic, that's not a channel, that's your discovery channels hiding behind "direct" in GA4. Check your first-touch data before concluding organic doesn't work, and track actual revenue signals rather than raw signup counts (https://heycatch.ai/blog/stop-counting-eyeballs-track-actual-revenue-signals).

A concrete rule: if first-touch and last-touch credit the same channel for a signup, that channel did all the work, double down there. If they differ, your discovery channel is working but your closing page needs attention. Solo founders with zero users should weight first-touch more heavily, because your bottleneck is getting strangers to hear about you at all.

How do you handle a channel that assists but never closes?

Some channels introduce you but never get the credit: someone discovers you on Reddit, then Googles your name and signs up through a direct visit. Last-touch says "direct," and Reddit looks like it converts zero users.

Check assisted conversions before you kill it. In GA4, open Advertising > Attribution and look at the Assisted Conversions column per channel. For a deeper path view, build a funnel in GA4 Explorations and see whether a channel shows up in the earlier steps.

Then apply one rule: keep an assist-only channel if its assisted conversions are at least half of some winning channel's conversions, and its cost is your time only. If it's below that, cut it. I use the same test on my own channels, and the honest answer is that assist-only channels are the hardest call in attribution because the data is noisier than the last-touch numbers you're used to reading.

How often should you re-check which channel converts?

Before 100 users, check weekly. Your sample is tiny, so one signup from a new subreddit can flip the picture, and you want to catch that while you still have time to double down on it.

After 100 users, monthly is enough. GA4's attribution reporting uses your default attribution setting across the whole reporting window, so short-term noise smooths out and the trend is what matters.

The threshold that forces a decision: if a channel drives 30%+ of first touches for two consecutive checks, treat it as your main channel and shift your hours there. If a channel stays under 10% for two months, stop posting there and reallocate the time. Two data points, not vibes.

What do you do once you've identified your converting channel?

Run the 90/10 rule: put 90% of new effort into the channel your attribution shows is closing, and keep 10% for one experiment elsewhere. If Reddit threads drive your first 100 users and LinkedIn only assists, that means writing more threads, not more posts everywhere.

Double down means doing more of the specific play that worked, not just "more marketing." If a build-in-public thread converted, repeat its format, its subreddit, its timing. Track each repeat with the same UTM convention so you can see whether the second and third attempt still convert.

Re-test a paused channel when your numbers change, not on a calendar. Good triggers: conversion rate drops for two weeks, the winning channel saturates (same people seeing you twice), or you ship something new that suits a different audience.

One honest gap: attribution tells you what converted, not why. If your winning channel suddenly stalls, check whether the message changed before blaming the channel.

FAQ

Do UTMs work on links I post inside Reddit comments or DMs?

Yes. Reddit strips some tracking parameters on outbound clicks, but UTMs in the destination URL still pass through in most cases, and DMs preserve them fully. If Reddit's redirect eats them, GA4 will log the visit as a reddit referral anyway, so you still see the source, just without your campaign detail.

What's the difference between source, medium, and campaign in a UTM link?

Source is the specific platform the visitor came from, like reddit or producthunt. Medium is the type of channel, like social, community, or email. Campaign is the effort the link belongs to, like first-100-users. Source tells you where, medium tells you what kind of place, and campaign tells you which push earned the signup.

How many conversions do I need before a channel's data means anything?

Treat any channel with fewer than 10 signups as anecdote, not evidence. Before 100 users overall, expect small samples and check weekly so a single good week in one subreddit registers. If a channel drives 30%+ of first touches across two consecutive checks, act on it even though the absolute count is low.

You shipped a product.

Let's get it earning.

Get started