skip to main content

GTM event tracking for GA4

A crash course in Google Analytics 4 events, what’s changed, transferring your old GA events and some of the exciting opportunities ahead.

Have you been manipulating events in UA (Universal Analytics) and struggling to fit all the data you need into “Event Category,” “Event Action,” and “Event Label”? Often, these attempts end in long strings of data parts which need to be pulled apart again and regrouped in reports. Custom dimensions have been one solution but setting them up can take up time better used elsewhere.

GA4 (Google Analytics 4) comes with some major changes to event tracking. This crash course through GA4 events will help explain what’s changed, how to transfer your old UA events, and some of the exciting opportunities that lie ahead.

You’ll learn about:

  • How to make the most of the new event capabilities in GA4
  • How to merge your old setup (events and goals) into the new system (events and conversions, custom definitions)
  • Best practice regarding tags and parameter naming conventions

You can find the link to the Migration Template and GTM container mentioned in this post, as well as the slides used to present this information at MeasureFest with visual guides, here.

GA4’s Data Model

The data model in GA4 means everything is now an event. Every event can have its own set of parameters, which is great for data analysis. GA4 will allow you to collect unlimited events (though that may change) each with up to 25 parameters.

For example, instead of having a video’s title, duration, percentage, and status all crammed awkwardly into Event Action and Event Label, we can have far neater individual parameters like these: 

  • Video_current_time: 
  • Video_duration: 
  • Video_percent: 
  • Video_provider: 
  • Video_title: 
  • Video_url: 

If you currently have some important custom dimensions, you could set these globally or for individual events as one of those parameters. With 25 possible parameters, there’s huge potential.


It will be necessary to move existing event setups over to GA4. If you haven’t already, establish a document that outlines the events you are currently sending to UA and how you have used Category, Action, and Label fields. Establish a map of what you have right now. It doesn’t have to be more complicated than a spreadsheet. Feel free to use our template here.

Next, you’ll need to know whether your existing event tags will need to be recreated. It may not be necessary to keep all your events. 

For the events we want to migrate we need to establish which of the following GA4 categories these fall under: 

  • Automatically collected
  • Enhanced measurement
  • Recommended
  • Custom

Figuring this out is easier than it may seem – these categories are clearly defined. 

There are only a handful of web-related events that are automatically collected. They are: 

  • session_start
  • first_visit
  • user_engagement

There is a longer list of events you can collect with enhanced measurement turned on: 

  • click
  • file_download
  • page_view
  • scroll
  • video_complete
  • video_progress
  • video_start
  • view_search_results

Finally, here is the list of recommend events: 

  • ad_impression
  • earn_virtual_currency
  •  join_group
  • login
  • purchase
  • refund
  • search
  • select_content
  • share
  • sign_up
  • spend_virtual_currency
  • tutorial_begin
  • tutorial_complete

The rest of your tags will be custom. For example, if you want to measure the number of times people clicked on a mailto link or phone number, or a number of form submissions, you’ll need your custom tags at the ready. 

Executing Your Migration Plan

To get started migrating existing event setups to GA4, create a tab in your migration plan which allows you to specify which old events you want to carry forward and how you’re going to track them in GA4. 

  1. Start with the existing event name from your previous sheet, and what it will be called in GA4. 
  2. Then define the event type (custom, enhanced, etc.).
  3. Finally, list all the parameters you want to capture, including the values that will be defined. Use GTM variables if possible.

Here are a few ways you might migrate UA to GA4:

Scenario 1

Your event is one that’s collected automatically or via enhanced measurement. In this case, you might not need to do anything.

Scenario 2

You may want to separate them into more specific events. For example, you may want to use the click event (which tracks outbound clicks) and make a new one that just tracks clicks to social. All you need to do is create an event from your event.

Scenario 3

You may not be happy with the detail that’s being collected. Take scroll for example. This only gets triggered when a user has viewed 90% of the page. You might want to see when they have scrolled 25%, 50% and so on. In this case the enhanced measurement won’t work for you. To solve this, turn off enhanced measurement and make yourself a custom event. 

