What is an event in Fathom Analytics?
Fathom describes events as actions such as link clicks, form submissions, or conversions. Its current documentation directs new implementations to trackEvent; legacy trackGoal behavior remains relevant to older installations. Use the current method for new work rather than copying a goal-code tutorial without checking its age.
Define each event in plain language before instrumenting it. For a fictional reporting SaaS, pricing-clicked means a visitor followed the pricing call to action, while trial-started means the application accepted a new trial. Keeping these separate lets you investigate where the journey stops instead of turning every intent signal into a successful signup.
Emit the event at the state its name describes
The snippet below illustrates a named event after the application has confirmed a trial. It is not a complete signup handler or a claim that this site's analytics was changed. The integration must also handle tracker readiness and the application's own success and duplicate-emission rules.
A button click can be useful to measure on its own. It does not prove that a form validated, an account was saved, or a payment completed. Keep analytics collection from becoming a dependency that makes the user's product action fail when a tracker is blocked or unavailable.
| Event | Emit when | Do not infer |
|---|---|---|
| pricing-clicked | The pricing link is followed | A trial account exists |
| trial-started | The application confirms the new trial | The person activated or paid |
| first-report-saved | The first useful report is successfully saved | Every signup achieved that result |
| purchase-completed | The application has confirmed the purchase outcome | Every checkout click became a payment |
fathom.trackEvent("trial-started");Keep event values and currency explicit
Fathom's event example passes an optional _value in cents. If using monetary values, verify the current currency configuration as well as the numeric unit. The illustrative value below represents 29.00 in the chosen currency, not 2,900 currency units. It is teaching data, not a Fathom subscription price or an observed sale.
Decide what the value represents: a confirmed purchase amount, another defined business amount, or no value at all. Do not attach an invented revenue estimate to a trial event merely to make the dashboard look more useful. Document refunds, repeated business events, and other cases separately in the measurement plan.
fathom.trackEvent("purchase-completed", { _value: 2900 });Check the denominator behind a conversion percentage
Fathom documents a site setting that changes the event conversion calculation between pageviews and people. Verify the selected formula before comparing rates across reports or sites. Changing the denominator can change the percentage without changing the number of completed events.
For an original fictional example, 20 event completions divided by 1,000 pageviews gives 2%. Dividing the same 20 by 200 people gives 10%. Neither calculation, by itself, proves that there were 20 distinct paying customers. Keep the event definition, period, filters, and denominator beside the number.
Verify names and test traffic before reading outcomes
Fathom notes that event code can collect activity from local and staging environments. Use the documented environment controls when test traffic should stay out of the production report. Its documentation also distinguishes changing a name sent from code from renaming an already-collected event; decide the naming vocabulary before rolling it out broadly.
Test one successful action, one rejected action, a repeated click, and a confirmation-page reload. Compare the expected events with the selected report window. Keep the product database or billing system as the authority for account and payment state; an analytics event is an observed measurement signal with its own collection limits.
Should I use trackGoal or trackEvent?
Use the current trackEvent method for new events, following Fathom's documentation. Inventory legacy goal calls before changing an existing installation so historical names and newly collected events remain understandable. Keep the event mapping alongside the release notes for the change.
Why is an event missing or counted twice?
Check the intended site, tracker readiness, execution path, event name, report window, and any environment or event filtering. For duplicates, inspect multiple click handlers, repeated success code, and page reload behavior. Reproduce a single action and compare it with the event definition before adding more tracking calls.
Sources and editorial method
Official product sources linked throughout this guide were checked on October 29, 2026. Comparisons and fictional exercises are editorial analysis, not hands-on benchmarks or customer results. Product versions, plans, quotas, and interfaces can change. Confirm current documentation before choosing a plan or implementing a workflow.