Explaining the various GA4 event types

Although Google Analytics 4 is event-based, there are a lot of different types of events to think about when it comes to actually implementing them. This post covers all the different event types in GA4, and where and when they should be used.

It may feel obvious, but we should start by asking “What exactly is an event?” in Google Analytics 4 (GA4). The answer is everything, absolutely everything. Even things like Sessions is tracked as an event called session_start, unlike in Universal Analytics (UA) that calculates Sessions from the raw page view hits.

In GA4 there are several typed of events to be aware of which I’ve outlined in this post below. However, to preface all of this, it really doesn’t matter! It sounds odd saying this up front, but ultimately it doesn’t matter from a reporting perspective – all events are reported in the same way. What does matter is how we think about events when we are implementing the tracking, or planning a migration from UA for example.

Enhanced Measurement events

Enhanced Measurement events are the main set of events that you will come across almost immediately in GA4. These are the events that you can toggle on and off inside of the GA4 UI, except for the page_view event which is (quite rightly) mandatory. They only apply to web Data Streams (not app) and they are:

  • page_view – every time a page is loaded
  • scroll – when 90% of the page is visible
  • click – when a hyperlink was clicked that is not to your own domain (i.e. an outbound link)
  • view_search_results – when the search results page is viewed
  • video_start – an embedded YouTube video starts playing
  • video_progress – an embedded YouTube video is watched to 10%, 25%, 50% and 75% completion
  • video_complete – an embedded YouTube video ends
  • file_download – when a hyperlink is clicked with a file extension (i.e. it is downloaded or opened)

You can see what Enhanced Measurement events are enabled under Admin > Data Streams, then select a Web Data Stream.

Google Analytics 4 web data stream enhanced measurement screen

The way this works is that the GA tag/code that is added to every page of the website is fundamentally a Google Tag Manager container, and these are some pre-build tags. That means they will not work in every situation or for every site. This is why you have the option of disabling them in the settings. I suppose from Google perspective, if it works 9 out of 10 times, then it’s good enough!


The advanced settings for the page_view event allows the event to be triggered not just on a new page load, but also when the browser history state changes. This is very useful for some cases where content loads in after the page load i.e. for single page applications (SPAs).

Google Analytics 4 web data stream enhanced measurement page view settings

This is selected by default, but in some cases it has caused issues, or not work as expected. In those cases, unselect this and manually track the page_view event from something like a data layer event.


Site searches are something that has always caused some confusion, even back in UA. What GA4 is looking for is a query string parameter in the URL when the page is loaded that contains the search term that the user used in their search. If it exists in the URL, then GA4’s logic is to assume this is the search results page, and to also assume that a search has been made from the user.

This query string parameter it looks for is in the advanced setting for the view_search_results event, and there are defaults, but they can be adjusted so that your site search term parameter can also be included if not already there.

Google Analytics 4 web data stream enhanced measurement site search settings

Note: If a user lands on search results page (i.e. you use one in an ad, or ranks on the SERPs), then this event will also be logged. So be mindful when analysing this data that this is not misconstrued as the number of site searches actually made, but just a count of the number of times that the search results page was viewed.

Automatically collected events

As is sounds, the automatically collected events are collected automatically. These events technically include the Enhanced Measurement events, but are generally considered separately as they cannot be disabled. These events include:

  • first_visit
  • first_open
  • session_start
  • user_engagement
  • in_app_purchase
  • app_update
  • etc.

Bear in mind the occasional nuance where some app events will only work on Android or iOS apps, but check the Google docs for each event’s limitations.

The session_start and first_visit events don’t technically exist as their own independent events. That is, you won’t see them being logged in the browser is you are looking for them when testing your implementation. They are calculated off of the back of the page_view event by the inclusion of the parameters _fv (first visit) and _ss (session start):

Google Analytics 4 page view browser console request

(I use the Adswerve – dataLayer Inspector+ Chrome extension in case you were wondering)

Note: There is a bug, or at lest I hope it is a bug and will get fixed at some point, that any custom event parameters you add to the GA4 config tag in GTM will not apply to these two events. Fingers crossed.

Recommended events are all manually tracked, but Google have provided a refence list for the names you should be using in a lot of common cases. A good example of this is for ecommerce events, where there is no longer Enhanced Ecommerce as there was in UA, but instead is a suggested list of event and parameter names to use.

Take the purchase event for example, for the number of transactions and revenue to appear in all the standard reports, you will have to use this exact naming convention. If you were to call an online transaction event something like online_purchase for example, you will still be able to report on the number of events as you would expect. However, the Revenue metric will not be populated in the data, as well as not being able to use the modelled predictive metrics as they only apply to the purchase event (at the time of writing).

Google Analytics 4 predictive metrics

Custom events

Custom events are implemented in exactly the same way as Recommended events, but you use whatever naming conventions you like for the event and parameter names.

Google will never be able to utilise these events in any standard reports or models, but you’ll be able to use them just like any other event for analysis and activation (assuming you mark them as a conversion).

The way to think about event implementation and naming conventions is to follow a this flow:

Google Analytics 4 event type decision flow chart

Customised events

Customised events are the name given for events that are created within the GA UI. I dug into this feature in a previous post where I set up an blog page scroll depth event, which is a good guide on how to actually use this new feature in GA4.

You can access the existing customised events and add in new event definitions by navigating to Configure > Events > Create event.

Google Analytics 4 create event screen

These events are very useful when needing to mark a subset of an existing event as a conversion. For example, if you needed to optimise a Google Ads campaign or Google Optimize A/B test to a count of page views or a certain page (or set of pages), then you can create a new customised event off of the pack of the existing page_view event using the page_location parameter as the filter condition.

The other benefit of these customised events are that they can be set up and removed whenever you like, they can be temporary. You can create up to 50 customised events at any one time per Data Stream.

This feature is especially useful for app Data Streams as updating the implementation requires a new app version to be published to the app stores, and then the use needs to update the app for it to take effect. Unlike on web Data Streams where GTM can be used to adjust the implementation almost immediately.

Audience trigger events

Now these Audience trigger events are by far the most powerful, or at least have the most potential.

These events are optionally logged when creating an Audience in GA4, and adding an Audience Trigger in the setup. This will log an event into the user’s timeline whenever they enter the Audience – whenever they meet the criteria you set out in the Audience logic.

Google Analytics 4 create a new audience screen

Then you define the event name to whatever you like, much like custom and customised events.

Google Analytics 4 audience event trigger screen

The power of these events comes in when you define more complex or predictive Audiences (assuming you use the purchase event).

Google Analytics 4 predictive audiences

For example, you can create a predictive Audience for ‘Likely first-time seven-day purchasers’ and add an Audience Trigger event called likely_first_time_purchasers. Then mark this event as a Conversion to be able to use in Google Ads for measuring and optimising a prospecting campaign, to see if you are reaching the right people with your targeting conditions. This would not rely on them actually making a purchase there and then, so could (in theory) give you a more real-time metric to optimise the success of the campaign.


Sign up to receive all this content to your inbox as soon as it’s published.

I never abuse email addresses, or any other contact details for that matter, and only ever share my own content. Promise.

Success! You're on the list.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s