# GA4 Installation Verification Checklist Comprehensive checklist and procedures for verifying GA4 installation across all implementation methods. ## Pre-Launch Verification Workflow ### Phase 1: Immediate Verification (0-5 minutes) ✅ **Task 1: Verify Code Placement** **For gtag.js**: - [ ] Code in `` section - [ ] Before other scripts - [ ] After opening `` tag - [ ] Correct Measurement ID (G-XXXXXXXXXX) **For GTM**: - [ ] Head snippet after opening `` tag - [ ] Body snippet after opening `` tag - [ ] Correct Container ID (GTM-XXXXXXX) - [ ] GA4 Configuration tag created in GTM - [ ] Tag triggers on "Initialization - All Pages" **For CMS/Plugin**: - [ ] Plugin installed and activated - [ ] Connected to correct GA4 property - [ ] Measurement ID matches Data Stream ✅ **Task 2: Browser Console Check** 1. Open website in Chrome 2. Press F12 (Developer Tools) 3. Console tab 4. Look for: - [ ] No JavaScript errors related to gtag/GTM - [ ] "Google Analytics" or "gtag" messages - [ ] GTM: "Tag Manager loaded" message ✅ **Task 3: Network Tab Verification** 1. Developer Tools → Network tab 2. Reload page 3. Filter: "google-analytics" or "analytics" 4. Look for: - [ ] Request to `www.google-analytics.com/g/collect` - [ ] Status: 200 (success) - [ ] Query parameters include `&tid=G-XXXXXXXXXX` ### Phase 2: DebugView Verification (5-15 minutes) ✅ **Task 4: Enable Debug Mode** **Option 1: Google Analytics Debugger Extension (Easiest)** 1. [ ] Install from Chrome Web Store 2. [ ] Enable extension (icon turns blue) 3. [ ] Reload website **Option 2: GTM Preview Mode** 1. [ ] GTM → Click "Preview" 2. [ ] Enter website URL 3. [ ] Click "Connect" 4. [ ] Tag Assistant tab opens **Option 3: Manual Debug Parameter (gtag.js)** ```javascript gtag('config', 'G-XXXXXXXXXX', { 'debug_mode': true }); ``` ✅ **Task 5: Access DebugView** 1. [ ] GA4 Property → Admin → DebugView 2. [ ] Select device from dropdown (top) 3. [ ] Wait 10-30 seconds for data ✅ **Task 6: Verify Automatic Events** Look for these events in DebugView: **session_start**: - [ ] Event appears on first page load - [ ] Parameters present: `session_id`, `engagement_time_msec` **first_visit** (new users only): - [ ] Appears for users never visited before - [ ] Clear cookies to test **page_view**: - [ ] Fires on every page load - [ ] Check parameters: - [ ] `page_location` (full URL) - [ ] `page_referrer` (if applicable) - [ ] `page_title` (page title) ✅ **Task 7: Verify Enhanced Measurement Events** **If Enhanced Measurement Enabled**: **scroll** (requires scrolling 90% down page): - [ ] Scroll to bottom of long page - [ ] Event appears in DebugView - [ ] Parameters: `engagement_time_msec` **click** (outbound links): - [ ] Click link to external domain - [ ] Event appears - [ ] Parameters: `link_url`, `link_domain`, `outbound: true` **file_download**: - [ ] Click link to PDF, DOC, or ZIP file - [ ] Event appears - [ ] Parameters: `file_name`, `file_extension` **form_start / form_submit**: - [ ] Interact with form field - [ ] Submit form - [ ] Both events appear - [ ] Parameters: `form_id`, `form_name` ✅ **Task 8: Inspect Event Parameters** Click any event in DebugView, verify parameters section shows: **Automatically Collected**: - [ ] `page_location` - [ ] `page_referrer` - [ ] `page_title` - [ ] `language` - [ ] `screen_resolution` - [ ] `engagement_time_msec` **User Properties**: - [ ] `first_visit_time` (new users) - [ ] Any custom user properties configured ### Phase 3: Realtime Reports Verification (15-30 minutes) ✅ **Task 9: Check Realtime Overview** 1. [ ] Reports → Realtime 2. [ ] Confirm showing "1" active user (or more) 3. [ ] User location appears on map 4. [ ] Recent events list shows `page_view` ✅ **Task 10: Verify Event Counts** Click "Event count by Event name" card: - [ ] `page_view` events present - [ ] `session_start` events present - [ ] `first_visit` (if testing as new user) - [ ] Any custom events configured ✅ **Task 11: Test Multi-Page Navigation** 1. [ ] Navigate to 2-3 different pages 2. [ ] Each navigation triggers new `page_view` 3. [ ] Realtime shows updated event counts 4. [ ] Page titles/paths update in real-time ### Phase 4: Standard Reports Verification (24-48 hours) ⚠️ **Note**: Standard reports have 24-48 hour delay ✅ **Task 12: User Acquisition Report** After 24-48 hours: 1. [ ] Reports → Acquisition → User acquisition 2. [ ] Data appears for "Direct" traffic (minimum) 3. [ ] Users and sessions counted ✅ **Task 13: Engagement Reports** 1. [ ] Reports → Engagement → Pages and screens 2. [ ] Website pages listed 3. [ ] Views counted 4. [ ] Average engagement time shown ✅ **Task 14: Events Report** 1. [ ] Reports → Engagement → Events 2. [ ] All events listed (page_view, session_start, etc.) 3. [ ] Event counts shown 4. [ ] Event parameters accessible (click event) ## Advanced Verification ### Custom Event Verification ✅ **Task 15: Test Custom Events** (if implemented) For each custom event: 1. [ ] Trigger event action (click button, submit form, etc.) 2. [ ] Event appears in DebugView within seconds 3. [ ] Event name matches expected 4. [ ] All parameters present with correct values 5. [ ] Event appears in Realtime report 6. [ ] After 24-48 hours, appears in Events report ### Ecommerce Tracking Verification ✅ **Task 16: Test Ecommerce Events** (if implemented) **view_item**: 1. [ ] View product page 2. [ ] Event fires in DebugView 3. [ ] Parameters: `currency`, `value`, `items` array 4. [ ] Items array contains `item_id`, `item_name`, `price` **add_to_cart**: 1. [ ] Add product to cart 2. [ ] Event fires 3. [ ] Items array populated 4. [ ] Quantity and price correct **purchase**: 1. [ ] Complete test purchase 2. [ ] Event fires 3. [ ] `transaction_id` unique 4. [ ] `value` matches total 5. [ ] `currency` correct (ISO code) 6. [ ] Items array complete 7. [ ] Check Monetization reports after 24-48 hours ### Cross-Domain Tracking Verification ✅ **Task 17: Test Cross-Domain** (if configured) 1. [ ] Navigate from domain1.com to domain2.com 2. [ ] Check Network tab for `_gl` parameter in URL 3. [ ] DebugView shows same user across domains 4. [ ] Session ID remains consistent ### User ID Tracking Verification ✅ **Task 18: Test User ID** (if implemented) 1. [ ] User logs in 2. [ ] DebugView shows `user_id` parameter in events 3. [ ] User ID matches expected format 4. [ ] User ID persists across pages 5. [ ] User ID not PII (no email, name, etc.) ## Tag Assistant Verification ✅ **Task 19: Google Tag Assistant** 1. [ ] Install "Tag Assistant Companion" Chrome extension 2. [ ] Visit website 3. [ ] Click extension icon 4. [ ] Verify: - [ ] GA4 tag detected - [ ] Tag status: Green (working) - [ ] Measurement ID correct - [ ] Events firing ## GTM-Specific Verification ### Preview Mode Testing ✅ **Task 20: GTM Preview Mode** 1. [ ] GTM → Preview 2. [ ] Connect to website 3. [ ] Tag Assistant window opens 4. [ ] Summary tab shows: - [ ] Container loaded - [ ] GA4 Configuration tag fired - [ ] All expected GA4 Event tags fired ✅ **Task 21: GTM Data Layer** In Preview Mode: 1. [ ] Variables tab 2. [ ] Click "Data Layer" 3. [ ] Verify: - [ ] `gtm.start` present - [ ] `event: gtm.js` present - [ ] Custom dataLayer pushes present (if applicable) ✅ **Task 22: Trigger Verification** For each GA4 Event tag: 1. [ ] Perform trigger action 2. [ ] Tags tab shows tag fired 3. [ ] Data Layer shows custom event 4. [ ] GA4 DebugView shows event ## Mobile App Verification ### iOS App Verification ✅ **Task 23: iOS Debug Mode** 1. [ ] Xcode: Edit Scheme 2. [ ] Arguments Passed On Launch: `-FIRDebugEnabled` 3. [ ] Run app 4. [ ] DebugView shows device 5. [ ] Events appear (`session_start`, `screen_view`) ✅ **Task 24: iOS Console Logs** Xcode console shows: - [ ] "Firebase Analytics enabled" - [ ] "Firebase configuration loaded" - [ ] No Firebase errors ### Android App Verification ✅ **Task 25: Android Debug Mode** ```bash adb shell setprop debug.firebase.analytics.app com.example.app ``` 1. [ ] Run command 2. [ ] Launch app 3. [ ] DebugView shows device 4. [ ] Events appear ✅ **Task 26: Android Logcat** Logcat shows: - [ ] "FA" (Firebase Analytics) logs - [ ] "Analytics initialized" - [ ] Event logging messages ## Common Issues & Solutions ### Issue: No Data in DebugView **Checklist**: - [ ] Debug mode actually enabled? - [ ] Google Analytics Debugger extension ON? - [ ] Correct GA4 property selected? - [ ] Device dropdown set to correct device? - [ ] Ad blocker disabled? - [ ] Waiting 30+ seconds? **Solutions**: 1. Refresh page with debugger enabled 2. Try incognito mode 3. Check browser console for errors 4. Verify Measurement ID correct ### Issue: Data in DebugView but Not Realtime **Causes**: - Realtime has slight delay (30-60 seconds) - Internal traffic filter blocking data **Solutions**: 1. Wait 2-3 minutes 2. Check: Admin → Data Settings → Data Filters 3. Verify IP not in "Internal Traffic" filter 4. Test from different network ### Issue: Data in Realtime but Not Standard Reports **Expected Behavior**: Standard reports have 24-48 hour delay **Verify**: - [ ] At least 24 hours passed since installation - [ ] Check date range in report includes today - [ ] Data collection not paused (Admin → Data Settings) ### Issue: Duplicate Events **Causes**: - Multiple tracking implementations - Both gtag.js AND GTM installed - Plugin AND manual code **Solutions**: 1. Remove duplicate implementations 2. Choose one method (GTM recommended) 3. Check Network tab for multiple collect requests 4. Review all tracking code locations ### Issue: Enhanced Measurement Not Working **Checklist**: - [ ] Enhanced Measurement toggle ON? - [ ] Admin → Data Streams → Stream → Enhanced Measurement - [ ] Specific event toggle enabled? - [ ] Meeting trigger requirements? (e.g., 90% scroll) - [ ] YouTube videos use JS API enabled? **Solutions**: 1. Enable Enhanced Measurement 2. Check individual event toggles 3. Test specific interactions 4. Allow 24-48 hours for reports ## Post-Launch Monitoring ### Week 1 Checklist - [ ] Day 1: Verify DebugView and Realtime working - [ ] Day 2: Check standard reports starting to populate - [ ] Day 3: Verify all pages tracking correctly - [ ] Day 7: Review acquisition sources - [ ] Day 7: Check engagement metrics baseline - [ ] Day 7: Verify conversions/goals tracking ### Month 1 Checklist - [ ] Review top pages and content - [ ] Validate traffic sources accuracy - [ ] Check for data anomalies - [ ] Review custom events performance - [ ] Verify ecommerce tracking (if applicable) - [ ] Set up alerts for data gaps ## Verification Tools Summary ### Browser Extensions - **Google Analytics Debugger**: Enable debug mode - **Tag Assistant Companion**: Validate tag installation - **GA4 Event Inspector** (3rd party): View events in-page ### GA4 Interface Tools - **DebugView**: Real-time event validation - **Realtime Reports**: Live user activity - **DebugView**: Event parameter inspection ### GTM Tools - **Preview Mode**: Tag firing verification - **Tag Assistant**: Connected testing - **Debug Console**: Data layer inspection ### Developer Tools - **Chrome DevTools**: Network and console inspection - **Xcode Console**: iOS debugging - **Android Logcat**: Android debugging ## Verification Documentation Template **Property**: [Property Name] **Measurement ID**: G-XXXXXXXXXX **Installation Method**: [gtag.js / GTM / Plugin] **Verification Date**: [Date] **Installation Verified**: - [x] Code placement correct - [x] DebugView showing events - [x] Realtime showing users - [x] Enhanced Measurement working - [x] Custom events firing (if applicable) **Verified Events**: - [x] session_start - [x] page_view - [x] scroll - [x] click (outbound) - [x] [custom event name] **Issues Found**: [List any issues] **Resolution**: [How issues were fixed] **Next Steps**: [Monitor standard reports in 24-48 hours] **Verified By**: [Name] ## Final Verification Sign-Off Before considering GA4 installation complete: - [ ] All automatic events firing correctly - [ ] Enhanced Measurement configured and working - [ ] Custom events tested and validated - [ ] Ecommerce tracking verified (if applicable) - [ ] Cross-domain tracking tested (if applicable) - [ ] User ID tracking working (if applicable) - [ ] Internal traffic filters configured - [ ] Data retention settings configured - [ ] Documentation updated with Measurement IDs - [ ] Team trained on DebugView and reports - [ ] Monitoring plan established **Status**: ✅ Installation Verified | ⚠️ Issues Found | ❌ Not Working **Date**: _________________ **Verified By**: _________________ ## Additional Resources - Official Google: Verify GA4 Installation - Official Google: DebugView Guide - Official Google: Tag Assistant Help - See ga4-debugview skill for advanced debugging