GA4 Implementation Reference
GA4 Implementation Reference
Section titled “GA4 Implementation Reference”Detailed implementation guide for Google Analytics 4.
Contents
Section titled “Contents”- Configuration (data streams, enhanced measurement events, recommended events)
- Custom Events (gtag.js implementation, Google Tag Manager)
- Conversions Setup (creating conversions, conversion values)
- Custom Dimensions and Metrics (when to use, setup steps, examples)
- Audiences (creating audiences, audience examples)
- Debugging (DebugView, real-time reports, common issues)
- Data Quality (filters, cross-domain tracking, session settings)
- Integration with Google Ads (linking, audience export)
Configuration
Section titled “Configuration”Data Streams
Section titled “Data Streams”- One stream per platform (web, iOS, Android)
- Enable enhanced measurement for automatic tracking
- Configure data retention (2 months default, 14 months max)
- Enable Google Signals (for cross-device, if consented)
Enhanced Measurement Events (Automatic)
Section titled “Enhanced Measurement Events (Automatic)”| Event | Description | Configuration |
|---|---|---|
| page_view | Page loads | Automatic |
| scroll | 90% scroll depth | Toggle on/off |
| outbound_click | Click to external domain | Automatic |
| site_search | Search query used | Configure parameter |
| video_engagement | YouTube video plays | Toggle on/off |
| file_download | PDF, docs, etc. | Configurable extensions |
Recommended Events
Section titled “Recommended Events”Use Google’s predefined events when possible for enhanced reporting:
All properties:
- login, sign_up
- share
- search
E-commerce:
- view_item, view_item_list
- add_to_cart, remove_from_cart
- begin_checkout
- add_payment_info
- purchase, refund
Games:
- level_up, unlock_achievement
- post_score, spend_virtual_currency
Reference: https://support.google.com/analytics/answer/9267735
Custom Events
Section titled “Custom Events”gtag.js Implementation
Section titled “gtag.js Implementation”// Basic eventgtag('event', 'signup_completed', { 'method': 'email', 'plan': 'free'});
// Event with valuegtag('event', 'purchase', { 'transaction_id': 'T12345', 'value': 99.99, 'currency': 'USD', 'items': [{ 'item_id': 'SKU123', 'item_name': 'Product Name', 'price': 99.99 }]});
// User propertiesgtag('set', 'user_properties', { 'user_type': 'premium', 'plan_name': 'pro'});
// User ID (for logged-in users)gtag('config', 'GA_MEASUREMENT_ID', { 'user_id': 'USER_ID'});Google Tag Manager (dataLayer)
Section titled “Google Tag Manager (dataLayer)”// Custom eventdataLayer.push({ 'event': 'signup_completed', 'method': 'email', 'plan': 'free'});
// Set user propertiesdataLayer.push({ 'user_id': '12345', 'user_type': 'premium'});
// E-commerce purchasedataLayer.push({ 'event': 'purchase', 'ecommerce': { 'transaction_id': 'T12345', 'value': 99.99, 'currency': 'USD', 'items': [{ 'item_id': 'SKU123', 'item_name': 'Product Name', 'price': 99.99, 'quantity': 1 }] }});
// Clear ecommerce before sending (best practice)dataLayer.push({ ecommerce: null });dataLayer.push({ 'event': 'view_item', 'ecommerce': { // ... }});Conversions Setup
Section titled “Conversions Setup”Creating Conversions
Section titled “Creating Conversions”- Collect the event - Ensure event is firing in GA4
- Mark as conversion - Admin > Events > Mark as conversion
- Set counting method:
- Once per session (leads, signups)
- Every event (purchases)
- Import to Google Ads - For conversion-optimized bidding
Conversion Values
Section titled “Conversion Values”// Event with conversion valuegtag('event', 'purchase', { 'value': 99.99, 'currency': 'USD'});Or set default value in GA4 Admin when marking conversion.
Custom Dimensions and Metrics
Section titled “Custom Dimensions and Metrics”When to Use
Section titled “When to Use”Custom dimensions:
- Properties you want to segment/filter by
- User attributes (plan type, industry)
- Content attributes (author, category)
Custom metrics:
- Numeric values to aggregate
- Scores, counts, durations
Setup Steps
Section titled “Setup Steps”- Admin > Data display > Custom definitions
- Create dimension or metric
- Choose scope:
- Event: Per event (content_type)
- User: Per user (account_type)
- Item: Per product (product_category)
- Enter parameter name (must match event parameter)
Examples
Section titled “Examples”| Dimension | Scope | Parameter | Description |
|---|---|---|---|
| User Type | User | user_type | Free, trial, paid |
| Content Author | Event | author | Blog post author |
| Product Category | Item | item_category | E-commerce category |
Audiences
Section titled “Audiences”Creating Audiences
Section titled “Creating Audiences”Admin > Data display > Audiences
Use cases:
- Remarketing audiences (export to Ads)
- Segment analysis
- Trigger-based events
Audience Examples
Section titled “Audience Examples”High-intent visitors:
- Viewed pricing page
- Did not convert
- In last 7 days
Engaged users:
- 3+ sessions
- Or 5+ minutes total engagement
Purchasers:
- Purchase event
- For exclusion or lookalike
Debugging
Section titled “Debugging”DebugView
Section titled “DebugView”Enable with:
- URL parameter:
?debug_mode=true - Chrome extension: GA Debugger
- gtag:
'debug_mode': truein config
View at: Reports > Configure > DebugView
Real-Time Reports
Section titled “Real-Time Reports”Check events within 30 minutes: Reports > Real-time
Common Issues
Section titled “Common Issues”Events not appearing:
- Check DebugView first
- Verify gtag/GTM firing
- Check filter exclusions
Parameter values missing:
- Custom dimension not created
- Parameter name mismatch
- Data still processing (24-48 hrs)
Conversions not recording:
- Event not marked as conversion
- Event name doesn’t match
- Counting method (once vs. every)
Data Quality
Section titled “Data Quality”Filters
Section titled “Filters”Admin > Data streams > [Stream] > Configure tag settings > Define internal traffic
Exclude:
- Internal IP addresses
- Developer traffic
- Testing environments
Cross-Domain Tracking
Section titled “Cross-Domain Tracking”For multiple domains sharing analytics:
- Admin > Data streams > [Stream] > Configure tag settings
- Configure your domains
- List all domains that should share sessions
Session Settings
Section titled “Session Settings”Admin > Data streams > [Stream] > Configure tag settings
- Session timeout (default 30 min)
- Engaged session duration (10 sec default)
Integration with Google Ads
Section titled “Integration with Google Ads”Linking
Section titled “Linking”- Admin > Product links > Google Ads links
- Enable auto-tagging in Google Ads
- Import conversions in Google Ads
Audience Export
Section titled “Audience Export”Audiences created in GA4 can be used in Google Ads for:
- Remarketing campaigns
- Customer match
- Similar audiences