Google Analytics 4 Complete Guide
Overview
Google Analytics 4 (GA4) is Google's event-based analytics platform for measuring user interactions across websites and applications. Every user interaction is tracked as an event with associated parameters, providing flexible cross-platform measurement.
When to Use This Skill
Invoke this skill for any GA4-related task:
-
Setting up GA4 properties, data streams, and Measurement IDs
-
Installing GA4 via gtag.js, GTM, or CMS plugins
-
Implementing event tracking (automatic, recommended, custom, ecommerce)
-
Creating custom dimensions, audiences, and reports
-
Exporting data to BigQuery for SQL analysis
-
Server-side tracking via Measurement Protocol
-
User ID and cross-device tracking
-
Privacy compliance, Consent Mode, and GDPR/CCPA
-
Testing and debugging with DebugView
Quick Start
-
Create property: analytics.google.com -> Admin -> Create -> Property
-
Create data stream: Add web stream, note Measurement ID (G-XXXXXXXXXX)
-
Install tracking (choose one):
-
GTM (recommended): Install container, create Google Tag with Measurement ID, trigger on All Pages, publish
-
gtag.js direct: <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XXXXXXXXXX'); </script>
-
Verify: Enable GA Debugger extension, check Admin -> DebugView for session_start, page_view
-
Send custom events: gtag('event', 'button_click', { button_name: 'Subscribe', button_location: 'header' });
Decision Tree: Which Reference Do I Need?
What are you trying to do?
Setting up GA4 for the first time? -> references/setup.md Understanding how events work? -> references/events-fundamentals.md Implementing standard tracking events? -> references/recommended-events.md Creating business-specific custom events? -> references/custom-events.md Making parameters appear in reports? -> references/custom-dimensions.md Implementing User ID / cross-device? -> references/user-tracking.md Building audiences for remarketing? -> references/audiences.md Analysing data in GA4 reports? -> references/reporting.md Exporting to BigQuery for SQL analysis? -> references/bigquery.md Installing via gtag.js directly? -> references/gtag.md Setting up GA4 in Google Tag Manager? -> references/gtm-integration.md Sending events from server/backend? -> references/measurement-protocol.md Testing and debugging implementation? -> references/debugview.md Implementing GDPR/Consent Mode? -> references/privacy.md Configuring Admin settings? -> references/data-management.md
Core Concepts
Event-Based Model
GA4 tracks everything as events in four categories:
Category Description Examples
Automatic Fire without configuration session_start, first_visit
Enhanced Measurement Toggle on/off in settings scroll, click, file_download
Recommended Google-defined with standard parameters purchase, login, sign_up
Custom Business-specific tracking demo_requested, trial_started
Key Limits
Limit Value
Event names per property 500 distinct
Parameters per event 25
Event name length 40 characters
Parameter name/value length 40 / 100 characters
Custom dimensions (event/user/item) 50 / 25 / 10
Audiences per property 100
Measurement ID
-
Format: G-XXXXXXXXXX (G- prefix + 10 alphanumeric characters)
-
Location: Admin -> Data Streams -> Web Stream
-
Used in: gtag.js config, GTM tags, Measurement Protocol
Common Workflows
Ecommerce Tracking
-
Review recommended events for the purchase funnel: view_item -> add_to_cart -> begin_checkout -> purchase
-
Structure items array (required: item_id OR item_name; recommended: price, quantity, item_category)
-
Test with DebugView, then register custom item parameters as custom dimensions
Cross-Device Tracking
-
Implement User ID and configure Reporting Identity (Admin -> Data Settings)
-
Set user properties and build cross-device audiences
GDPR Compliance
-
Set up Consent Mode with default denied state
-
Integrate with CMP (OneTrust, Cookiebot, etc.), update consent on user acceptance
-
Test consent implementation with DebugView
Custom Reports
-
Understand available data in reporting
-
Register custom parameters as dimensions, create Explorations
-
For unsampled data, export to BigQuery
Best Practices
-
Naming: Use snake_case, be descriptive and action-oriented, keep under 40 characters, avoid generic names
-
Implementation order: Enhanced Measurement -> recommended events -> custom events -> custom dimensions
-
Data quality: Separate test/production properties, set up internal traffic filters from day one, document all custom events, audit regularly with DebugView, export to BigQuery for backup