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:
-
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.
-
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 metrics Google Analytics 4 metrics Goal Event name Category / Action / Label Event parameters Conversion Key event + counting method (once per session vs. once per event) Audience Audience name Channel group Custom channel group name (rules + order) View filters / Views Data filters / Report Library (collections + topics) Referral exclusion Unwanted referrals Cross-domain list Configure your domains Content grouping Content Group setting Site search settings Enhanced Measurement / Site search E-commerce hits E-commerce events + items array Custom dimension Custom dimension Custom metric Custom metric -
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.
-
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.
-
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:
- Start by following this link.
- Click Start Measuring.

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

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

- 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
- If you’re continuing from the end of the previous section, skip to 2.2. Otherwise, first go to Admin > Create > Property.
- 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).

Tip: time zone and currency affect how conversion value and day boundaries show up in reports.
- Click Next. Complete the business information prompts (industry category and business size).

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

- Click Create and accept the Analytics Terms of Service and the Data Processing Amendment.
3) Add a data stream
- 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.
- Click Add Stream.

- Select iOS app, Android app, or Web.

-
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.

- 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.
-
For a web stream:
- Enter your website URL and stream name.

- 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.

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:
- Browse your website (preferably in an incognito window).
- Go to GA4 Reports > Realtime.

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.
-
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.

- 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.
-
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).

-
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.

-
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.

-
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.


-
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.


-
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.

-
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.

-
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”.

-
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.


-
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.

-
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).

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:
-
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).
-
Preview & test in Google Tag Assistant. Then, confirm in GA4 DebugView.
-
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).

-
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.

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

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:
- Go to Data display > Events > Attribution settings > Key event lookback window.
- Choose the ideal timeframe for both 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:
- Go to Admin > Data display > Custom definitions > Create custom dimension/metric.

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

- 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:
- Go to Admin > Data display > Audiences > New audience.

- Follow GA4’s suggestions that show up (like 7-day inactive users) or 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:
- Go to the Admin > Data display > Channel groups.

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

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
- 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.

-
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.

-
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.

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:
- Create a second GA4 property for testing.
- In GTM’s Google tag, add that test property as an additional destination.
- 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:

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

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

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

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

For easier access to the reports you need, you can also customize your left menu by following these steps:
-
Go to Reports > Library (bottom left).

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

Tip: If you want UA-style views, publish collections that mimic that navigation and save Explorations that replicate core funnels.
- Click Publish.
If you need to share a report with someone instantly, or schedule it, you have a couple of options:
- Click on any report > Share > Share link (permissions apply).
- Click Share > Schedule email to send PDFs to stakeholders (choose frequency and recipients).
- 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:
-
Go to the Admin panel. Under Account or Property, click Access Management.

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

-
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.

17) Ongoing QA
Keep your data in good shape with regular Quality Assurance (QA). Implement things like:
-
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.
-
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.
-
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.
-
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.