You just enabled Google Analytics 4, but no data is flowing. Or worse: you think everything is set up correctly, only to discover a month later that the tag never fired. We see this all the time in projects that land on our desk: GA4 installed haphazardly, no filters, missing events. And then people wonder why their campaigns show no return.
At Meteora Web, we've been configuring GA4 for years. The first thing we learned: a wrong property at the start costs you irrecoverable data. In this guide we'll walk you step‑by‑step from account creation to a working datastream. No theory: just what it takes to see real data in your GA4 dashboard.
Why GA4 is different from Universal Analytics
If you've used Universal Analytics, you know it was session‑based. GA4 is different: event‑based and user‑centric. Every interaction is an event, not just a pageview. That makes tracking more flexible, but it also requires a solid setup. Without a clean foundation, your reporting will be unreliable.
The business upside: you can track micro‑interactions (button clicks, scrolls, video plays) without extra code. But if your datastream isn't set up right, those events never arrive.
Step 1: create a Google Analytics 4 account
Don't confuse account with property. An account is the admin container for one or more properties. If you have multiple sites or apps, keep them under the same account.
How to do it:
- Go to analytics.google.com and sign in with a Google account.
- Click on "Admin" (gear icon bottom left).
- Under "Account", click "Create account".
- Give it a descriptive name: avoid generic names like "My Account". Use the company name and year (e.g. "Meteora Web – 2025").
- Configure data sharing: keep the default options. You'll need them for advanced reports.
Common mistake: creating a separate account for each site. If you have three sites, put them all in one account with separate properties. Easier user and permission management.
Quick actionable step: check your current account. How many properties do you have? If they're scattered, consider consolidating into one account.
Step 2: create a GA4 property
Once the account is ready, click "Create property". Name it after your site or app. Set the correct time zone (for Italy it's Europe/Rome) and currency (EUR).
Watch the time zone: once saved, it's permanent. If you get it wrong, daily reports will be off. Double‑check.
Now you'll see the business setup screen: industry, company size, measurement objectives. Don't skip this. GA4 uses this info to suggest default events and reports. Select "Generate leads", "Examine user behaviour", and "Read articles" if you run a blog. For e‑commerce, tick "Sell products".
Pro tip: even if you don't have an e‑commerce site yet, enable e‑commerce measurement. That way purchase events are ready when you need them. You won't lose historical data.
Step 3: create the datastream
This is the core of the setup. A datastream is the data flow from one source (web, iOS, Android) to your property. Create a separate datastream for each platform.
For a website
Click "Web". Enter your site URL (e.g. https://www.meteoraweb.com) and a stream name (e.g. "Main site").
GA4 generates a Measurement ID (format G-XXXXXXXXXX). Don't confuse it with the Universal Analytics ID (UA-XXXXXXXX).
You have two options for implementing the tag:
- Google Tag Manager – recommended if you already use GTM or plan to manage multiple tags (Google Ads, Meta, etc.).
- Direct GA4 tag (gtag.js) – simpler for a static site or a minimal setup.
We almost always use GTM, because you can update tags without touching site code. But for a quick initial setup, the direct tag works fine.
For an Android/iOS app
Click "App" and follow the instructions to add Google Services to your project. Android needs the `google-services.json` file; iOS needs `GoogleService-Info.plist`. GA4 guides you step by step. If you lack mobile development experience, pause here and hand it to a developer: a mistake in the app‑side setup means no data.
Quick actionable step: after creating the datastream, copy the Measurement ID. You'll need it for the tag.
Step 4: implement the GA4 tag
We'll cover both methods. Choose the one that fits your situation.
Option A: direct tag (gtag.js)
Paste this code just before your
tag. Replace G-XXXXXXXXXX with your Measurement ID.
Verification: open your site, go to GA4 > Reports > Realtime. If you see an active user, the tag works.
Option B: Google Tag Manager
- Sign in to Google Tag Manager.
- Create a new container for your domain.
- Install the GTM code on your site (two snippets: one in
, one after). - Create a new tag: type "Google Analytics: GA4 Event".
- Enter the Measurement ID from your datastream.
- Trigger: "All Pages".
- Save and click "Publish".
Why we prefer GTM: when you want to add an event (e.g. button click), you don't have to edit site code. You do it in GTM and publish. Fewer risks of errors.
Step 5: verify data flow
Don't assume it works. You have to test.
- GA4 DebugView: enable debug mode. Add
?gtm_debug=xto your site URL (if using GTM) or enable debug withgtag('config', 'G-XXXXXXXXXX', { 'debug_mode':true });. Then go to GA4 > Reports > DebugView. You should see events in real time. - GA4 Realtime: without debug, visit the site from a different device and check the "Realtime" section in GA4. The user should appear.
- Google Tag Assistant: Chrome extension (or the new Tag Coverage in GTM) that shows if tags are fired correctly.
Common mistake: forgetting about IP filters. If you've excluded your own IP to avoid inflating stats, you won't see yourself in Realtime. Use a second device or mobile connection.
Quick actionable step: open GA4, go to Admin > Data Streams > click your stream. At the bottom you'll find "Realtime events". If you see events, you're good. If not, repeat the debug.
In summary — what to do now
- Create a GA4 account with a descriptive name and data sharing enabled.
- Create a property with the correct time zone (Europe/Rome) and e‑commerce tracking enabled even if not yet active.
- Set up a datastream for your website; copy the Measurement ID.
- Implement the tag via gtag.js or GTM. Prefer GTM if you plan to add more tags later.
- Verify with DebugView, Realtime, and Tag Assistant. Don't trust until you see events.
If you followed these steps, you now have a working datastream and can start collecting data. Next up? Configuring key events (conversions) and goals. But that's another article.
Advice from people who do it daily: don't wait a week to verify. Do it now. Lost data can't be recovered. And if you need a hand, we're here — from Sciacca or remote, serving clients across Italy.
Sponsored Protocol