Migrating from Universal analytics to GA4 - Learnings

Dimitri Dries
The Marketing Analyst
4 min readMay 24, 2022

There is no more way around it, as of July 2023, all Google analytics users must have made the switch from the page based universal analytics tracking to the event based GA4 tracking. And it might not seem that way for some people but believe me, this is a good thing.

I have had the privilege to work as a Digital Analytics consultant at Stitchd for the past 4 years, where the “event based mindset” was already embedded in the DNA of the company, making the switch to GA4 feel very natural.

My main project has been D’ieteren Automotive, where I have been in charge of the complete migration to GA4. Because of this, I was asked by Google to talk about my experience with migrating to GA4 at the Google GA4 launch event in Belgium. As we believe sharing knowledge and experiences is an important aspect of the analytics community, these are some of the learnings we talked about at the event:

General learnings

Try to work in a systematic manner that works for you. We worked in different phases:

  1. Investigation phase: Where we researched the available documentation about GA4 in order to understand what it can do and how the technical side works.
  2. Preparation phase: Based on all info gathered during the investigation phase, we mapped out all details of what we wanted to configure for our GA4 setup. If you already have this type of documentation for UA, you have a good place to start.
  3. Experimentation phase: In which we dived into GTM and GA4 to configure a first tracking setup and experiment with all the available features.
  4. Rollout phase: At this point we had a working setup up and running, so we were ready to scale the setup up to all our brands and websites

Switch your mindset from “page-based” to “event-based”

Everything starts with good documentation. create detailed documentation about everything you will be setting up. It will make your life easier in the future.

Take this opportunity to expand your tracking setup with new events. The goal is not to track everything exactly as you were in UA.

Think long and hard about how you are going to track your events. Keep the events generic, and give context to them using parameters:

Take your time to experiment in the early phases and don’t be afraid to make mistakes while doing it. Document the things you encounter so you can take this into account when scaling up your setup.

Schedule enough time for debugging

Use the new debugView, it will make debugging much easier.

If you feel like you’re missing events when debugging in the browser, check your network calls. As GA4 uses event batching, multiple events are often gathered into one network call.

Don’t wait, start migrating today

GTM configuration learnings

Everything you configure in the configuration tag is persistent for all events that follow, until a new configuration tag is fired. Configure page- and user info only.

The parameters in the configuration tag are not re-evaluated in any event other than the config tag itself.

Don’t configure custom metrics in the configuration tag, as this will also be inherited in every event.

Once they are set, user parameters are persistent for all events of the user onwards, and don’t impact past events like user scoped custom dimensions used to do.

Don’t use any special character except for underscores in event names. Anything else won’t trigger an error in GTM but will cause issues when working with the data in the GA4 interface.

Cross-domain tracking is now fully configured in the GA4 interface

GA4 configuration learnings

GA4 streams work very differently than UA views;

  • All data of all streams within a property is still gathered into one dataset.
  • Data is sent to a stream directly, instead of to the property
  • Options for filtering out data is limited to internal traffic and developer traffic only
  • Usually, one stream per brand is recommended
  • Multiple domains can be tracked in one stream
  • Property name can always be changed, a stream name can never be changed

→ UPDATE 25/05/22: Google released an update making it possible to adjust stream names and URL’s

Don’t overlook the data retention setting, this could impact your longer term analysis.

As opposed to UA, IP address filters in GA4 are evaluated before anonymisation, meaning full IP addresses can be filtered out.

Always enabling the developer traffic filter is recommended.

Filters that are set to “testing” are not actually filtering anything, they only allow you to identify the traffic that would be filtered when set to active.

Engagement metrics can be semi-customised by defining an engagement timer, and by configuring conversion events.

You can send as many parameters as you want to GA4, but only the ones that are defined as a custom dimension or -metric will show up in your reports. The rest will only be available in Bigquery exports.

Be careful when modifying events, they permanently alter events.

Audiences are now a very powerful feature with a lot of possibilities, but they are not retroactively populated.

If you want to know more about Stitchd and the D’ieteren project, you can check out the case on the Stitchd website.

I’m always glad to receive feedback, so don’t hesitate to reach out when you have any concerns about these learnings. I’ll write a similar post about our learnings with GA4 reporting soon.

--

--

Dimitri Dries
The Marketing Analyst

Working as a Digital Analyst since 2018, I've built profound expertise in anything tracking and data related.