If you still use Google Analytics 4 as a simple visit counter, you are wasting 90% of its potential. We see it every day in projects that come to us: dashboards full of meaningless numbers, conversions never configured, events left to chance. At Meteora Web, we always start with the same question: how much does it cost and what does it return? Because data not collected is lost margin, and data not interpreted is a hidden cost.
In this pillar guide, we take you from the first datastream to API automation, covering events, conversions, e-commerce, Looker Studio, and more. You don't need to be a developer: just follow the method we have used with our clients for 8 years.
From zero to your first datastream: complete GA4 setup
Many think GA4 is installed like Universal Analytics: one identical snippet on all pages and done. Wrong. GA4 is event-based, and the initial setup determines everything else.
Creating the GA4 property
Go to Google Analytics and create a new property. Choose 'Web' as the platform – do not choose 'App' unless you have a native mobile app. Enter your website URL and timezone. The key point: don't forget to enable Google signals in the 'Data collection' section. This enables cross-device and remarketing at no extra cost.
Installing the datastream
GA4 will provide you with a measurement ID (G-XXXXXXXX) and a snippet to copy into the <head> of every page. If you use a CMS like WordPress, you can install it via plugins (e.g., Site Kit, GTM4WP, or manually). We always prefer Google Tag Manager for full control: the GA4 snippet goes into GTM and is managed from there.
Verifying data collection
Go to 'Admin' -> 'Data Streams' -> click on the web stream. At the bottom, you'll find the 'Send test event' button: use it to check that data is coming in. If you see the 'page_view' event in real-time, you're good. Otherwise, check the tag manager or the direct installation.
GA4 Events: automatic, recommended, and custom
GA4 divides events into three categories. Understanding the difference is the first step to avoid drowning in data.
Sponsored Protocol
Automatic events
GA4 automatically tracks page_view, scroll, first_visit, session_start, user_engagement. You cannot disable them, but you can enrich them with parameters. For instance, page_view already includes page_location and page_title.
Recommended events
Google has defined a set of standard events (like login, sign_up, purchase, add_to_cart) with predefined parameters. Always use them: they activate automatic report models and improve integration with Google Ads. Example implementation via gtag:
gtag('event', 'login', { method: 'Google' });Custom events
If no recommended event covers your action, create a custom one. The golden rule: don't overdo it. Every extra event is a cost in processing and complexity. We use custom events only for specific actions like 'download_whitepaper', 'form_step_completed', or 'video_played_25%'.
Parameters and limits
Each event can have up to 25 custom parameters. Parameter names must start with a letter and contain only letters, numbers, and underscores. Avoid uppercase. Example with parameters:
gtag('event', 'custom_download', {
file_name: 'ga4_guide.pdf',
file_type: 'PDF',
file_size: '2.5MB'
});GA4 Conversions: setting up goals and tracking key actions
In GA4, conversions are simply events that you mark as 'conversion' from the interface. There's no more 'goal' with a fixed value as in UA. Just go to 'Admin' -> 'Conversions' and create a conversion from an existing or new event.
How to choose which events to convert
Not all events should be conversions. For an e-commerce site, only purchase is the main conversion. For a lead gen site, form_submit (custom) or generate_lead (recommended). Maximum 10-15 conversions, otherwise you dilute the data and make reporting useless.
Conversion value
You can pass a value and currency parameter in the event. For example:
gtag('event', 'purchase', {
value: 49.99,
currency: 'EUR',
items: [...]
});Remember: the value must be real and consistent. We have clients who set it to 0 for fear of making mistakes – that's a mistake. Even an approximate value is better than nothing for ROI reporting.
Sponsored Protocol
GA4 Explorations: funnel, path, and cohort analysis
The 'Explorations' section is the true power of GA4. Here you can build ad-hoc analyses without limits imposed by Google.
Funnel technique
Use the 'Funnel exploration' to see how many users move from one event to the next. Example: start (product page visit) -> add to cart -> begin checkout -> purchase. Bottlenecks become immediately visible.
Cohort analysis
Cohorts show the behavior of a group of users over time. Perfect for measuring retention from a campaign or a new feature. Set the cohort dimension by day or week and observe how return rates change.
Free form
The 'Path exploration' visualizes the actual steps users take. Caution: without a specific event filter, you'll see a tangled mess of nodes. We recommend starting from a specific event (e.g., 'session_start') and limiting the graph to 3-4 steps.
GA4 and Google Tag Manager: code-free implementation
GTM is the best way to manage GA4 without touching the site's code. If you don't use it yet, start now.
Setting up the GA4 Tag in GTM
Create a new tag, choose 'Google Analytics: GA4 Event' and enter the Measurement ID. For the base setup, use the tag type 'GA4 Configuration'. Caution: this tag loads the snippet and activates automatic collection. No need for a direct snippet any more.
Firing events with triggers
For each custom event, create a separate tag with the event name and parameters. The trigger decides when to fire. Example: to track a click on a 'Subscribe to newsletter' button, use a 'Click - All Elements' trigger filtered by ID or class. Then in the tag, set the event as 'sign_up' with parameter method: 'newsletter'.
We use this architecture for every client: one configuration tag, then individual event tags. Zero code on the site.
GA4 E-commerce: enhanced e-commerce and purchase tracking
GA4 has a built-in e-commerce model based on recommended events. No need for the old 'ec' plugin.
Sponsored Protocol
Standard e-commerce events
The key events: view_item, add_to_cart, remove_from_cart, add_to_wishlist, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase. Each must include an items array with objects containing item_id, item_name, price, quantity, etc.
Example for 'add_to_cart':
gtag('event', 'add_to_cart', {
currency: 'EUR',
value: 29.99,
items: [{
item_id: 'SKU123',
item_name: 'White T-shirt',
price: 29.99,
quantity: 1,
item_category: 'Clothing'
}]
});Tracking abandoned cart
Without add_to_cart and begin_checkout events you cannot set up an abandoned cart funnel. If you sell on Shopify or WooCommerce, there are plugins that do it automatically. On custom platforms, we implement it with GTM and data layer.
Looker Studio with GA4: custom and automated dashboards
GA4's built-in reports are limited. Looker Studio (formerly Google Data Studio) is the tool to create tailored dashboards, possibly combining GA4 with Google Ads, Search Console, and your CRM.
Connecting GA4 to Looker Studio
Create a new data source, choose 'Google Analytics 4', and select the property. Looker Studio automatically imports events and parameters. Caution: custom parameters may not be immediately visible; you need to update the schema or use them directly in calculated fields.
Key metrics and dimensions
Most useful dimensions: Event name, Page path and screen class, Source/Medium, Campaign name. Metrics: Event count, Total users, Conversions (event name), Event value. Build a pivot table relating source and conversion: the best report to understand where real customers come from.
Report automation
Looker Studio supports email scheduling: schedule a weekly dashboard delivery to the team. We do this for all our clients, so they don't have to open GA4 every day.
GA4 API with Python: extracting data and automation
If you need to push GA4 data into a database, Excel sheet, or internal system, use the API. GA4 has the Data API (v1beta) with an official Python client.
Sponsored Protocol
Installation and authentication
First, create a service account on Google Cloud Console, enable the Analytics Data API, and download the JSON credentials file. Then install the package:
pip install google-analytics-dataMinimal example to get users in the last 7 days:
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
DateRange,
Metric,
Dimension,
RunReportRequest
)
client = BetaAnalyticsDataClient.from_service_account_file('credentials.json')
request = RunReportRequest(
property='properties/123456789',
date_ranges=[DateRange(start_date='7daysAgo', end_date='today')],
metrics=[Metric(name='totalUsers')],
dimensions=[Dimension(name='date')]
)
response = client.run_report(request)
for row in response.rows:
print(row.dimension_values[0].value, row.metric_values[0].value)With this script you can feed a local database or generate automated reports on Google Sheets. We use it to build external dashboards and Slack alerts.
Segments and Audiences in GA4: retargeting and behavioral analysis
Segments let you isolate subsets of users for targeted analysis. Audiences are used for exporting to Google Ads or Google Optimize.
Creating a segment
In an exploration or report, click '+' and create a segment based on conditions: 'Users who purchased in the last 30 days' or 'Users who visited product page and didn't purchase'. Save it as a shared segment for reuse.
Audiences for retargeting
Go to 'Admin' -> 'Audiences' -> 'New audience'. Define the condition (e.g., 'Eventname contains add_to_cart' and 'Eventname NOT contains purchase' in the last session). Then link the audience to Google Ads via the account link. Done: you can retarget cart abandoners without writing a single line of code.
GA4 vs Universal Analytics: differences that still confuse
Universal Analytics is officially dead (since July 2024). But many still have confused ideas about what changed.
Sponsored Protocol
Metrics and sessions
UA counted sessions as a block of interactions within 30 minutes of inactivity. GA4 uses the concept of session but the definition is different: a session starts with session_start and ends after 30 minutes of inactivity (though GA4 can extend it up to 2 hours based on behavior). Also, GA4 is event-based: every interaction is an event, while UA used pageview/hits. GA4 event volumes are much larger.
Event naming
UA had actions, categories, and labels. GA4 only has events with parameters. If you're migrating, you need to map UA events to GA4 with recommended names. Example: category: 'Video', action: 'Play' becomes event: 'video_start'.
Data sampling
GA4 samples reports if you exceed certain monthly event thresholds (e.g., 10 million free events). UA also sampled, but GA4's sampling is more aggressive. If you have high volume, consider using the API or a third party for unsampled data.
Common mistakes we see every day
In projects that come to us, we see the same errors: datastream not verified, custom events without parameters, conversions not marked, audiences not created, Looker Studio connected but not updated. The worst: not defining business metrics before starting. GA4 is a tool, not a magic wand. If you don't know what to measure, you'll measure useless things.
In a nutshell — what to do now
- Set up GA4 with GTM and verify automatic events work.
- Activate at least 3 recommended events (e.g.,
login,sign_up,purchase) with proper parameters. - Create 2 conversions: the primary one (purchase or form) and a secondary one.
- Build a funnel exploration to see where users drop off.
- Connect GA4 to Looker Studio and schedule a weekly automated report.
- Set up at least one audience for retargeting abandoned actions.
- If you have budget, invest in API analysis for unsampled data and automation.
At Meteora Web, we do this every day. If you need a hand, you know where to find us. Meanwhile, follow these steps and watch your data turn into decisions.