Skip to content
runomine

Google Analytics alternative

A Google Analytics alternative that counts sales, without cookies.

GA4 is free and very capable. It is also built for advertising: cookies that last two years, Consent Mode, audiences for Google Ads, and a learning curve few small teams need.

runomine measures visits and money from your backend, with nothing in the browser. Here is the difference, without the hype, and when you should stay on GA4.

Reviewed on October 14, 2026

The short answer

Pick runomine if…

  • You want to know which source brings buyers, with revenue read from Stripe, Paddle, Lemon Squeezy, Shopify or PayPal, refunds included.
  • Your app has a backend (Laravel, Node, Django, FastAPI, Rust) and you’d rather measure there, with no cookies or third-party scripts.
  • You want your visitors’ IP addresses to stay on your server.
  • A dashboard you understand in five minutes is enough, or asking your AI assistant over MCP.

Stay on Google Analytics if…

  • You spend on Google Ads and need conversions, audiences and remarketing wired in.
  • You use the BigQuery export or data-driven attribution.
  • You need demographics, interests, or one user’s journey over months.
  • Your team already knows GA4 well and misses nothing.

runomine and GA4, point by point

Both answer “where does my traffic come from?”. What changes is where it’s measured, what’s stored in the browser, and how the money arrives.

runomine and GA4, point by point
runomine Google Analytics 4
Cookies in the browser None. No localStorage or fingerprinting either. _ga and _ga_<id>, expiring after 2 years by default
Where it’s measured In your backend, with a library for PHP, Node, Python or Rust. An optional beacon under 1.5 KB for cached pages and static sites. In the browser, with gtag.js or Tag Manager. The Measurement Protocol augments the tag; it doesn’t replace it.
Unique visitors A daily hash computed on your server; the salt changes every UTC day A client id stored in the _ga cookie
The visitor’s IP Never leaves your server (with the libraries) Reaches Google with every hit; GA4 says it doesn’t log or store it
Revenue Read from your payment provider, with renewals and refunds A purchase event with value, currency and transaction_id that you send
Attribution Each sale to the first source that brought that buyer Data-driven, or last click. First click, linear and other models were removed in November 2023.
Retention Set per site 2 or 14 months for explorations and funnels; longer only on GA360
Thresholds and sampling Neither Thresholds that hide data with few users; sampling in very large explorations
Google Ads, audiences, BigQuery No Yes
Price Free during the beta Free

What you gain

  • Nothing in the browser

    No cookies, no localStorage, no third-party scripts. Your app’s middleware counts the pageview as it answers, and sends it afterwards.

  • Money from its source

    Sales, renewals and refunds come from your payment provider, in your currency. No prices in your code, no hand-made purchase events.

  • The IP stays with you

    The library computes the visitor hash on your server and sends only that.

  • Less to set up

    No properties, data streams or tags: a token in the environment and the middleware. runomine init does it for you.

  • Ad blockers can’t see it

    An ad blocker can stop gtag.js in the browser. It can’t see what your server does.

  • Your numbers in your assistant

    An MCP server with 17 tools: ask Claude Code or Cursor which source sells most.

What you lose (better to know up front)

  • Google Ads. No imported conversions, audiences or remarketing. If your business runs on Ads, GA4 is still the piece that connects them.
  • BigQuery and attribution models. runomine credits each buyer’s first source. There is no data-driven or multi-touch attribution.
  • Long-term profiles. A runomine visitor lasts a day: no demographics, interests or one person’s journey over months. Only when your app knows the user (they’re logged in) are their purchases joined to their visits.
  • The ecosystem. GA4 has years of tutorials, consultants and integrations. runomine is in beta, and its libraries aren’t published on Packagist, npm, PyPI or crates.io yet.

How to move from GA4 to runomine without flying blind

  1. Install runomine next to GA4. runomine init in your project, or the three lines for your stack. It doesn’t touch the browser, so it doesn’t interfere with your tags.
  2. Connect your payment provider. runomine imports the last 90 days (PayPal only from when you connect it) and adds the visitor to your checkouts with checkoutMetadata().
  3. Compare for a month. The numbers won’t match, and that’s fine: GA4 counts browsers with a cookie that lasts two years; runomine counts unique visitors per day. And pages your CDN serves from cache never reach your backend: add the beacon to those.
  4. Decide with data. runomine doesn’t import GA4 history: export the reports you want to keep before removing the tag.
What about the cookie banner? With GA4 in the EU, visitors who reject cookies aren’t measured the same way. runomine uses no cookies, and measuring visits and funnels is designed to fit the audience-measurement exemption described by the Spanish AEPD and the French CNIL. Joining purchases to an identified user goes beyond that exemption: assess its legal basis (often consent) with your DPO. The final call is yours.

FAQ

Frequently asked questions

Is runomine free, like Google Analytics?
During the beta, yes, with every feature. When there are prices they’ll be published on the site, and we’ll tell you before charging anything.
Can I run runomine and Google Analytics side by side?
Yes. runomine measures from your backend and doesn’t touch the browser (unless you add the beacon), so it doesn’t interfere with gtag.js or Tag Manager. It’s the best way to compare before deciding.
Why don’t GA4 and runomine numbers match?
They count different things. GA4 identifies a browser by its cookie for two years; runomine counts unique visitors per day with a hash that expires. Also, an ad blocker can stop gtag.js but not your server, and a page served from your CDN’s cache never reaches your backend (that’s what the beacon is for).
Can I import my Google Analytics history?
No. runomine imports your payment history (the last 90 days from Stripe, Paddle, Lemon Squeezy or Shopify), but not GA4 visits. Export the reports you want to keep.
Do I need a cookie banner with runomine?
For visits and funnels, runomine is designed to fit the audience-measurement exemption (AEPD, CNIL): nothing is stored on the device and the statistics are aggregated and yours alone. Attributing revenue to identified users goes further and may require consent. Decide it with your DPO.

Count what matters.

Visits, sales and servers in one place. Installed in less time than it took to read this page.