Running analytics for one site is a solved problem. Running it for twelve client sites you didn't build the last analytics stack for is a different job — logins, install, client-facing views, and reports, multiplied. Here's what that job actually needs, and how five tools handle it.
Agencies don't need a "better" analytics chart — they need one login that covers every client property, a per-site install that keeps each client's numbers separate, a view a client can look at without your credentials, and an export for the report you send at the end of the month. Everything else is a nice-to-have.
Full comparison table, a numbered GhostMetrics onboarding flow, and the honest gap list are below.
Most "best analytics tool" content is written for one person running one site. An agency's requirement list looks different, and it's mostly about operations, not chart quality. Five things matter, in roughly this order.
One login for every client property. Nobody wants six separate accounts and six separate passwords to check traffic across a client roster. The whole point of an agency tool is that adding client number seven doesn't mean creating account number seven.
A distinct install per site. Each client's site needs its own tracking identity — its own site ID, its own snippet — so pageviews from Client A never land in Client B's numbers. This sounds obvious until you've debugged a dashboard where two clients are quietly sharing one tracking ID.
A client-facing view. At some point a client wants to look at their own numbers without going through you. That can be a shared login with restricted access, a public read-only link, or a report you hand over — but some version of "the client can see their data without asking you first" is table stakes.
Export for the monthly report. Agencies don't usually screenshot a dashboard and call it a report. Raw numbers get pulled into whatever deck or doc the client actually reads. If the tool locks export behind an upsell, that's a real cost every month.
No repeated consent-banner fight. If a tool sets tracking cookies, every client site that tool touches needs its own consent-banner conversation, its own GDPR sign-off, its own "does this apply to us" back-and-forth. Multiply that by a client roster and it's real hours. A cookieless tool that never sets a cookie in the first place sidesteps the question entirely — see our guide to dropping the consent banner for the mechanics of why.
Every tool here supports more than one site under an account in some form. The differences that matter to an agency are role-based access, client-facing sharing, white-label, and whether cookies re-open the consent question on every property.
| Tool | Multi-site model | Client-facing sharing | Roles / seats | White-label | Consent burden per site |
|---|---|---|---|---|---|
| GA4 | Properties under one Google account or organization; free | Per-property access grants via Google accounts; no built-in client portal | Google's own account- and property-level role assignments (several roles from viewer to administrator — check current GA4 docs) | No | Sets cookies by default — needs a consent banner in the EU/UK on every site |
| Plausible | Multiple sites under one account or team; self-host or hosted | Shared/public links per site | Team member invites — check current plan details | No published white-label option | Cookieless — no cookie banner for the analytics itself |
| Fathom | Multiple sites under one account; the commercial product is hosted (a separate open-source "Lite" build exists) | Shareable dashboards per site | Check current plan details for team seats | No published white-label option | Cookieless — no cookie banner for the analytics itself |
| Matomo | Long-established "manage multiple websites" model; self-host or hosted | Per-site user permissions, built for exactly this agency use case | Configurable per-site user roles and permissions | Branding/white-label lives in Matomo's plugin ecosystem rather than core — check current plugin availability and pricing | Configurable — can be run cookieless, so banner needs vary by setup |
| GhostMetrics | Free = one site; Pro ($9.99/mo flat) = unlimited sites under one login, own site ID + snippet each | Public dashboard URL (Pro) or CSV/JSON export (every plan) | None — no team seats, no client logins | No — public dashboards carry a "Powered by GhostMetrics" banner | Cookieless — no cookie banner for the analytics itself |
A few things worth reading past the table. Matomo is the one built from the ground up for this exact job — per-site user permissions are a long-standing, well-documented part of the product, which is why agencies that need to hand a client a restricted login usually land there; see our Matomo comparison for the trade-offs against a hosted-only tool. GA4 covers the access-control need through Google's own account permissions rather than anything analytics-specific, and it's free, but every property still carries the cookie-consent obligation — our GA4 alternatives piece covers that in more depth. Plausible and Fathom both handle multiple sites cleanly and cookieless, but neither publishes a role or client-login system beyond team invites. GhostMetrics solves the login-and-install half of the problem well — one login, unlimited sites, no consent banner — and solves the client-facing half only partially, which is the subject of its own section below.
If your agency has already decided GhostMetrics fits — no roles or white-label needed, just fast install and clean reporting — here's the actual onboarding flow for a new client site under a Pro account.
<head>. It's one <script> tag, about 3 KB compressed on the wire, served from Cloudflare's edge. No plugin, no tag manager, no build step — it works on any host.GhostMetrics gives you exactly two ways to get a client their numbers without handing them your login, and it's worth knowing precisely what each one does and doesn't do.
The public dashboard URL (Pro). Every site on Pro has a publish toggle. Flip it on and viewers get a read-only copy of the same dashboard — every panel, every period — at a public URL, no login required on their end. It carries a small "Powered by GhostMetrics" banner at the bottom, so it is not white-label. Unpublish it any time and the URL 404s immediately. Viewers can read the stats and download a CSV of an individual panel they can already see, but they cannot pull the raw event export, rename anything, or change any setting — and there's no per-viewer password option. Our own live demo runs on the same public-dashboard view, showing nullagency.io's real traffic — the panels are exactly what a client would see (the demo adds our own promo bar and swaps the powered-by banner for a demo one).
CSV or JSON export. Every stored row and column is available as a CSV download from the dashboard's "Export data" button, or as JSON from the API, on every plan including free. This is the path for agencies building their own branded monthly report — pull the numbers, drop them into your own deck or doc, keep your own formatting and logo on the parts the client actually reads.
What neither option does: there's no scheduled or emailed report. Nobody gets a PDF in their inbox on the first of the month automatically — someone on your team has to open the dashboard, publish or export, and send it. For an agency running a handful of clients that's a manageable checklist item; for an agency running fifty, it's real recurring labor a more automated tool would remove.
We'd rather say this plainly than let an agency discover it mid-onboarding. GhostMetrics was built for "one person, one login, many sites, fast install" — not for agencies that need to manage a team or hand out restricted access. Specifically, GhostMetrics has:
If your agency needs any of those — a second staff account, a client login, per-client roles, or a report with your own logo on it — GhostMetrics is the wrong tool for that piece of the job, full stop. Matomo is the strongest fit for agencies specifically: it's built around per-site user permissions and, self-hosted, you control the infrastructure it runs on, and client-facing rebranding lives in Matomo's plugin ecosystem — check what's core and what's a paid plugin before you promise a client a white-labelled report. GA4 is the free option if Google's per-property account permissions are enough access control for your team, and you don't mind the cookie-consent conversation on every client property. GhostMetrics remains the better fit when the whole ask is "install fast, keep sites separate, don't make me think about cookie banners" and nobody needs to log in but you.
GhostMetrics is cookieless web analytics we dogfood on this site. Install is one script tag per site — no plugin, no tag manager, no build step. The free plan is free forever: one site, unlimited pageviews, real-time dashboard, every view, full history, no card required.
Managing more than one site? Pro is $9.99/mo flat, unlimited pageviews, unlimited websites under one login, with a 30-day free trial — a card starts the trial, nothing is charged for 30 days, cancel anytime. Each site gets its own site ID and snippet, and Pro adds the public shareable dashboard URL. Raw event export as CSV or JSON is on every plan, including free — you're never locked out of your own data, on any tier.
Start free — one site, no card See the live demoDisclosure: GhostMetrics is built by Null Agency and we use it on this site, so we're not a neutral party about our own product — we've kept the claims to what the free and paid plans actually do, and pointed to Matomo and GA4 where their role-based, white-label, or client-login features genuinely fit an agency better. Pricing for third-party products can change; always check the vendor's current pricing page before deciding.