
December 8, 2022
How to Upgrade to Google Analytics 4 (GA4)?
Updated: December 8th, 2022.
In late 2020, Google renamed its App+Web properties to Google Analytics 4 and officially graduated from beta (at least, that’s what Google is saying). This means that from now on, the default property (when you create it) is GA4. Naturally, many people online are confused: should they switch to the new version now? What about the old version?
Later Google Announced that Universal Analytics (GA3) will stop collecting data from July 1st, 2023. This added some clarity to what should be our next steps.
In this blog post, I wanted to show how to upgrade to Google Analytics 4 and why you should not hesitate too much.
Table of Contents
+ Show table of contents +
- The deadline is coming
- GA4 is very different
- Tracking in parallel
- Upgrade to Google Analytics 4
- The first things you should do after you upgrade to Google Analytics 4
- What about events?
- Frequently asked questions about upgrading to Google Analytics 4
- What are the next steps?
- Speaking of GA4 reports…
- Final words
Video tutorial
If you prefer video content, here’s a tutorial from my Youtube channel.
The deadline is coming
Summer of 2023 is coming. Google officially announced that old versions of Google Analytics will stop collecting data on July 1st, 2023. Data in the reports will remain available for at least 6 more months. But it is very unlikely that your old reports will still work in 2024.
You have several options here:
- Switch to another analytics tool
- Or upgrade to Google Analytics 4 (that’s what I’ll show you in this article)
But GA3 will eventually be shut down, and you must take action now.
GA4 is very different
Before you upgrade to Google Analytics 4, you need to have the right mindset.
GA4 is very different compared to the previous versions, and this means that there is no magical button that you can click, and everything will be migrated.
- Google Analytics 4 is event-based. All hits are events. Things like Pageviews, Timing hits, Transaction, and other types (from Universal Analytics) are no longer available. Even a pageview is now an event.
- Data models are different. Google Analytics 4 uses a more flexible data model where things like “event category”, “event action”, etc. are no longer required. You can send any custom parameters you wish. But this is an incredibly oversimplified example.
- Data from Apps and Websites in a single property. If your business owns websites and mobile apps, you can now conveniently stream data to the same property.
- Direct (and free) integration with BigQuery. In Universal Analytics, only premium users can stream data to BigQuery. In GA4, that option is possible even for free accounts.
- Enhanced Measurement. Google Analytics 4 can track more than pageviews (without editing the website’s code). Things like outbound link clicks, scrolling, Youtube video, and other interactions can be tracked automatically. Learn more.
- Explorations. Google Analytics 4 introduced several additional reports/tools for analysis, such as ad-hoc funnels and pathing. Previously, these features were available only for users of GA360. Learn more.
- Scope. In Google Analytics 4, all events are hit-scoped. And if you want to apply something to a user, you can use User Properties (that are user-scoped). Session scope (for custom dimensions) is not available at the moment.
- Historical data limit. In Universal Analytics, you could set your data never to expire. In Google Analytics 4, the data expires after 14 months (if you configure it manually).
- Views. In Google Analytics 4, views are no longer present. Maybe in the future, they will be added? Who knows! But the probability does not look very high right now.
- The number of predefined reports. Google Analytics 4 is way behind Universal Analytics if we talk about reporting capabilities. We hope that in the future, this area will be improved. In the meantime, people who know BigQuery can benefit greatly by analyzing and visualizing data outside of GA4.
- Integrations. I have already mentioned BigQuery integration. However, some integrations are still missing in Google Analytics 4, such as Search Console. But that is expected to change at any time.
- And this list is far from over…
Due to major differences, your old data from Universal Analytics cannot be moved to GA4. You must start using Google Analytics 4 as soon as possible. When GA3 stops working, you will have at least some historical data in GA4 reports.
Tracking in parallel
In this blog post, I mention “Parallel tracking” or “Tracking in parallel” multiple times. What does it mean?
In a nutshell, this means that you can have both tools (GA3 and GA4) on your website simultaneously. They should not interfere with each other (but keep in mind that the _ga cookie is used by both versions).
Here are several possible scenarios:
- If you have Universal Analytics hardcoded on your website (most likely, with gtag.js) and you don’t use Google Tag Manager yet, it would be a good time to install GTM and add GA4 through it. It is possible to automatically migrate some of your data coming in from gtag.js (and automatically see it in GA4 as well), but NOT everything will work magically. Depending on the complexity of your setup, you (or your devs) will probably also need to do some manual work. Because of that manual work, I would personally just start using GTM + GA4. But I am biased here 🙂
- If you have Universal Analytics tags implemented via Google Tag Manager, it’s perfectly fine to create additional GA4 tags in that very same GTM container. This is the scenario I’ll display in the upcoming chapters of this blog post.
Upgrade to Google Analytics 4
There are several ways how you can get started with Google Analytics 4. One option is to create a new property (it will automatically be GA4). The other option is to use the GA4 Setup Assistant. This time, I’ll focus on the assistant because creating a standalone GA4 property is quite similar.
GA4 Setup Assistant
If you already have Universal Analytics running on your website, you will notice a GA4 Setup Assistant in the admin section of that property.
This will initiate an assistant to help you create a new Google Analytics 4 property.
Note: this GA4 Setup Assistant option will not affect your existing Universal Analytics property. It will just initiate the creation of the new property and will allow you to reuse some of the Universal Analytics property’s settings (but not all of them + some additional terms may apply).
Once you click GA4 Setup Assistant, you will be asked to either create a new GA4 property or connect to the existing one. I presume that this is your first time upgrading, therefore, we’ll go with the Create new property option.
After that, you will see a popup describing what is going to happen:
- A new property will be created
- Some of the basics settings from Universal Analytics will be reused (for example, property name)
- Enhanced Measurement will be automatically enabled
If your Universal Analytics is implemented via gtag.js, then you’ll have an option to Enable data collection using that tag.
In other words, if this code…
…is added to your site’s code (or if it is implemented via Custom HTML tag in GTM, which is very unlikely), then you will be able to automatically start collecting data to your new property from that tag.
Note: if you have implemented Universal Analytics via Google Tag Manager, this option will not be available because gtag.js is not used here. Since I am focusing on Google Tag Manager, I cannot click that checkbox. Therefore, let’s skip it.
Click Create Property.
Once you do that, you will see a Setup Assistant. This is like a checklist that you will need to complete. Since GA4 is currently missing some features, I believe that this checklist will grow, and you might see some new options (compared to what you see in my screenshots).
I will not go in-depth with each option. I’ll leave this discovery to you. But just to name a few options:
- Configure Enhanced Measurement
- Link Google Ads
- Setup conversions, etc.
Install Google Analytics 4 with Google Tag Manager
If you had Universal Analytics installed via gtag.js, you would already get some data to your GA4 property. But if you’re like me (who’s using Google Tag Manager), you will need to do some additional steps.
In the Setup Assistant, click Tag Installation.
Then choose the Data Stream (it was automatically created when you Upgraded from Universal Analytics property).
Then you will see a window like this:
At the top-right corner, you will see the tracking ID of your new property. Copy it. We’ll need to use it in Google Tag Manager.
Then go to your Google Tag Manager container (if you haven’t worked with it, here’s a tutorial on how to get started) > Tags > New and choose GA4 configuration.
In the Measurement ID field, enter the ID that you copied in the GA4 interface. Keep the Send a page view event when this configuration loads if you want to automatically track pageviews. Usually, that’s ok to keep it enabled.
Still, in some situations, e.g., on single-page applications, it is recommended to disable the pageview checkbox and create just a standalone configuration tag. You can read more about that here.
In the Triggering section, select All Pages and then name the tag, e.g., GA4 – Pageview.
Checking data in your new Google Analytics 4
Enable the GTM preview mode to test your changes.
Once you enable the preview mode, you should see the new GA4 tag among the tags that fired.
Once you do that, go back to the GA4 interface and click Realtime on the left sidebar.
This is where you should see yourself in real-time reports.
NOTE: at the moment, real-time reports might be a bit buggy, and it takes time for them to start displaying you as a user. For example, after my GA4 configuration tag fired and a pageview was sent, that pageview was already visible in the real-time reports, but the count of users was still 0.
Alternatively, you can try to use the GA4 DebugView (by going to Admin > DebugView).
However, after a while (maybe a minute or two), the real-time reports started to display me in the reports correctly, and the count in the Users in the last 30 minutes widget increased by one.
Also, in other cases, I had to way maybe 15 minutes before I started to see some data coming in. It looks like these hiccups happened on newly created properties. If I tried to use a property that was at least one day old, none of the aforementioned issues occurred.
All good? Publish
After you created that GA4 tag and tested it in real-time reports, it’s time to publish. In the top right corner of the GTM interface, click SUBMIT.
Then enter the name of your version (e.g., Installed GA4) and publish.
That’s it! Now you are running a GA4 property, and the data will start coming in. Remember, the Enhanced Measurement is enabled by default. This means that you will also be tracking things like scrolling, outbound links, search, etc. But make sure you check the configuration of the Enhanced Measurement because some of the features can be customized.
The first things you should do after you upgrade to Google Analytics 4
Your upgrade to GA4 does not end here. Here are several things for you to configure next:
- Exclude your internal traffic
- Increase data retention to 14 months (because the default for most of the data is 2 months)
- Configure cross-domain tracking
You will also find additional migration tips in this free e-book.

