You spent $800 last month on Google Ads, another $400 boosting posts on Instagram, and a few hours writing an email newsletter. Sales were decent. But if someone asked you which of those three actually drove the sales, could you answer with a straight face? For most small business owners, the honest answer is "I have a hunch."
That hunch is expensive. Nearly 40% of marketers say they struggle to prove the ROI of what they're spending money on, and the businesses that get this wrong tend to make the same mistake twice: they keep funding the channel that feels like it's working while quietly starving the one that actually is. Google Analytics 4 (GA4) — the free analytics platform running on most small business websites — is built to answer this question. The problem is that almost nobody sets it up correctly, so it just... doesn't.
Here's the fix, and it takes about 30 minutes.
Why GA4 Shows Zero Conversions Even When You Have Sales
GA4 tracks everything that happens on your website by default — every page view, every scroll, every button click. That's the good news. The bad news is that tracking an action and calling it a "conversion" are two different things, and GA4 requires you to manually flag which actions actually matter to your business.
This trips up more small business setups than any other GA4 feature. The events are firing correctly in the background — GA4 sees the form submission, the phone number click, the checkout completion — but none of them are flagged as a key event (Google's current term for what used to be called a "goal" in the old Universal Analytics, and what still shows up as a "conversion" once it's linked to Google Ads). So the conversion reports sit at zero, the owner assumes analytics is broken or "not tracking sales," and the whole dashboard gets ignored for months.
It isn't broken. It's just missing one setting.
The Three-Step Chain: Event → Key Event → Conversion
Google's own documentation lays out the sequence plainly: an event becomes a key event once you mark it as important, and a key event becomes a conversion once it's shared with a linked Google Ads account for campaign optimization. You don't need Google Ads to get value from this — key events alone will tell you which marketing channels are producing real business outcomes, right inside GA4's free reporting.
Step 1: Find out what GA4 is already tracking
GA4 auto-collects a baseline set of events the moment the tracking code is installed — page views, scrolls, outbound clicks, site searches. On top of that, many site builders (Shopify, Squarespace, WordPress plugins) auto-track "enhanced measurement" events like file downloads and video engagement without you doing anything.
Go to Admin → Data display → Events (or Reports → Engagement → Events for a live view) to see what's already flowing in. You're looking for the events that represent money or leads: purchase, generate_lead, sign_up, contact, schedule — anything that isn't just someone scrolling past your homepage.
Step 2: Mark the events that actually matter
For events GA4 is already collecting, this is the easy part: go to Admin → Events, find the event in the list, and toggle it as a key event (older interfaces show a star icon next to "Recent events" — same action). That's it. From that point forward, GA4 counts it in your conversion reports and lets you see which marketing channel — organic search, a specific ad campaign, an email link, a social post — brought in the user who completed it.
For actions your site doesn't track out of the box — a "Request a Quote" button, a click-to-call phone number, a specific PDF price sheet — you'll need to create the event first, typically through Google Tag Manager (GTM), a free companion tool that lets you fire tracking events based on clicks and form submissions without touching your site's code. Roughly 80% of what a small business needs to track (button clicks, form submits, phone taps) can be set up in GTM in a few minutes each, using its built-in click and form-submission triggers.
Step 3: Connect to Google Ads (only if you're running paid ads)
If you're spending money on Google Ads, link your GA4 property to your Ads account under Admin → Google Ads Links, then import your key events as conversions. This is what lets Google's bidding algorithms actually optimize toward leads and sales instead of just clicks — and it's the difference between an ad campaign that gets you traffic and one that gets you customers.
Which Events Should You Actually Track?
Not every click deserves to be a key event — mark too many and you dilute the signal, mark too few and you're back to guessing. Here's a starting list by business type:
Service businesses (contractors, consultants, agencies, local shops):
generate_lead— contact form or quote request submittedcontact— phone number clicked (especially important for mobile visitors who call instead of email)schedule— appointment or consultation booked
E-commerce:
purchase— completed transaction (your primary key event, always)begin_checkout— checkout started, useful for spotting cart abandonmentadd_to_cart— a lighter-weight signal of buying intent, worth tracking but not over-weighting
Content or subscription businesses:
sign_up— newsletter or account created- Specific high-value content downloads (pricing guides, case studies)
A useful gut check: if the action wouldn't make you happy to see in your inbox as a notification ("Someone just called!" or "Someone just bought!"), it probably doesn't belong as a key event. Vanity metrics like scroll depth or session count feel like activity, but they don't tell you where your next customer came from — and confusing the two is one of the most common ways small businesses misjudge which channels are working.
The Attribution Mistake That Skews Everything
Once conversions are flagged correctly, there's a second trap: last-click attribution. By default, many reports give 100% of the credit for a sale to whatever channel the customer clicked right before converting — usually a branded Google search for your business name. That search happened because they'd already seen your Instagram ad three days earlier and your retargeting email yesterday. Last-click attribution erases both of those touchpoints and hands all the credit (and all the future budget) to "organic search," even though it was the closer, not the opener.
GA4's Advertising → Attribution reports let you compare attribution models side by side. If you only look at one number, look at the gap between "last click" and "data-driven" attribution for your top channels — a big gap is your sign that you've been misallocating budget toward whichever channel happens to close the deal, at the expense of whichever channel actually opens it.
The other quiet blind spot: offline conversions. If your business takes phone orders, closes deals in a showroom, or gets walk-ins after someone found you online, none of that shows up in GA4 unless you deliberately import it (Google Ads supports offline conversion imports via a spreadsheet or CRM integration). Skipping this step means your online-attributed ROI looks worse than it actually is — you're missing the second half of the funnel.
Bookkeeping Doesn't Stop at the Sale
Knowing which channel produced a lead is only useful if you also know what that lead was worth after costs — and that's where marketing analytics and bookkeeping have to talk to each other. A "generate_lead" event that GA4 attributes to a $500 ad campaign is a win only if you can see, in your books, what that lead actually turned into: a closed sale, a refund, a customer who churned after one month. Tracking ad spend as a plain expense line without tying it back to the revenue it produced is how businesses end up doubling down on a channel that looks cheap per-click but is actually expensive per-customer.
Beancount.io's plain-text accounting makes it straightforward to tag transactions by marketing channel or campaign the same way you'd tag any other cost center, so your GA4 conversion data and your actual P&L can be read side by side instead of living in two disconnected dashboards.
Setting This Up Today
If you've never touched GA4's event settings, the highest-leverage 30 minutes you can spend this week is this: log in, check Admin → Events for what's already being collected, flag your one or two most important actions as key events, and revisit your attribution report in two weeks once real data has accumulated. You don't need every event perfectly instrumented on day one — you need the two or three that represent actual revenue tracked correctly, starting now, so the data has time to build up before your next budget decision.
Keep Your Marketing Spend and Your Books in Sync
Once you know which channels are actually converting, the next question is whether they're profitable after real costs — not just cost-per-click. Beancount.io provides plain-text accounting that gives you complete transparency and control over your financial data, so you can tag marketing spend by channel and see the true return next to the rest of your books, no black boxes, no vendor lock-in. Get started for free and see why developers and finance professionals are switching to plain-text accounting.