Google Analytics 4 migration checklist

Switching from Universal Analytics (UA) to Google Analytics 4 (GA4)? Here's a guide to get you through it and make sure everything is set up correctly.

Table of contents
  1. Before you start…
  2. Create an account
  3. Create a property
  4. Add a data stream
  5. Install the Google tag
  6. Run a quick verification
  7. Essential Admin settings to do early
  8. Define key events & mark conversions
  9. Set attribution lookback windows
  10. Create custom definitions
  11. Create custom audiences
  12. Create a custom channel group
  13. Integrate GA4 with other key tools
  14. Final verification and troubleshooting
  15. Set up a test property
  16. Generate and customize reports
  17. Share access to your account
  18. Ongoing QA
  19. Final thoughts

All Universal Analytics users moving to GA4 would benefit from a clear guide to avoid data loss, determine what can be migrated to the new system, and identify what can’t. If you’re one of those users, this is for you.

You’ll start with GA4 properties and data streams, replace UA goals with GA4 key events, recreate your filters, channel groups, and audiences, and get it all working with Google Ads, BigQuery, and more. This article will help.

Before you start…

Given how different UA and GA4 are from each other, as explained in the article “Google Analytics 4 vs. Universal Analytics: what changed?”, you should plan the structure of your GA4 account before you actually begin implementing it:

  1. Basic first questions

    How many GA4 accounts and properties do you need? This is the basis of everything else you’ll do. We suggest one GA4 account per company and one property per brand, website, or app.

  2. Mapping

    Create a UA-to-GA4 table to fully understand what needs to change and why, what is a direct match, and what isn’t, so you can continue to track your business metrics as you’re used to. Here’s a quick example template you can use:

    Universal Analytics metricsGoogle Analytics 4 metrics
    GoalEvent name
    Category / Action / LabelEvent parameters
    ConversionKey event + counting method (once per session vs. once per event)
    AudienceAudience name
    Channel groupCustom channel group name (rules + order)
    View filters / ViewsData filters / Report Library (collections + topics)
    Referral exclusionUnwanted referrals
    Cross-domain listConfigure your domains
    Content groupingContent Group setting
    Site search settingsEnhanced Measurement / Site search
    E-commerce hitsE-commerce events + items array
    Custom dimensionCustom dimension
    Custom metricCustom metric
  3. Milestones and timeframes

    Set out significant goals to achieve over time (like getting the account set up, go live, and a review period) and when you want to achieve each one.

  4. Requirements

    Do you have all the necessary tools or permissions for implementation? Consider things like access management, the different environments (testing and live site), Content Management System (CMS) permissions, and access to Google Tag Manager (GTM) or GA4 Admin.

  5. Archive UA records

    Think about how you’ll keep your older UA reports. You can export important reports to CSV or PDF files, or back up your detailed data to BigQuery or Looker Studio. Make a note of where you’ve stored these files for year-over-year comparisons.

Now you can start the migration process.

1) Create an account

If you already have an account and you only need to create a new property, skip to step 2). To create an account from scratch:

  1. Start by following this link.
  2. Click Start Measuring.

GA4 interface showing the Start Measuring button to begin creating a new account

  1. As advised before, name the account after your legal entity or project.

GA4 account creation screen with the account name field

  1. Leave default data‑sharing options as needed, since these don’t affect tracking quality.

GA4 data sharing settings screen with default options

  1. Click Next to add the first property.

Tip: keep one account per company. Use separate accounts only if you manage unrelated businesses.

2) Create a property

  1. If you’re continuing from the end of the previous section, skip to 2.2. Otherwise, first go to Admin > Create > Property.
  2. Name the property clearly (after your website, for example), select the reporting time zone (e.g., United States – Los Angeles time) and currency (e.g., US Dollar).

GA4 property creation screen showing the property name, time zone, and currency fields

Tip: time zone and currency affect how conversion value and day boundaries show up in reports.

  1. Click Next. Complete the business information prompts (industry category and business size).

GA4 business information screen with industry category and business size options

  1. Click Next. Select how you intend to use Google Analytics. This information will determine the set of default reports that GA presents to you.

GA4 screen asking how the user intends to use Google Analytics to determine default reports

  1. Click Create and accept the Analytics Terms of Service and the Data Processing Amendment.

3) Add a data stream

  1. If you’re continuing from the end of the previous section, skip to 3.2. If not, first go to Admin > Data collection and modification > Data streams.
  2. Click Add Stream.

GA4 Data streams panel showing the Add Stream button

  1. Select iOS app, Android app, or Web.