How to track events with Google Analytics 4?
Once you have configured the basics, the next step is to track events.
Even though GA4 can track more events automatically (than its predecessors), the real power comes in when you start tracking events closely related to your company/business.
Event tracking is quite an extensive topic that requires a separate blog post. But in a nutshell, I would not blindly migrate your UA’s event naming convention (I’m talking about Event Category, Event Action, and Event Label).
Instead, I would sit down, list all of my Universal Analytics events, and then rethink what naming convention I should choose.
When you think of how to name your events, Google recommends the following:
- Use the names of recommended events
- If your event is too unique, then use your names and parameters for events.
To help you more with that, I have published a blog post on how to track events with Google Analytics 4.
Frequently asked questions about upgrading to Google Analytics 4
If you just skimmed this article, here are the most common questions answered briefly.
Do I have to upgrade to Google Analytics 4? Universal Analytics will stop collecting data on June 30th, 2023. Before that, you need to switch to Google Analytics 4 or find another tool to measure the website’s performance.
Is Universal Analytics going away? Yes. It will stop collecting data in 2023 and, at some point, will stop working completely.
Should I use Google Analytics 4 or Universal Analytics? You can continue using Universal Analytics as long as it works. But you should also start using an alternative tool (GA4 or something else) as soon as possible and generate some historical data before GA3 goes away.
Can I migrate historical data from my Google Analytics 4 property to Universal Analytics? No, that is impossible to do. The tools are too different, and data is stored in different places. Your best bet is implementing GA4 as soon as possible to start collecting data. Even though you might see things like “connect GA4 to Universal Analytics”, those options are misleading, and I don’t recommend them.
Can I use the same triggers for Google Analytics 4 as I do for Universal Analytics? Absolutely, this is the way to go. It’s a good practice to reuse the same trigger for multiple tags in Google Tag Manager.
What are the next steps?
“Upgrade to Google Analytics 4” means not only the technical upgrade. It also means that you must upgrade your knowledge about this tool. GA4 is completely different compared to the previous versions.
Here are several learning resources for you to continue the journey:
- A very in-depth Google Analytics 4 course
- Google Analytics 4 tutorial (1-hour mini-course)
- How to track events with Google Analytics 4
- How to track conversions (goals) with Google Analytics 4
How to get started with Google Analytics 4 reports?
The interface of Google Analytics 4 is completely different, and there’s a steep learning curve. To help you get started, here are several additional tutorials:
- Where to find site search data in Google Analytics 4
- Acquisition reports
- Free Form explorations
- Funnel reports
Upgrade to Google Analytics 4: Final words
With Universal Analytics (GA3) being phased out, you have to take action quickly. Either migrate to Google Analytics 4 or find another alternative. Since Analytics Mania mainly focuses on Google’s products, GA4 is the next logical step for me.
The key takeaway of this blog post is that you cannot migrate your old GA3 data to GA4. This means that eventually, all the data you have accumulated over the years in UA will go away. Thus you need to act quickly and migrate to the new version as soon as possible.
When the old version stops working, you will then have at least some historic data in GA4 (which is not ideal but better than nothing).
If you used only a basic setup of Universal Analytics (tracked page views and other basic metrics), then the upgrade to Google Analytics 4 will be quick and easy. I have described everything in this article.
But if you also tracked things like events, custom dimensions, etc., the migration process will be much more complex and time-consuming.
If you feel overwhelmed, this is normal. I can help you with this. My Google Analytics 4 course contains a very in-depth module about migration from UA to GA4 (with 3.5+ hours of content just about the migration). You will also get there a migration checklist (containing ~100 items).
So if you want to learn a smooth migration process, that course is what you need.

