John Builds

From GTM migration to missing UTM columns: getting ad attribution right as a solo founder

by

This morning I finished wiring Google Ads conversion tracking — trial_start firing server-side, bidding optimized for trials, the whole thing.

Then a new user signed up. And I couldn't tell you where they came from.

Not because GA4 didn't know. It did. But because our users table has no UTM columns.

GA4 can tell me "google / cpc." My database can't. So I can't:
- Calculate LTV by acquisition channel
- Know whether Google Ads or X Ads drove a signup
- Filter subscribers by source when making budget decisions

Step 1 (GTM): one place to manage all tracking pixels, no code deploys to add tags.

Step 2 (UTM): store utm_source, utm_medium, utm_campaign, gclid on the user record at signup. Capture from the URL on landing, pass it at magic link time, persist once, never overwrite.

If you're running any paid traffic without UTM columns on your users table, you're flying blind. Fix it before you spend another dollar.

How are you keeping track of ads -> utm -> subscription sources? Is there a better way than I described?

5 views

Add a comment

Replies

Best
Mostafa Hana

This is actually real. A lot of solo founders set up ads/conversions, see “trial started” in GA4, and think attribution is solved but if the UTM/gclid never gets saved to the user/subscription record, it’s basically useless when you need to make a budget decision.


The setup I like is:

- capture first-touch UTM on landing

- capture last-touch UTM before signup

- store gclid/fbclid when available

- attach it to the user record at signup

- attach it again to subscription/payment events

- never overwrite first-touch after creation


Then GA4 is useful for directional reporting, but the database becomes the source of truth for “which channel created revenue.”

I’m doing something similar now for my own SaaS launch because Product Hunt / Reddit / LinkedIn traffic all looks exciting at the top level, but without user-level attribution it’s hard to know what actually converts.

Good reminder that tracking is not just “add pixels” it’s product infrastructure.