Be careful when using the enhanced measurement video events. These only work with standard YouTube setup so if you have anything non-standard, like videos loading after an interaction or other video players, you’ll need a custom event. 

Scenario 4

Your events are not collected yet, whether they are recommended or not. You’ll need a custom event. Gather your list of events that need to be custom and open GTM. You will need to create your GA4 config tag first, which you’ll need your measurement ID for. Then create a tag (and trigger) for each of your custom events.

Here’s an example – making a tag for tracking mailto clicks.

The event is called email_clicks.

Add a parameter for click_type, and manually set it as “contact” because you’ll do the same with phone clicks later. You can look at them together if you want to.

Next, add a parameter called email_address with the value of {{Click URL}} variable. For some websites there might also be something like customer_type or department. These dimensions give you the freedom to add things that are specifically relevant to your business. 

Here is another example for scroll tracking, where you use percent_scrolled and direction using your built-in variables in GTM.

If you don’t want to set all this up from scratch there is a standard container that includes email, phone, form, scroll events, which you can find here. All you need to do is swap out your measurement ID. 

Parameter Naming Conventions

Messy naming conventions make your data awkward to work with. There are already some standard events and parameters in existence, so stick to the conventions they use. 

  • Use lower case.
  • Use underscores to separate words. 
  • If a parameter exists already, use that.

Here is a list of standard parameters that come with all events: 

  • language
  • page_location
  • page_title
  • page_referrer
  • screen_resolution

Be strategic. Before you start, ask yourself which events are related to one another, and whether there’s anything that these events have in common that would lend itself to comparison later.

Next, ask yourself if there are any global parameters to set. You can set your global parameters in your GA4 config tag, under fields to set. If there are any parameters that will be needed for all events, set them there. 

For the values, use existing built-in variables if you can. If you need to create a new custom variable, make sure you follow the same style as the built-in ones. If you’re unsure, use preview mode to see what your current variable values are returned as.

Once you have created your tags and triggers, tested them in preview mode, are happy that they are all working, and you’ve published your container, events will start to collect in GA4. 

These events won’t appear in your config view for 24 hours, although you will be able to see them in real time. Test each event to make sure that you can see them in the real-time report. 

Fortunately, you don’t have to wait to do the next two steps.

1. Set up your custom definitions. Your new custom events’ parameters won’t appear in any of the standard reports unless you define them as a definition. Decide on which parameters from your sheet you want to use in your reports. Whether these are dimensions or metrics, you’ll need to define them. 

2. Decide on which events will be conversions. 

The system for setting up goals in UA was clunky. This is far easier in GA4. Toggle your event to be counted as a conversion. If you only want to count a very specific scenario as a conversion, simply setup an event from your event, add the required conditions and then toggle to mark as conversion. You also have more slots to play with. UA had 20 slots, GA4 has 30. You can switch these back off without losing the historical data. 

What’s Next?

You can use your events and other conditions to create super-smart audiences that you can then use in your Google Ads campaigns or, like segments, to gain more insights from your data. 

You can go wild creating exploration reports in GA4, or use the Data studio to create dashboards for your new events and conversions. You may already have a Data Studio dashboard for your site that you can just adapt.

GA4 works differently to UA, so think about how that will affect your report before you start afresh. You might be able to use most of your existing tables or graphs, but remember that the underlying data model is completely different, so you will need to manage expectations for people viewing this new data.

More help

For more help making sense of Google Analytics 4 and your website data, email me at [email protected]


Anna Corbett

Director of Client Success

Anna is responsible for all client delivery, and is our resident data and analytics lead.

I’ve got plenty to say

View my other articles and opinion pieces below

5 GA4 features you need to know about

You’ll need to switch to Google Analytics 4 sooner or later, and the sooner, the better. Universal Analytics won’t stop processing data until July 2023, but if you want comparable data from this year to the next you should start using GA4 a full year before that hard deadline. Learning how to use GA4 when […]

Why you need to switch to GA4 sooner than you think

Earlier this year Google announced that the latest version of Google Analytics, GA4, will become the only available web analytics service offered by the company starting in July 2023. Universal Analytics (UA) is on the way out and will cease to process new hits as of October 1, 2023. UA and GA4 operate on very different […]