Skip to content

6 min read

GA4 vs Plausible for a small SaaS: an honest comparison

Setup, cookies and consent, data model, reporting and cost, compared fairly for a small SaaS. Plus what neither tool does: link a visitor to a paying customer.

For a small SaaS picking web analytics, the decision usually comes down to GA4 vs Plausible. One is free, deep and fiddly. The other is paid, simple and designed around privacy. Both are reasonable choices, and neither answers the question most founders get to eventually: which visits turned into paying customers.

This comparison assumes one product, a marketing site, maybe a blog, and billing in Stripe. I've tried to be fair to both. Pricing and plan limits change often, so for those, check each vendor's own pricing page.

The short version

GA4Plausible
SetupGoogle tag or Tag Manager, then a fair amount of configurationOne script tag and a domain
CookiesFirst-party cookies by defaultNo cookies
Recognising a visitorPersistent client ID per browser, optional User-IDHash with a salt that rotates daily, no persistent ID
Data modelEvents with parameters, user and session scopesPageviews and custom events, aggregated
ReportingStandard reports plus ExplorationsOne filterable dashboard
Getting data outData API, BigQuery exportStats API, CSV export; the database if you self-host
HostingGooglePlausible's EU cloud, or self-hosted
CostFree standard tier; GA4 360 for enterprisesPaid subscription, or the free self-hosted Community Edition

How much work is the setup?

Plausible is close to nothing. Add the script, add your domain, and the dashboard fills in. For signups you add a goal, either a pageview goal on your welcome page or a custom event fired from your signup handler. Custom properties let you attach a few values, like the plan chosen.

GA4 takes longer, mostly in configuration rather than code. You create a property and a web data stream, install the tag, and enhanced measurement collects some events automatically. Then the list starts: mark the events you care about as key events, register custom dimensions so parameters show up in reports, filter internal traffic, connect your consent banner. One setting catches a lot of people: event data retention defaults to two months, and Explorations only work within that window. On a standard property you can raise it to 14 months, and it's worth doing on day one.

What about cookies and consent?

GA4 sets first-party cookies to recognise a returning browser. In the EU, storing and reading those for analytics generally needs consent, so GA4 usually sits behind a banner. Google's Consent Mode lets the tag adjust when a visitor declines. In its advanced setup the tag still sends cookieless pings, and GA4 models part of the missing behaviour when the property is eligible. Either way, raw numbers from consenting visitors only will undercount.

GA4 also has a long and still-moving history with European regulators over data transfers to the US. I won't try to summarize where that stands today; it's a question for whoever advises you.

Plausible sets no cookies and stores no persistent identifier. It counts unique visitors with a hash of the IP address, user agent and domain plus a salt that rotates every day, and it doesn't keep the raw IP. Plausible says this means you don't need a cookie banner for it. Whether that holds for your site depends on where you and your visitors are, and on what else your site does. There's a longer explanation of the two laws involved in analytics consent and GDPR.

How do the data models differ?

GA4 is event-based. Everything, including a pageview, is an event with parameters, and users and sessions are built from those events. You can attach user properties and your own user ID. It's flexible, with a few habits to learn. Reports only show parameters you've registered. Values with too many distinct entries get folded into an "(other)" row. When Google signals is on, or counts are small, thresholding can withhold rows to protect privacy.

Plausible is aggregate by design. It stores pageviews and custom events with their properties, and reports totals. Because the visitor hash changes daily, the same person on Monday and on Thursday counts as two visitors, and there's no history of one person across days. That's the privacy feature working as intended. It's also why Plausible can't tell you where a signup first came from three weeks earlier.

Which one answers questions faster?

For the questions a small team asks weekly, Plausible. Top sources, top pages, entry pages, UTM breakdowns, countries, devices and goal conversion rates are all on one screen and quick to filter. It can also show Search Console search terms once you connect it. Funnels and some other features depend on the plan.

GA4 can answer much more, at the cost of time. The traffic acquisition and landing page reports cover the basics. Explorations give you funnels, paths and segments. The "first user" dimensions, such as first user source, are the closest GA4 comes to first touch out of the box, and they only see as far back as the same browser's cookie.

What does each cost?

GA4's standard tier has no fee. You pay in setup and maintenance time, consent work, and, if you use the BigQuery export, BigQuery's storage and query charges beyond its free tier. GA4 360 is the paid enterprise version and not aimed at a company this size.

Plausible's hosted service is a subscription priced by monthly pageviews, with tiers that include different features. The numbers change, so check their pricing page. The Community Edition is open source and free to self-host, and then you're running and paying for the server.

What can neither one do on its own?

Link a visitor to a paying Stripe customer, and then follow that customer's MRR as they upgrade, downgrade or cancel.

With GA4 it's possible, with work. Send your user ID at signup, turn on the BigQuery export, get your Stripe data into the same warehouse, and write SQL that joins the two and normalizes subscriptions into monthly revenue. People do this. It's a small data project, and it only covers visitors who consented to the cookie.

With Plausible it isn't possible by design, since there's no person-level data to join. You can fire a goal at checkout and attach a revenue amount to a custom event on some plans. That records a one-off amount at the moment of purchase. It doesn't know about the renewal, the upgrade in month three or the churn in month five, which all live in Stripe.

What you need in both cases is the same: record the first touch yourself, carry it to signup, and store it next to the user ID that Stripe also has. This post on linking blog posts to paying customers shows the minimum version in code.

So which should you pick?

Plausible suits you if you want a dashboard you'll actually open, you care about not tracking people across days, and you'd rather pay a subscription than spend evenings configuring. GA4 suits you if you run Google Ads and want conversions and audiences linked, if you need Explorations, or if you want raw events in BigQuery and are ready to write the SQL.

Either is fine for traffic. Neither is an attribution system for subscription revenue without extra work.

Joinsight reads GA4 or Plausible for traffic context only. Attribution comes from its own first-party snippet and an identify() call at signup, joined to Stripe.

See what makes you money.

Connect Stripe or RevenueCat and Search Console, and you see combined MRR and 16 months of search history on day one. Page and keyword revenue follow as the snippet collects first touches.

No card required. The trial clock starts when your first revenue source connects.