📡 Multi-domain analytics

Google Analytics for multiple domains shouldn't require twelve property switchers

GA4's model is one property per domain. If you run a fleet — indie portfolio, client sites at an agency, or a swarm of AI-spun landing pages — you end up juggling twelve properties, twelve consent banners, and BigQuery exports for any portfolio total. Gizmo treats every domain you own as one fleet: unlimited sites in one workspace, on every plan including Free.

Free forever — 10k events / month, unlimited domains, no card.

⚖️ Side by side

Tracking multiple domains: GA4 vs Gizmo

The honest comparison. GA4 was built around the one-property-per-site model. Gizmo was built around the fleet.

Google Analytics 4
Gizmo
Sites in one account
1 GA4 property per domain (separate setup each)
Unlimited domains in one workspace
Per-site billing
Free up to limits; quotas apply per property
We bill events, not sites
Adding a new domain
Create property → install tag → configure streams → DPA
Drop the same script. Site auto-provisions from first event.
Portfolio-wide totals
BigQuery export + SQL union, or Looker Studio blends
Default fleet view. One number across every domain.
Compare two sites side-by-side
Two browser tabs and a property switcher
Native multi-site dashboard
Subdomain handling
Cross-Domain Linker config + referral exclusions
Subdomains fold under the parent automatically
Cookie consent banner
One banner per domain, all with Consent Mode v2
Cookieless — no banner anywhere
AI assistant access across all sites
Reporting API per property + custom glue code
One MCP endpoint reads the whole fleet
Free tier
Free per property, sampled at scale
10k events / month forever, unlimited sites, no card

What tracking multiple domains looks like in Google Analytics

The honest version, from someone who's done it. Each individual step is fine. The aggregate friction is what breaks the model when your fleet grows past three or four sites.

🪪

One property per site

Twelve sites means twelve GA4 properties, twelve measurement IDs, twelve tracking-code blobs that drift over time. Each property is a separate setup, separate data stream config, separate audience. The mental model is "site = silo" — exactly the opposite of what fleet operators need.

🔁

The property switcher dance

Want to compare two sites? Open two tabs. Want a portfolio total? Export every property to BigQuery and union it yourself. Want to know which site grew fastest this week? Build a Looker Studio dashboard that blends twelve data sources. The 80%-case workflow is a multi-hour project.

🧱

Cross-Domain Tracking config

If your domains are related (e.g. shop.example.com → checkout.example.com), you configure linker domains, referral exclusions, and allowlists in each property. Get one wrong and your numbers double-count or under-attribute. There's a non-zero chance you spend an afternoon debugging a single missing entry.

⚖️

Per-domain consent banners

Each domain ships its own cookie banner. Each property has its own Consent Mode v2 config. You sign one DPA with Google, then propagate the same boilerplate privacy policy onto twelve sites. Each domain independently loses 5–15% of EU traffic to consent decline.

📡 The fleet model

One tracker. Every domain. Fleet view first.

Gizmo's data model assumes you have multiple sites from day one. The dashboard opens on the fleet, not on a single property. New domains appear automatically. The APIs return cross-site data by default.

🪄

Auto-provisioning from traffic

Drop the same script on every project. New domain? A site appears in your dashboard the moment its first event lands. No setup wizard, no measurement IDs to copy around, no second tracking-code variant. Spin up ten landing pages in an afternoon and they all just show up.

📡

Fleet view first

Your dashboard opens on every site you own — pageviews, top movers, biggest drops, ranked across the entire portfolio. Drill into a single site only when you need to. The default workflow is the fleet workflow, not the single-property workflow.

🌐

Unlimited sites, every plan

Run 1 site or 100 — every plan, including Free, allows unlimited domains. We bill events, not projects. No "number of sites" gate that pushes fleet operators onto a higher tier.

🛠️

Indie hackers

Three live projects, two failed experiments, and a domain you forgot you owned. All of them stream into one dashboard. The fleet view tells you which side-project is quietly working before you bother to check.

🏢

Agencies

Every client domain in one fleet. Use the MCP endpoint to generate client reports from chat instead of clicking through twelve property switchers. (Per-client workspace isolation is the current pattern; per-site sharing is on the roadmap.)

🤖

AI builders

Spinning up landing pages with an agent? The agent can drop the Gizmo script and the site provisions itself — no human-in-the-loop GA4 setup. Then ask the agent to summarize which page is winning.

🤖 The unfair part

Your AI agent can read the whole fleet at once

One MCP endpoint, all your sites. GA4's Reporting API requires per-property auth and custom orchestration if you want cross-property answers. Gizmo speaks MCP natively, and your fleet is just rows in the same table.

"Which of my 12 sites grew fastest this month?"

Fleet ranking out of the box. Comparing performance across domains is the default view, not a Looker Studio project.

"What's the total weekly pageviews across the portfolio?"

One number across every domain. No BigQuery union, no Looker Studio data blend, no per-property API call.

"Add foo.com and bar.com, tag both ‘launch’."

MCP isn't read-only. Your agent can install the tracker, add new sites, manage tags, and update workspace state — all from chat.

🔄 Migration

How to migrate a multi-domain GA4 setup to Gizmo

