Back to Blog
Analytics
Feb 16, 2025
Ludde

Post UA→GA4 Migration Audit Checklist: 15 Things to Verify

Migrated from Universal Analytics but haven't validated the setup? Use this checklist to catch the gaps.

Post UA→GA4 Migration Audit Checklist: 15 Things to Verify

Universal Analytics sunset in July 2024, and most teams rushed through the migration. Some used Google's auto-migration tool, others rebuilt from scratch, and many did something in between. Now that the dust has settled and GA4 is your sole analytics platform, it's time to audit what actually made it across — and what was silently lost or misconfigured in the transition.

We've audited hundreds of post-migration GA4 properties and found that nearly every one has at least 3-5 issues that went undetected during migration. These issues silently corrupt your data, undercount conversions, or leave critical features disabled. This comprehensive 15-point checklist covers everything you should verify.

GTM Folders view showing organized structure with GA4 Core, Events, Ads, Meta, Consent, Utilities, and LinkedIn folders

Data Collection Basics

1. Verify GA4 Data Stream Is Connected and Receiving Events

Check that your GA4 data stream is actively receiving data. Go to Admin → Data Streams and verify: the stream shows recent data, the Measurement ID matches what's deployed on your site, and events appear in the Realtime report. If the auto-migration created a new stream but your site still sends to the old one, you may have been collecting data into a stream nobody monitors.

2. Check Enhanced Measurement Settings

Enhanced Measurement auto-tracks several events (scrolls, outbound clicks, site search, etc.) that may conflict with your custom GTM tracking. If you had custom scroll tracking in UA via GTM, and Enhanced Measurement is also tracking scrolls, you get duplicate events. Review each Enhanced Measurement toggle and disable any that overlap with your GTM implementation.

3. Ensure All Custom Events from UA Have GA4 Equivalents

Create a spreadsheet mapping every UA custom event (Category/Action/Label) to its GA4 equivalent. Many auto-migrations create GA4 events with awkward names like category_action. Verify each event fires correctly and consider renaming to follow GA4's recommended naming conventions (lowercase, underscores, max 40 characters).

Custom Configuration

4. Verify All Custom Dimensions Are Registered

GA4 requires custom dimensions to be explicitly registered in Admin → Custom Definitions before they appear in reports. Unlike UA, sending a parameter with an event doesn't automatically make it available as a reporting dimension. Check that every custom parameter you're sending is registered with the correct scope (event-scoped or user-scoped).

5. Confirm Ecommerce Events Follow GA4 Naming

GA4 ecommerce uses different event names and data structures than UA. Verify that you're using GA4-specific events (view_item, add_to_cart, purchase) with the correct items array format — not the old UA Enhanced Ecommerce format. The auto-migration tool often creates hybrid implementations that partially work but miss critical parameters.

6. Check Conversion Events Are Marked Correctly

In UA, goals were configured at the view level. In GA4, conversions are marked at the property level by toggling the "Mark as conversion" switch on specific events. Verify that all your important conversion events (purchase, sign_up, generate_lead, etc.) are marked as conversions. Also check that no irrelevant events are accidentally marked, which inflates conversion rates.

Integrations

7. Verify Google Ads Linking and Audience Sharing

If you had UA linked to Google Ads, verify the GA4 → Google Ads link is active with Personalized Advertising enabled. Check that your conversion imports in Google Ads are pulling from GA4 (not the deprecated UA property). Update any Smart Bidding strategies that were using UA conversions.

8. Confirm Cross-Domain Tracking Is Configured

Cross-domain tracking works differently in GA4 than UA. In UA, it required GTM linker configuration. In GA4, it's configured in Admin → Data Streams → Configure Tag Settings → Configure Your Domains. Verify that all domains participating in cross-domain tracking are listed, and check for self-referrals in your acquisition reports.

Data Quality

9. Check Internal Traffic Filters Are Active

GA4 internal traffic filtering requires three steps: defining internal traffic rules, creating a data filter, and activating the filter. Many teams completed steps 1-2 but left the filter in "Testing" mode, meaning internal traffic is still included in reports. Verify the filter status is set to "Active".

10. Verify BigQuery Export Is Enabled

If you were using BigQuery with UA, set up the GA4 BigQuery export. GA4 offers both daily and streaming export options. Enable the link in Admin → BigQuery Links and verify that data is flowing by checking your BigQuery project for events_* tables.

11. Confirm Data Retention Is Set to 14 Months

GA4's default data retention is 2 months — vastly shorter than UA's unlimited retention. This affects Explorations only (standard reports use aggregated data). Go to Admin → Data Settings → Data Retention and change to 14 months immediately. This change is not retroactive — data already deleted under the 2-month window is gone permanently.

Privacy and Attribution

12. Check Google Signals Settings

Google Signals enables cross-device tracking and demographics data but can trigger data thresholding in reports (your data gets hidden for privacy). Review your Google Signals setting and understand the trade-off: more user-level insights vs. more thresholding in reports.

13. Verify Consent Mode Implementation

If you're operating in the EU/EEA, Consent Mode v2 is now required for Google Ads features. Verify that your CMP (Consent Management Platform) correctly sets ad_storage, analytics_storage, ad_user_data, and ad_personalization consent states. Test with GTM Preview mode to confirm consent signals are being sent.

Validation

14. Test Key Conversion Paths End-to-End

Walk through your most important conversion paths (e.g., landing page → product page → cart → checkout → purchase) with GA4 DebugView open. Verify that every event fires in the correct sequence with the correct parameters. This catches issues that automated checks miss, such as events firing with wrong parameter values or in the wrong order.

15. Compare Session Counts with a Reliable Source

Compare GA4 session counts over a 7-day period with another data source — your CMS analytics, server logs, or a third-party tool. Significant discrepancies (>20%) indicate tracking gaps: GA4 tag not loading on certain pages, consent blocking analytics collection, or events being filtered incorrectly. This is your final sanity check.

One-Click Migration Audit

NiceLookingData covers 11 of these 15 checks automatically. Connect your GA4 property, run an audit, and get a detailed report on which migration items are correctly configured and which need attention — in under 60 seconds.

Key Takeaways

  • Nearly every post-migration GA4 property has 3-5 undetected issues — audit yours systematically using this checklist.
  • Change data retention to 14 months immediately if you haven't already — the default 2-month setting permanently deletes data.
  • Verify that internal traffic filters are not just defined but actually activated (common oversight).
  • Ensure Google Ads is linked to GA4 (not the deprecated UA property) and conversion imports are updated.
  • Test conversion paths end-to-end with DebugView — automated checks catch configuration issues, but manual testing catches data quality problems.
Thanks for reading!