skills/analytics-tracking/references/ga4-implementation.md
Detailed implementation guide for Google Analytics 4.
| 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 |
Use Google's predefined events when possible for enhanced reporting:
All properties:
E-commerce:
Games:
Reference: https://support.google.com/analytics/answer/9267735
// Basic event
gtag('event', 'signup_completed', {
'method': 'email',
'plan': 'free'
});
// Event with value
gtag('event', 'purchase', {
'transaction_id': 'T12345',
'value': 99.99,
'currency': 'USD',
'items': [{
'item_id': 'SKU123',
'item_name': 'Product Name',
'price': 99.99
}]
});
// User properties
gtag('set', 'user_properties', {
'user_type': 'premium',
'plan_name': 'pro'
});
// User ID (for logged-in users)
gtag('config', 'GA_MEASUREMENT_ID', {
'user_id': 'USER_ID'
});
// Custom event
dataLayer.push({
'event': 'signup_completed',
'method': 'email',
'plan': 'free'
});
// Set user properties
dataLayer.push({
'user_id': '12345',
'user_type': 'premium'
});
// E-commerce purchase
dataLayer.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': {
// ...
}
});
// Event with conversion value
gtag('event', 'purchase', {
'value': 99.99,
'currency': 'USD'
});
Or set default value in GA4 Admin when marking conversion.
Custom dimensions:
Custom metrics:
| 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 |
Admin > Data display > Audiences
Use cases:
High-intent visitors:
Engaged users:
Purchasers:
Enable with:
?debug_mode=true'debug_mode': true in configView at: Reports > Configure > DebugView
Check events within 30 minutes: Reports > Real-time
Events not appearing:
Parameter values missing:
Conversions not recording:
Admin > Data streams > [Stream] > Configure tag settings > Define internal traffic
Exclude:
For multiple domains sharing analytics:
Admin > Data streams > [Stream] > Configure tag settings
Audiences created in GA4 can be used in Google Ads for: