GA4 event types guide
First things first, let’s start by defining exactly what an event is in Google Analytics 4 (GA4). An event is how GA4 collects data, all data. This is unlike Universal Analytics (UA) as even things like Sessions (session_start) and Page Views (page_view) are tracked as events.
However, not all events in GA4 are created equally. There are several different types of events to be aware of when implementing GA4 for your apps and/or websites.
Although all of these event types are essential to understand if you’re setting up and managing your GA4 implementation, all events are reported in exactly the same way. The average end user pulling data from GA4 will not know (or probably care) about how it’s collected, and what we call the types of events!
The event types are:
Enhanced Measurement events
Enhanced Measurement are most likely the first types of events that you will see in GA4. They are the ‘out-of-the-box’ events that come as standard when implementing the configuration tag on your website. These events include:
- 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. You can also turn each one off inside this settings panel, except for the page_view event which is mandatory.
Note: These events only apply to web Data Streams, not Android or iOS apps.
Note: These events may not work on every website. Like any standardised implementation, it may work on 90% of sites, but not all. Make sure to test each one once you have deployed the configuration tag!
Some of the Enhanced Measurement events have some additional configuration settings which are detailed below.
The page_view event will always be triggered on page load, but can also optionally be triggered on browser history events. Useful in cases when the page content loads after the original page load (i.e. for single-page applications).
This is on by default, which we have seen causes issues in some cases. If it’s interfering with the regular page view tracking, turn this setting off and see if that fixes things.
Site search tracking is a UA feature that GA4 has replicated in exactly the same way. GA4 looks for a URL query string parameter that matches one of the parameters in the list. If it finds a parameter that matches, GA4 assumes a search has occurred and this is the search results page.
These parameters it looks for are detailed in the advanced settings for the view_search_results event. There are default parameters it looks for in the list, and you can also add custom parameters if your site search uses different ones too.
Note: If you have multiple types of search that can be performed on the site (i.e. product search, FAQ search, etc.), then all will be tracked using the same event. In this case, you might just wont to chose one to track, or even turn this Enhanced Measurement even off completely and implement custom events.
Automatically collected events
As the name suggests, these events are collected automatically. A subset of these are technically the Enhanced Measurement events, but are generally considered separate within the industry – mainly as these events cannot be disabled. The automatically collected events are:
Note: Some of these events are specific to web, Android and/or iOS Data Streams.
*The session_start and first_visit events are not independent events (you won’t see them when testing or debugging). They are actually calculated off of the back of other events (typically the page_view event) by the inclusion of the _fv (for first visit) and _ss (for session start) parameters:
(^ I use the Chrome extension Adswerve – dataLayer Inspector+ if you were curious why it the Console looks like this.)
Note: Any custom event parameters you apply to the GA4 configuration tag (in GTM or gtag.js) will not apply to these two events. Hopefully they’ll fix/update this down the line…
When it comes to adding in your own event tracking on top of the ‘out-of-the-box’ events, Google has a reference list of Recommended events names for common use cases. A good example is for ecommerce event tracking (as there is no Enhanced Ecommerce in GA4!).
For example, if you wanted to see transactions and revenue in the GA4 reports, you will have to use the exact event name and event parameter naming convention for the purchase event. Otherwise, the conversions and revenue metrics will not be populated in the data, although you will still be able to report on the count of events as you would expect.
If you need to track something that does not fit into the list of Recommended events, you can use Custom events. They are implemented the same way as all the other events in GTM or gtag.js, but you get to pick whatever even name and event parameter naming conventions you require.
The drawback of these events is that Google will never be able to utilise them in standard reports, templates or models, but you will be able to use them in any report in the same way. They are also exported to BigQuery.
Below is a useful flow chart to help decide what type of event to use:
Customised events is the generic name given when events are created within the GA4 interface. You can access all of the existing (and add new) customised events in Configure > Events > Create event.
These events are very useful when needing to mark a subset of an existing event as a conversion (see an example of this in a previous post).
A big benefit of customised events is that they can be added and removed at any time, without needed to change or update the implementation on the apps or websites. Especially useful for apps where any tagging changes require a new app version to be published to the app/play store.
Note: You can create up to 50 customised events at any one time per Data Stream.
Audience trigger events
Audience trigger events have a great deal of potential in what they can achieve!
This is the name given when logging an event when a user enters an Audience. Regardless how you define the criteria in the Audience membership logic.
You can set the event name to whatever you like, the same as custom and customised events.
The true potential of this type of event is when you start defining complex or predictive Audiences that would be impossible for anyone setting up tags using GTM, gtag.gs or the SDKs. For example, defining multiple layers of activity and inactivity within a specific timeframe.