GA4 stream type selection screen showing iOS app, Android app, and Web options

  1. For an iOS or Android app stream:

    • Start by entering the iOS bundle ID or Android package name, the app name, and, for iOS only, the App Store ID. Click Register app.

    GA4 iOS or Android app stream setup screen with bundle ID, app name, and App Store ID fields

    • Click Next and follow the instructions to download the configuration file for the app.
    • Click Next and follow the instructions to add the Google Analytics for Firebase SDK to your app.
    • Click Next. Run your app to make sure the installation was successful and that the app is communicating with Google servers.
    • Click Finish.

Why a Firebase SDK? When an app data stream is set up, Google Analytics creates a corresponding Firebase project and app data stream, and automatically links the Firebase project to your property, if your project and property are not already linked.

  1. For a web stream:

    • Enter your website URL and stream name.

    GA4 web stream setup screen with website URL and stream name fields

    • On the web stream details panel, you can find your Measurement ID (looks like G-XXXXXXX).
    • You can either enable or disable Enhanced Measurement. We recommend that you leave it ON so that GA4 can automatically track common interactions like page views, scrolls, site search, file downloads, among other events.

    GA4 web stream details panel showing the Measurement ID and Enhanced Measurement toggle set to ON

    Tip: you can also click on the Settings button next to Enhanced Measurement to fine‑tune what’s auto‑collected.

    • Click Create & continue on top of the page.

Tip: You can create multiple streams. If you previously split web/app in UA, you can unify them in a single GA4 property by adding iOS/Android streams alongside web (it helps cross-platform audiences and attribution).

Congrats! You have just set up your Google Analytics 4 account and property. Now it’s time to start collecting, analyzing, and making the most of your data. Here are a few basic features to get you started.

4) Install the Google tag

There are a couple of ways to do this, but we recommend using Google Tag Manager. This process is described in detail in the article “How to set up Google Tag Manager on your website”.

After GA4 is live, remove any UA tags to prevent double-counting.

5) Run a quick verification

Before you spend time configuring everything else, now is a good time to confirm that GA4 is receiving hits and that everything is flowing correctly at this stage:

  1. Browse your website (preferably in an incognito window).
  2. Go to GA4 Reports > Realtime.

GA4 Realtime report showing an active user and page title/path appearing

You should see at least one active user (you) and your page title/page path appearing. If you see nothing, verify you’re in the correct property, disable ad-blockers, and double-check the Measurement/Tag ID.

  1. For a deep check:

    • In GTM, click Preview. Enter your website URL and Connect.
    • In GA4, check Admin > Data display > DebugView for event/parameter detail.

    GA4 DebugView screen showing a timeline of events and parameters for debugging

    • Perform a few actions on your website, so in DebugView you should see a timeline of events.
    • Click an event to confirm parameters.

Do not expect identical numbers to those you got in UA, because models are different. At this stage, focus on page_view firing on load, key events firing once, and having the required parameters present. If all that stands, everything is looking good!

6) Essential Admin settings to do early