31 COMMENTS
Hi,
I have tried to implement GA4 for SPA. In that SPA web site's URL's there is no #Fragments.As you know, new GA can understand the history change in web stream. But I closed that feature.I have my own virtualPageview dataLayers.
So I created GA4 event tag in GTM (page_view) and send my title and URL as page_location and page_title parameters.
I am wondering, still do I need the run GA4 base code by Tag manager. And also I do not checked the option ( Send a page view event when this configuration loads) in GA4 base code.
And also I triggered my pageview events with my virtualPageview dataLayers, If I need the base code, where should I run it?
Hi, keep the "send pageview..." checkbox disabled and fire the base tag on All Pages trigger. Create a separate event tag for the pageview. Fire that tag every time a virtual pageview is pushed to the data layer.
Thank you so much, I was thinking in the same way.
Does disabling that checkbox stop GA4 from using history changes?
No. Enahnced measurement is for that.
Nvm, found out you can do that in the settings of the data stream!
Yes, that's enhanced measurement configuration.
Ahoj,
I was following your guide on GA4 enablement on parallel to Universal Analytics and seem to have a weird problem.
Both GA3 and GA4 are published in the same tag.
GA3 is showing data correctly (including real-time data).
GA4 is not showing anything.
Both at the moment are out-of-the-box configurations without any additional changes.
Any idea what might be the issue?
The issue that you are facing is mentioned in both the video and the blog post. The answer is that there is some delay.
Yes, I have seen that information in the blog, but for me it is not only not showing it any of the real-time boxes, but also not showing it at all even for yesterday pageviews that are correctly reported on GA3. It seems like the GA4 is not working at all.
Hi Julius, Thanks for the great article. I have a couple of questions.
1. Is there no way to bring historical data from Universal Analytics into GA4? If not, while you're not "losing data" you are losing the ability to see a report showing website traffic - this year vs last year. You'd have to use GA4 for 24 months before you could compare one full year vs the prior full year.
2. Continuing that thought, I see there's a cap at 14 months of data in GA4. Is that correct? So then we wouldn't be able to compare traffic this year vs last year? Is Google going to start charging to store more data? It seems to me that everyone would want to have at least 24 months of data. Did I misinterpret what I read?
1. There is no way
2. My guess. That they probably want you to store your own data in bigquery. But I don't know the exact reason behind this.
Thanks for the article Julius, very insightful.
A question if I may - I have launched a new website and only have the option to add GA4. I was short on time so went ahead and implemented GA4- however is there a way for me to now use UA for the new site? Or is it too late?
Yes, the answer to your question is in the "You are not going to lose UA data any time soon" chapter of the blog post.
Hi Julius,
I added the GA4 tag to my site that had the exiting GA3 tag - so that I could keep using our old data and start populating with the new data. However, now we want to start using Tag Manager. I am thinking that I need to implement that according to your instructions above on the GA4 section - but do I leave the code for GA3 and GA4 with Tag Manager in place on the site? I had read somewhere that you are supposed to replace the GA3 tag when you implement Tag Manager to keep from having duplicate data. Thanks so much for your help.
Hi Katherine - You can implement GA3 and GA4 tags both in GTM (recommended).
If you do that you would also have to remove any GA3/GA4 tags hard coded on your site to avoid duplicate pageviews.
Hi Julius,
great article, thank you for sharing. There is something I'm unclear about and wondered if you'd be able to help?
I inherited an ecommerce site using ga.js and urgently need to get ecommerce tracking installed.
What is the best upgrade route?
My original thought was to upgrade to analytics.js and create an additional GA4 Property, but Google seems to be pushing gtag.js in all its support documentation including code snippet in our account.
Where does gtag.js fit into the picture when it comes to upgrading from ga.js to the 21st century? I'd greatly appreciate your insight so I can better advise our developers what to implement.
Thanks very much!
Or you could implement GA via GTM and then not care about gtag.js at all. Once you migrate to GA+GTM, remove that ga.js
Do you know if Shopify requires GA4 to report on enhanced e-commerce? On Shopify documentation all they say is "If you're using an older version of Google Analytics, then you might need to click Upgrade to the latest version before you can click the Use Enhanced Ecommerce checkbox." but it's not clear what "older" is to them and creating a GA4 property is not actually updating it...
GA4 is not needed. Shopify refers to even older version (classic GA)
Hi Julius, Thanks a lot for the article very helpful!
Which would be your approach if your website is divided between a SPA (Main pages of the product) and the blog (Works with Wordpress and receives a lot of traffic). In this case, I am confused in the <>
Thanks :)
Two GTM containers. Both should use the same GA properties. You can use both GA4 and GA3 in your GTM containers at the same time.
What happens if I don't tick the "Enable data collection using your existing tags"?
Nothing if you implement GA via GTM
Hi Julius,
Thanks for the article.
I would like to inquire about migrating conversion goals from Universal Analytics to GA4. How can we migrate the Universal Analytics (Having 7 views with 10 goals) to GA4? The views are configured/created on the basis of Subpages.
Example:
https://[domain_name]/subpages-1/ (View 1)
https://[domain_name]/subpages-2/ (View 2)
https://[domain_name]/subpages-3/ (View 3)
As the views are created on basis of Subpages (WordPress Site), I’m having an issue with creating overall conversions (70 conversions + 20 events) on GA4 due to the limitation of creating conversions under a single GA4.
So, how can we migrate the UA conversions in such cases? If the views were on basis of subdomains, then I would have created a separate GA4 for each subdomain. But, in this case, the views are created on basis of subpages. Any guides/details plz?
Thank You!
Hi, maybe those goals are similar? For example, in all 7 views, the goal is for form submission. In that case, it's just one conversion instead of 7. Later you can use segments, comparisons, filters in GA4 to view data only of particular subpages.
Great video -thanks so much. One question i have is on best practice for multiple domains. I have an eCommerce store - with 3 different domains for different currencies. At the moment i have unique GA3 tag for each store all setup from 3 GTM containers. Have just upgraded to GA4 for one of the domains - should i use the same GA4 account & ID for all 3 domains?
If you want to see data of all 3 websites in the same report, use one ID. If you want to analyze their data separately, use 3 IDs
Thanks for the feedback!
Great video ... tnx. One question. Is it possible and how do I change it to the current real time of the active user and not to 30 min?
no