Buckets:
| # GA4 Implementation Reference | |
| Detailed implementation guide for Google Analytics 4. | |
| ## Configuration | |
| ### 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) | |
| | 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 | |
| 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 | |
| ### gtag.js Implementation | |
| ```javascript | |
| // 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' | |
| }); | |
| ``` | |
| ### Google Tag Manager (dataLayer) | |
| ```javascript | |
| // 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': { | |
| // ... | |
| } | |
| }); | |
| ``` | |
| --- | |
| ## Conversions Setup | |
| ### Creating Conversions | |
| 1. **Collect the event** - Ensure event is firing in GA4 | |
| 2. **Mark as conversion** - Admin > Events > Mark as conversion | |
| 3. **Set counting method**: | |
| - Once per session (leads, signups) | |
| - Every event (purchases) | |
| 4. **Import to Google Ads** - For conversion-optimized bidding | |
| ### Conversion Values | |
| ```javascript | |
| // Event with conversion value | |
| gtag('event', 'purchase', { | |
| 'value': 99.99, | |
| 'currency': 'USD' | |
| }); | |
| ``` | |
| Or set default value in GA4 Admin when marking conversion. | |
| --- | |
| ## Custom Dimensions and Metrics | |
| ### 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 | |
| 1. Admin > Data display > Custom definitions | |
| 2. Create dimension or metric | |
| 3. Choose scope: | |
| - **Event**: Per event (content_type) | |
| - **User**: Per user (account_type) | |
| - **Item**: Per product (product_category) | |
| 4. Enter parameter name (must match event parameter) | |
| ### 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 | |
| ### Creating Audiences | |
| Admin > Data display > Audiences | |
| **Use cases:** | |
| - Remarketing audiences (export to Ads) | |
| - Segment analysis | |
| - Trigger-based events | |
| ### 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 | |
| ### DebugView | |
| Enable with: | |
| - URL parameter: `?debug_mode=true` | |
| - Chrome extension: GA Debugger | |
| - gtag: `'debug_mode': true` in config | |
| View at: Reports > Configure > DebugView | |
| ### Real-Time Reports | |
| Check events within 30 minutes: | |
| Reports > Real-time | |
| ### 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 | |
| ### Filters | |
| Admin > Data streams > [Stream] > Configure tag settings > Define internal traffic | |
| **Exclude:** | |
| - Internal IP addresses | |
| - Developer traffic | |
| - Testing environments | |
| ### Cross-Domain Tracking | |
| For multiple domains sharing analytics: | |
| 1. Admin > Data streams > [Stream] > Configure tag settings | |
| 2. Configure your domains | |
| 3. List all domains that should share sessions | |
| ### Session Settings | |
| Admin > Data streams > [Stream] > Configure tag settings | |
| - Session timeout (default 30 min) | |
| - Engaged session duration (10 sec default) | |
| --- | |
| ## Integration with Google Ads | |
| ### Linking | |
| 1. Admin > Product links > Google Ads links | |
| 2. Enable auto-tagging in Google Ads | |
| 3. Import conversions in Google Ads | |
| ### Audience Export | |
| Audiences created in GA4 can be used in Google Ads for: | |
| - Remarketing campaigns | |
| - Customer match | |
| - Similar audiences | |
Xet Storage Details
- Size:
- 5.83 kB
- Xet hash:
- fdf7998538ee5badd791b58e0de5f8f2e8b56804c10c125f5760476e32c8fc34
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.