How GA4 stores, filters and uses data is determined by some settings in the Admin panel. If you don’t do these now, you’ll be dealing with broken reports for weeks.

  1. Data retention

    By default, GA4 retains user-level and event-level data for only two months. So, if you want longer retrospective analysis and year-on-year comparisons, go to Data collection and modification > Data retention > Set Event Data Retention to 14 months (if your policy allows).

    GA4 Data retention settings showing the Event Data Retention option set to 14 months

  2. Reporting identity

    For more stable counts, you can ensure the platform is blending device signals and modeled users. For that, go to Data display > Reporting identity. Keep the option “Blended” for stability, unless you have a reason to change.

    GA4 Reporting identity settings showing the Blended option selected

  3. Internal traffic filter

    Go to Data collection and modification > Data filters > Create filter > Internal traffic. You can define this by IP rules, which will filter out traffic from users within your organization, to ensure your website or app analytics data is accurate and reflects only external user behavior.

    GA4 Data filters screen showing the Internal traffic filter creation option

  4. Unwanted referrals

    To prevent conversions from being attributed to the gateway “referral” instead of the true source, navigate to Data collection and modification > Data streams > Web > Configure tag settings > List unwanted referrals. Add payment gateways (e.g., paypal.com) or authentication domains.

    GA4 Configure tag settings panel showing the List unwanted referrals option

    GA4 List unwanted referrals screen where payment gateways like paypal.com can be added

  5. Cross-domain measurement

    If users switch between multiple domains, go to Data collection and modification > Data streams > Web > Configure tag settings > Configure your domains. Add every domain/subdomain in the journey, to keep sessions intact and preserve attribution across domains.

    GA4 Configure tag settings panel showing the Configure your domains option

    GA4 Configure your domains screen where domains and subdomains can be added for cross-domain tracking

  6. Consent Mode (recommended in EU/UK)

    If you are using a cookie/consent banner, set up Consent Mode (using Google Tag Manager or gtag) so Analytics respects those choices and fills in the gaps where it can. Also, make sure Analytics works with your Consent Management Platform (CMP).

    Then, for checking and setting things up, in GA4, go to Data collection and modification, then Consent settings, and manage the consent settings for each of your data streams that use Consent Mode.

    GA4 Consent settings screen showing consent mode configuration options for data streams

  7. Site search

    To allow access to search terms reports with no custom work, go to Data collection and modification > Data streams > Web > Web stream details > Enhanced Measurement. Confirm the query parameter your website uses (often q, s, or search), and edit if needed.

    GA4 Enhanced Measurement settings showing the site search query parameter configuration

  8. Google signals data collection

    To allow audience ads and demographics in reports, navigate to Data collection and modification > Data collection > allow “Google signals data collection”.

    GA4 Data collection settings showing the Google signals data collection toggle

  9. Adjust session timeout

    To prevent legitimate long sessions from being split artificially, go to Data collection and modification > Data streams > Web > Configure tag settings > Adjust session timeout. For long B2B sessions, extend (up to 7h 55m); otherwise keep it default for short journeys.

    GA4 Configure tag settings panel showing the Adjust session timeout option

    GA4 session timeout settings showing the configurable timeout duration

  10. Timer for engaged sessions

    While you’re adjusting the session timeout, in the exact same area, you can also adjust the timer for engaged sessions. Since the default 10 seconds is too “soft” for most websites, increase it to 60 seconds so “engagement” actually means engagement.

    GA4 engaged session timer setting showing the option to increase the default 10-second threshold

  11. Choose the reporting model

    To make sure your reports match your business reality from day one, go to Data display > Events > Attribution settings > Reporting attribution model > Keep Data-driven. And since you’re there, scroll down to the “Key event lookback window” section and set lookback windows now (you’ll also get a chance to refine that ahead).

    GA4 Attribution settings screen showing the Reporting attribution model set to Data-driven

7) Define key events & mark conversions

That UA-to-GA4 mapping you did before? Now is when you’ll use it to turn your UA goals into GA4’s key events:

  1. Go to Google Tag Manager and create GA4 Event tags with the required parameters (we go through how to do this in the article “How to set up Google Tag Manager on your website”). Here’s an example of how to create an event tag for a lead form submission:

    • Tag: GA4 Event > Event name (e.g., generate_lead).
    • Parameters: form_id, form_name, page_location.
    • Trigger: Form Submit (refine to the specific form).
  2. Preview & test in Google Tag Assistant. Then, confirm in GA4 DebugView.

  3. Now in GA4, to mark events as key events (conversions):

    • Go to Admin > Data display > Events > Recent events > click the star next to the event name to mark it as key event (for all the events that were previously considered UA goals).

    GA4 Events screen showing the star icon next to an event name to mark it as a key event

  4. Define the counting method:

    • In the “Key events” area, click on the three dots to the right of each key event and select Change counting method.

    GA4 Key events screen showing the three-dot menu with the Change counting method option

    • Choose either once per session (for UA goals that previously counted once) or once per event (for truly repeatable conversions).

    GA4 counting method selection showing the once per session and once per event options

Tips: use recommended event names where possible (purchase, add_to_cart, login, sign_up) to improve default reporting. Also, if UA goals had monetary value, ensure GA4 sends value/currency on the relevant events.

8) Set attribution lookback windows

If you didn’t do this in step 6), do it now. To get more accurate, realistic data, adjust the lookback window to match the length of your business’s sales process. GA4 defaults to 30 days, and that won’t work for all businesses. To do this:

  1. Go to Data display > Events > Attribution settings > Key event lookback window.
  2. Choose the ideal timeframe for both Acquisition key events and All other key events.

GA4 Attribution settings showing the Key event lookback window options for Acquisition key events and All other key events

9) Create custom definitions

GA4 will collect any custom parameters you send, but you’ll need to register them as custom dimensions or metrics before they appear in the standard reports. Here’s how:

  1. Go to Admin > Data display > Custom definitions > Create custom dimension/metric.

