BACK TO BLOG
TOOL HOW-TOOctober 26, 20267 min read

How to Use Fathom Analytics to See Which Campaigns Bring Signups

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-10-26

The short answer: a site under 100,000 pageviews a month can count signups per campaign on Fathom's $15 plan, provided the signup events fit inside that same 100,000, because Fathom meters events like pageviews (pricing page, checked on 26 October 2026). The steps: install the script beside GA4, fire a named event on the signup form, count per visitor, tag ads and emails with UTMs, set a Final URL suffix in Google Ads, filter by campaign and save the view, read the AI tab, ask Luna for the weekly breakdown, and hold the result against your CRM.

Disclosure: I may earn a commission through some links on this site. It does not change what this page says.

Three things to settle first:

  1. The allowance, events included. For example, 78,000 pageviews plus 1,900 signups is 79,900, inside the $15 tier; add a click event on every outbound link that fires 24,000 times and the total, 103,900, belongs on the $25 tier for 200,000, per the pricing page.
  2. The signup list you already trust. Your CRM or billing system logs every signup with a date and a source field. That list is the yardstick for step 9, and it costs nothing.
  3. The reading that says it worked. Signups per campaign in Fathom beside signups per first-touch source in the CRM, for the same seven days. They will part company for campaigns whose visitors come back on a later day, and that gap is the finding, not an error.

Fathom gives you one dashboard and no report builder, which is the appeal. The work is deciding what counts as a conversion and making every link say where it came from. Plans and rivals are in the Fathom Analytics glossary entry.

Before you begin

  • A Fathom site. The 7-day trial asks for a card up front (pricing page).
  • Access to the site's head, or a CMS integration. Fathom has installation guides for WordPress, Webflow, Shopify, Framer, Wix, Google Tag Manager and more (integrations).
  • Edit rights in Google Ads and your newsletter tool.

1. Install the script beside GA4

Paste the embed script into the head of the site, or use your platform's integration, and leave Google Analytics in place for now, as the switching guide recommends. Visit a page, then check the realtime count. Events are recorded on local and staging copies too, so open Settings, your site, Firewall, Domains and allow only the live domain (firewall settings).

2. Send a signup event

If you can edit the form's HTML, add onsubmit="fathom.trackEvent('signup');" to the form tag. If you cannot, give the form an ID and attach a submit listener after it, as the form tracking guide shows. Pick the name with care: the events guide says an event cannot be renamed once it reaches the dashboard. For a paid signup, pass _value in cents and set the site's default currency.

3. Count conversions per visitor

Out of the box Fathom divides event completions by pageviews. In your site's settings, switch the Event Conversion Formula to Site visitors, so the rate reads as signups per person (events guide).

4. Tag every link you control

Use one utm_campaign value everywhere for a campaign and vary utm_source and utm_medium by channel, as in measure a marketing campaign. Keep names and email addresses out of UTM values: the UTM guide treats personal data in a URL as a breach of the terms that can cost you the account.

5. Add a Final URL suffix in Google Ads

In Google Ads, open Campaigns, the Settings tab, the campaign, Additional settings and Campaign URL options, then paste a suffix such as utm_source=google&utm_medium=cpc&utm_campaign=brand_search&utm_term={keyword}&utm_content={matchtype}. The Google Ads guide explains why you type the campaign name yourself: ValueTrack has no tag for it. It also warns that an ad-level suffix overrides the campaign one, so keep them identical or clear the ad's.

6. Filter by campaign and save the view

Click a campaign in the UTM box. The Events box now counts signups from visits that arrived through it, even when the signup happened on another page. Save the filter as a view named after the campaign (measure a marketing campaign).

7. Read the AI tab

Open Referrers and switch to AI. Visits from ChatGPT, Claude, Perplexity, Gemini and others appear by tool, and clicking one filters the dashboard to the signups those visitors completed (AI tab changelog). An assistant that sends neither a referrer nor a tag still lands in Direct.

8. Let Luna draft the weekly breakdown

Luna is the assistant behind the round button at the bottom right. Ask "Where do my signups come from?" and it requests permission before reading any stats; once you click Allow, it finds the signup event and splits it by referrer, UTM source or entry page, in a table you can download as a CSV (Luna changelog).

The human check: Fathom's own announcement says AI can be wrong. Before the table goes into a report, open the saved view from step 6 and confirm two of its figures by hand. If they disagree, click Escalate to a human; the support team sees the whole chat.

9. Hold it against the CRM

Under Settings, Emails, add a weekly report; weekly reports go out on Mondays (email reports). Each Monday, set Fathom's signups per campaign beside the CRM's new signups by first-touch source for the same seven days, one row per campaign. Keep the sheet: a month of rows beats any single week.

Mistakes Fathom's guides warn about

  • Testing from a browser that already visited today. Fathom uses first-touch attribution for the visitor-day, reset at 00:00 UTC, so a test click on your own ad is credited to your earlier visit. Use a fresh private window (Google Ads guide).
  • Test signups in the live numbers. Block local and staging environments before you start testing the form (events guide).
  • Two utm_source values on one URL. The Google Ads guide says not to stack them. Check sitelinks too: they pick up the campaign suffix unless they carry their own tagged Final URL.
  • Expecting GA4's events in the import. The importer brings daily traffic history and no events, so your signup history starts the day the Fathom event goes live.

Where the count stops

Fathom credits a signup to the campaign a visitor arrived through that day. A buyer who clicks a LinkedIn ad on Monday and signs up from a bookmark on Thursday counts as Direct, because Thursday's salt makes Thursday's visitor a new one (salts and hashes). That is the privacy design doing its job, and it makes campaigns that open long decisions look weaker than they are.

The bill has its own logic. Fathom charges for the allowance, and every event your script sends and every API request draws from it (API reference), so each conversion you instrument is volume the next tier is priced on. Track the one or two events a decision rests on, not every click.

The free check is the sheet from step 9, kept for a month: where a campaign's CRM signups run well ahead of its Fathom signups, its buyers are taking days, and the campaign deserves a second look before anyone cuts it. Later, if you need to know which campaigns caused those signups rather than which link carried the visit, that is the question a causal attribution tool such as Causality Engine is built to answer; disclosure: I founded it.

FAQ

Can Fathom report on Google Ads without the Google tag?

Yes. The Google Ads guide says UTMs, or the gclid from auto-tagging, mark a visit as paid, and events in the same session count toward that campaign. Feeding conversions back into Google Ads bidding is a separate setup the guide does not cover.

Do signup events cost extra?

Not as a line item, but they count. The pricing FAQ says each custom event, from the site or the API, uses the monthly pageview allowance.

Why does Fathom show fewer signups than my CRM?

Usually the visitor-day reset described above, a form event that misses some path to signup, or CRM signups that never touched the website, such as accounts sales created. Test the event in a private window first, then read the gap by campaign.

TAGS
Fathom AnalyticsConversion TrackingUTM CampaignsCookieless AnalyticsGoogle AdsAI Assistant

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Senior marketing execution

A senior operator doing the work: campaigns, channels, CRM and AI agents, live from day one.