Realistic plan for moving a fleet. About 30 minutes per site for a clean swap, plus a one-week parallel-run window so you can sanity-check the numbers.

  1. 1
    Sign up for Gizmo (free, no card)
    Hit Start free. One workspace handles every domain you own — there's no per-site provisioning to do up front. Your public + admin API keys are issued automatically.
  2. 2
    Drop the same script on every site
    Same one-line <script> tag on every domain. No measurement IDs to swap per site, no per-site config. Sites auto-provision in your dashboard the moment their first event arrives. The install page has framework-specific snippets (Next.js, plain HTML, WordPress, Webflow, others) you can copy once and reuse.
  3. 3
    (Optional) Import historical GA4 data per property
    For each site you care about preserving history on: Reports → Library → Customize → Export CSV in GA4. Drop each CSV into /dashboard/import. Our LLM-mapped column normalizer handles each export even if column names drifted between properties. Imported events count toward your monthly quota — for a multi-site fleet with years of history, you'll likely want a paid plan to absorb the import.
  4. 4
    Run both stacks in parallel for a week
    Don't turn off GA4 yet. Run Gizmo alongside it on every site so you can compare numbers. Gizmo will count slightly differently than GA4 because we're unsampled and don't deduplicate consent-declined traffic. Confirm the shape of your data matches expectations before pulling GA4 out.
  5. 5
    Remove GA4, GTM, and consent banners — fleet-wide
    Delete the GA4 script tag from every domain, kill the GTM containers, remove Consent Mode v2 setup, take the cookie banners down. The single biggest payoff of moving a fleet off GA4 is deleting twelve cookie banners that were each costing 5–15% of EU traffic.
  6. 6
    Wire your AI assistant up to the MCP server
    From /dashboard/connect grab the MCP config for Claude Desktop, Cursor, Codex, or any MCP-aware client. Now your agent can answer fleet-wide questions — "which site grew most this week?", "what's our portfolio total?" — without you opening the dashboard.
❓ FAQ

Multi-domain analytics — frequently asked questions

Can Google Analytics track multiple domains in one property?

Sort of, but not cleanly. GA4 has Cross-Domain Tracking, which lets you treat related domains (e.g. shop.example.com and checkout.example.com) as one user journey. But it's a configuration project — you list every domain in the property's Data Stream settings, set up referral exclusions, and (if you're moving across truly different brands) deal with cookies and consent boundaries. For a fleet of unrelated indie sites, the standard answer is one GA4 property per domain. That's the wall this page exists to help you get past.

How many sites can I track in one Gizmo workspace?

Unlimited, on every plan including Free. We bill events, not sites. Whether you have 1 domain or 100, they all live in one workspace, share one tracker, and roll up into one fleet view. New domains auto-provision from their first event — no setup wizard, no measurement IDs to copy around.

How does Gizmo handle subdomains vs separate domains?

Subdomains fold under the parent by default. foo.com and blog.foo.com are one site in your dashboard — that's almost always what you want for a single brand. foo.com and bar.com stay separate, because they're separate brands. No Cross-Domain Linker, no referral exclusion list, no allowlist toggles. Sensible defaults, no plumbing.

Will my historical GA4 data come over for all my sites?

Yes — via CSV import, one site at a time. Export each GA4 property's reports to CSV (Reports → Library → Customize → Export, or via the Data API), then drop each CSV into Gizmo's import flow. Our LLM-mapped column normalizer figures out the schema even if column names differ across exports. Imported events count toward your monthly quota; for a multi-site fleet with years of history, you'll likely want a paid plan to absorb the import.

Do I need a separate cookie banner per domain with Gizmo?

No banners anywhere. Gizmo is cookieless — we don't set cookies, use localStorage, or fingerprint visitors. Visitor IDs derive from a daily-rotating salted hash of IP and User-Agent, never persisted. This satisfies GDPR's anonymization standards and is exempt from the EU ePrivacy Directive's consent requirement. One of the biggest wins of moving a fleet off GA4 is deleting twelve cookie banners that each cost you 5–15% of traffic.

Is there a way to share access to specific sites with clients (agency use case)?

Today, workspace access is all-or-nothing — anyone you invite to a workspace sees every site in it. For agencies needing per-client isolation, the current pattern is: one workspace per client. Per-site read-only sharing for agency reporting is on the roadmap. If you need it sooner, drop us a note via /contact and we'll prioritize based on demand.

How does the AI assistant integration work across multiple sites?

One MCP endpoint, all your sites. Connect Claude Desktop, Cursor, Codex (or any MCP-aware client) to your workspace once and your AI agent can answer questions like 'which of my 12 sites grew most this month?' or 'add foo.com and tag it experimental' without per-site setup. GA4's equivalent is wiring the Reporting API up per property and writing the orchestration yourself.

What's the catch — what doesn't Gizmo do that GA4 does?

We don't try to replace GA4 for paid-attribution-heavy use cases. If you run Google Ads at scale across your fleet and need Google's attribution model (assisted conversions, model comparison, cross-device), keep GA4. We don't have audience modeling, ecommerce-grade revenue attribution, or BigQuery streaming export. We're great at fast, simple, fleet-scale pageview/event analytics. We're not a marketing-attribution data warehouse.

🎁 Free forever

All your sites. One dashboard.

10,000 events/month, unlimited domains, full MCP access. No card, no cookie banner, no property switcher. Drop one script on every site and the fleet builds itself.