GA4 Custom definitions screen showing the option to create a new custom dimension or metric

  1. Define the scope (event), then the dimension/metric name (e.g., Form name), and lastly the event parameter (e.g., form_name).

GA4 custom dimension creation form showing scope, dimension name, and event parameter fields

  1. Save, but keep in mind that values won’t appear retroactively.

Tips: be consistent and use lowercase in parameter names. Also, don’t register every parameter – only those you’ll report on (to avoid high-cardinality issues).

10) Create custom audiences

You can also create custom audiences to further refine your analysis. They also help you see user behavior for specific slices (e.g., users who scrolled +75%; casual browsers). To do it:

  1. Go to Admin > Data display > Audiences > New audience.

GA4 Audiences screen showing the New audience button

  1. Follow GA4’s suggestions that show up (like 7-day inactive users) or create a custom audience from scratch.

GA4 audience creation screen showing GA4 suggestions and the option to create a custom audience from scratch

For an e-commerce, for example, you can create audiences such as:

  • Engaged readers
  • Cart abandoners (added to cart, no purchase in 7 days).
  • Recent buyers (purchase in last 30 days).

Tip: rebuild any UA audiences used for remarketing in GA4 and link Google Ads. Expect a fresh build, with no retrieval of historical data.

11) Create a custom channel group

In GA4, the order of your channels (for viewing and reporting your data) is important. It’s the order GA4 uses to decide which channel a visit comes from. Because of this, having “direct” traffic at the top of the list can lead to miscategorization and give you incorrect reports.

If keeping your channel groups in GA4 the same as in UA is most important to you, then mirror the UA set up as much as you can. If you do this, write down exactly what rules you’ll use for UTMs going forward (for example, use utm_medium=paid_social and not paidsocial), so your channel groups are very clear.

However, if you’d like to rethink how things are done and get better outcomes, then you should put direct traffic at the very bottom of your list. All your paid and owned channels should be accounted for first, and then direct traffic will only be anything that doesn’t fall into one of those other groups.

To create a custom channel group that matches your traffic mix, do this:

  1. Go to the Admin > Data display > Channel groups.

GA4 Channel groups screen in the Admin panel

  1. Click on the Default Channel Group and reorder the channel list as desired.

GA4 Default Channel Group screen showing the channel list that can be reordered

Either mirror your UA channel splits, or go with our general recommendation of order of channels:

  • Paid Search
  • Paid Shopping
  • Paid Social
  • Paid Video
  • Cross-network
  • Display
  • SMS
  • Mobile Push Notifications
  • Paid Other
  • Affiliates
  • Email
  • Organic Shopping
  • Organic Social
  • Organic Video
  • Organic Search
  • Audio
  • Referral
  • Direct

12) Integrate GA4 with other key tools

We go through each of the most relevant integrations in other blog articles, but for now you can easily ensure this:

  • Google Ads

    Go to Admin > Product links > Google Ads links > Link account(s). This enables correct import of GA4 key events (instead of UA goals), consistent attribution, personalized ads (if you use audiences), and ensures auto-tagging in Google Ads. Don’t forget to set GA4 key events as “Primary”, and pause/disable UA goals to avoid double counting. Also, align counting method and conversion windows with GA4.

    GA4 Product links panel showing the Google Ads links option

  • Google Search Console

    Go to Admin > Product links > Search Console links > Link account(s). This way, you can pull organic queries and landing page context into GA4.

    GA4 Product links panel showing the Search Console links option

  • BigQuery

    Go to Admin > Product links > BigQuery links > Link account(s). It gives you unsampled raw events for advanced analysis and joins with CRM. Make sure to choose data location (e.g., EU/US) to match your compliance needs. Also, enable daily export and event-level streaming, if needed.

    GA4 Product links panel showing the BigQuery links option

13) Final verification and troubleshooting

Now that most of your GA4 configuration is done, run another round of validation – just like on step 5). Some of the most common issues post-migration are:

  • Double counting in Google Ads

    This happens when both UA goals and GA4 key events are set to “Primary”. To fix it, disable UA imports.

  • Missing parameters

    If a GA4 “purchase” event fired, but the value, currency, or transaction ID are missing, then the required parameters are missing.

  • Attribution drift

    This may happen if you forgot to set unwanted referrals (for instance, paypal.com). Go to section 6-d) to learn how to add this information and retest.

14) Set up a test property

It’s always risky to experiment on a live property, so setting up a test property allows you to try changes safely:

  1. Create a second GA4 property for testing.
  2. In GTM’s Google tag, add that test property as an additional destination.
  3. Try out every new tag or settings there and only then ship them to production.

15) Generate and customize reports

To create useful reports for you or your team, with key weekly or monthly views, you have a few options in the Reports panel:

GA4 Reports panel overview showing the available report sections

  1. Business objectives > Generate leads > Traffic acquisition: Check where users come from.

    GA4 Traffic acquisition report showing where users come from by channel

  2. Business objectives > View user engagement & retention > Pages and screens: Check top content and on‑page behavior.

    GA4 Pages and screens report showing top content and on-page behavior metrics

  3. Business objectives > Drive sales (if applicable): Check the revenue and e-commerce events.

    GA4 Drive sales report showing revenue and e-commerce events

  4. Business objectives > View user engagement & retention > Overview: Check if new users are coming back.

    GA4 User engagement and retention overview report showing new versus returning users

For easier access to the reports you need, you can also customize your left menu by following these steps:

  1. Go to Reports > Library (bottom left).

    GA4 Reports Library button at the bottom left of the Reports panel

  2. Add all the collections you need (e.g., Acquisition, Engagement, Monetization). Reorder them as you wish.

    GA4 Reports Library showing available collections like Acquisition, Engagement, and Monetization that can be added and reordered

Tip: If you want UA-style views, publish collections that mimic that navigation and save Explorations that replicate core funnels.

  1. Click Publish.

If you need to share a report with someone instantly, or schedule it, you have a couple of options:

  1. Click on any report > Share > Share link (permissions apply).
  2. Click Share > Schedule email to send PDFs to stakeholders (choose frequency and recipients).
  3. Click Export

Tip: Expect different numbers than those you got in UA, given how GA4 is a different measurement tool by design.

16) Share access to your account

If you need someone else to manage the same account, follow these steps:

  1. Go to the Admin panel. Under Account or Property, click Access Management.

    GA4 Admin panel showing the Access Management option under Account or Property

  2. Click on + and then Add users or user groups.

    GA4 Access Management screen showing the + button and Add users or user groups option

  3. Invite by e-mail and assign a role:

    • Administrator: Full control (we recommend to use this sparingly).
    • Editor: Configure settings, tags and links, but has no user management.
    • Marketer / Analyst / Viewer: Create/see reports, so there are fewer risks.

Tips: for agencies, we recommended granting Property‑level access (Editor or Analyst). Keep Account Admin with your company.

GA4 user invitation screen showing the role options including Administrator, Editor, Marketer, Analyst, and Viewer

17) Ongoing QA

Keep your data in good shape with regular Quality Assurance (QA). Implement things like:

  1. Quarterly QA

    Think of this as a health check or a quick audit. Use GA4’s DebugView to ensure the correct events fire only once and that all important parameters are included. If you’ve linked GA4 to BigQuery, also check for any duplicate transaction IDs.

  2. Release checklist

    A quick checklist to follow whenever your website or CMS changes will prevent a lot of problems. Test changes thoroughly before you put them live. Immediately after that, test the same steps on the live site. And for the first 24 hours after the changes, quickly check the Realtime report to confirm everything is as it should be.

  3. Make use of your test property

    Don’t test new tags on your live website. Send them all to a test property first. Only when they work properly in the test property should you add them to the live environment.

  4. Review access management

    Check who has access to what every three months. Also, when an agency or freelancer stops working with you, remove their access in the same week.

Final thoughts

Moving from Universal Analytics to Google Analytics 4 requires a lot of care, but doesn’t have to be a nightmare. A good migration to GA4 means you focus on three things:

  • Clarity: mapping UA goals to GA4 key events, having the same lookback windows, and documenting what has changed, and why.
  • Control: checking your events in DebugView, deleting old UA imports from Google Ads to stop double-counting, and creating a separate test GA4 property to safely try things out.
  • Continuity: keeping a copy of your UA data, rebuilding your audiences and important reports.

And, even more importantly, don’t try to make GA4 exactly like UA. GA4 is designed to work in a different way and answer slightly different business questions to help you grow. After you are comfortable with GA4, think about using server-side Google Tag Manager for better data, especially if managing consent and ad blockers are big concerns. Our article “How to set up GA4 via GTM server-side tagging” gives all the detail on when it’s a good idea to do this, how much it will cost and how to actually do it.

Ready when you are

Send us the account. We'll tell you what it's costing you.

A POAS Readiness Check ends with a written report + prioritized fix list. €500. Zero obligation.

Book an audit →