GA4 Series

Built-in GA4 Events Are Not What You Might Think

by Anya Avdeeva on

Recently I’ve been noticing increased confusion around the built-in GA4 Events as more people are starting to switch over their reporting from Universal Analytics to GA4.

Google Analytics 4 comes with built-in events available out of the box which are called Enhanced Measurement Events. You might have not touched the Data Stream settings at all, or you might have already enabled Enhanced Measurement events in your GA4 Data Stream. But do you know what they are or how they work? In this blog, I will help explain the triggers and caveats of each event, and show you how to enhance each GA4 Enhanced Measurement event for your business.

How to Enable Enhanced Event Measurement in GA4

First of all, I always recommend to my clients to enable all Enhanced Measurement Events. It’s an easy way to collect basic data from your website without any Google Tag Manager setup. You can always switch them off later or even request to delete specific event data.

To enable Enhanced Event Measurement, go to your GA4 Property > Data Stream > Enable Enhanced Event Measurement

Screenshot of the GA4 Admin settings which shows the Enhanced Events Measurement in Data Stream Settings in GA4

You will be given the option to toggle individual events on and off. I always recommend to my clients to turn on all events for a few weeks to see what data they are collecting. In the next part, I will explain when exactly the events trigger, some caveats that you should be aware of, and next steps on improving the events.

Which events are automatically collected?

  1. Pageviews (page_view): Triggers when a page with your configuration tag loads. It is also the only event you cannot turn off the automated collection in GA4 UI - only through Google Tag Manager.
  2. Scrolls (scroll): Triggers when a user reaches the bottom of a page, specifically and only at the 90% scroll depth threshold.
  3. Clicks (click): Triggers when a user clicks on a link outside of the current website’s domain (also includes domains registered in cross-domain measurement).
  4. Site search (view_search_results): Triggers when a search query parameter is present in the page URL. Set to default queries but you can add a query manually as well.
  5. Form Interactions (form_start and form_submit): When a user interacts with and submits a form.
  6. Video Engagement (video_start, video_progress, and video_complete): Triggers when a JS API-supported YouTube video is played. Triggers when the video is started, completed, and also in progress (10, 25, 50, 75%).
  7. File Downloads (file_download): Triggers when a download extension such as pdf, csv, docx is clicked on the website.

Note that the naming convension for events and event parameters is lowercase separated by underscores: page_view (also known as “Snake Case”). If you want to use built-in events but also have your own custom events, I would recommend keeping the snake_case naming convention for easier reporting. Although if you really don’t like snake_case, you can also rename all the built-in events into any case you want using “Modify Event” in GA4.

How are these events triggered?

These Enhanced Measurement events are triggered automatically from your GA4 tag. Whether you’ve installed it the GA4 tag via a hardcoded gtag, via a connected UA tag, or via GTM, the tag gets used the same way to send these events to your GA4 property.

Caveats of Enhanced Event Measurement

Although the automatic collection of these events is very useful, make sure you understand the caveats for each event to see if all the data you need is collected.

Scroll event is not complete

If you only turned on these events but didn’t look deeper into what kind of data they collect, you might be surprised that the ‘scroll’ event only collects 90% scroll depth. It is essentially an event to capture if someone has reached the end of the page. Although I think most marketers are used to a more detailed breakdown - it’s quite typical to expect at least 25%, 50%, and 75% scrolls along with the 90%.

Unfortunately there aren’t any settings in GA4 to enable more granular scroll tracking. This means that if you want more detailed scroll tracking, you will need to set it up via Google Tag Manager. The set-up should take a few minutes but will definitely be worth the detailed data! Watch this quick video to learn how to set up this additional scroll tracking in less than 10 minutes.

Next Steps:
  1. For all businesses, I would recommend to set up Scroll tracking via Google Tag Manager
  2. Once the granular scroll tracking is set up, disable the Enhanced Measurement event in Data Stream Settings

Click event is not what you might expect

When I first saw the ‘click’ event, I assumed it tracked all clicks. But in reality, this event only tracks clicks to links outside of your domain, also known as Outbound Clicks.

It’s convenient to have this event because it means you don’t need to set it up yourself in Google Tag Manager. However, I usually advise my clients to rename the event to ‘outbound_click’ to make it more clear to anyone analysing the data. Although keep in mind that this essentially creates a new event with the name ‘outbound_click’, so the data will stop populating for the ‘click’ event on the day you rename it.

This event automatically includes the following dimensions that you can use in your reporting. I would recommend to use these in conjunction with Page Location and Page Path dimensions to identify the page on which the click happened.

  1. Link classes
  2. Link ID
  3. Link text
  4. Link URL
  5. Outbound

Next Steps:
  1. If your GA4 property is relatively new and ‘Outbound clicks’ is not used for business reporting, I would recommend to update the event name to ‘outbound_click’
  2. If you’ve had this event populating for a while, I would recommend to keep the event name ‘click’ to avoid any confusion between these two events

How to update the event name

In Admin Settings, go to ‘Events’ and then click on ‘Modify Event’. This allows you to change the name of any event to make it more understandable for your use case or business purpose.

  1. Modification name: ‘click > outbound_click’
  2. Event_name equals ‘click’
  3. New value: ‘outbound_click’

Screenshot of the GA4 Admin settings which shows 'Modify Event' functionality

Form Submit event tends to trigger falsely

I noticed that the ‘form_submit’ event tends to trigger falsely, causing inflated form submission counts for a lot of websites. It’s supposed to trigger when a form is successfully submitted, but I noticed it triggers without form validation, so even when a user encounters an error or makes a mistake when filling out the form. There is also an issue if you have the Meta (Facebook) Pixel installed, which also tends to trigger the ‘form_submit’ event.

When comparing ‘form_submit’ with custom form submission events, it tends to not trigger at all for commonly used forms like Hubspot, Webflow, or WordPress forms (e.g. Contact Form 7 or Elementor). If you rely on form submission tracking for your business, the built-in ‘form_submit’ will likely not work for you and you will need to set up the form submission tracking manually.

As for the ‘form_start’ event, it triggers when a user interacts with a form’s input fields (for example clicks into it, or starts entering information into the form). I find it to be quite accurate and use it a lot to determine the drop-offs from form_start to the form submission.

Also, note that the event parameters related to form_submit and form_start events such as ‘form_id’, ‘form_name’, and ‘form_destination’ are not automatically tracked in GA4, therefore you will need to add them manually if you want to use them in reporting. Check out my blog about event parameters and custom dimensions to learn how.

Next Steps:
  1. Check the form_submit and form_start events to see how much time they are triggering compared to the user count, and which pages these forms are submitted on
  2. Add form event parameters as custom dimensions
  3. If you have forms on those pages, check via Google Tag Manager Preview if the form_start and form_submit events are triggering from your form submissions
  4. If you do not have forms on those pages, the event is likely mistriggering and I would recommend to set up form tracking manually via Google Tag Manager

Need Help Understanding This Topic?

Don't let your questions go unanswered. I'm here to help explain any confusing or unclear parts in the article. Reach out for further explanation or clarification.

Site Search event’s query parameter can be modified

The ‘view_search_results’ event is pretty good at collecting the queries from your Site Search function. It is the same as the data you would see in the ‘Behaviour > Site Search’ Report in Universal Analytics.

By default, this events triggers is any of the following query parameters is present in the URL on page load:

  1. q
  2. s
  3. search
  4. query
  5. keyword

However, if you search query is something else, this is the only event that allows you to modify the query parameter in the GA4 UI itself, without going through Google Tag Manager. You can do so in the Enhanced Measurement settings:

Screenshot of the GA4 Admin settings which shows the Enhanced Events Measurement of Site Search in GA4

In terms of reporting, you will be able to see the searched term under the default “Search Term” dimension in reports, which is populated for every unique search query during that session.

Next Steps:
  1. If your website uses one of the above query parameters for the search functionality of your site, then you don’t need to do any further configuration
  2. If your website does not use one of the query parameters tracked by default (e.g it’s in another language), you should add it to the Advanced settings configuration

Video events only work for YouTube videos

Video events such as video_start, video_complete, and video_progress only work for YouTube videos which are embedded with JS API support enabled (by appending ‘?enablejsapi=1’ to the end of the video URL).

When it comes to reporting, some dimensions such as Video Title, Video provider, Video URL, and Visible are already available by default for reporting. However, ‘video_current_time’, ‘video_duration’, and ‘video_percent’ event parameters need to be registered as custom dimensions.

Next Steps:
  1. If you use YouTube to host videos on your website, make sure you have JS API support enabled via the URL
  2. If you use another platform for your embedded video player such as Wistia or Vimeo, you will have to set up the tracking manually via Google Tag Manager

File Downloads event only works for direct file clicks

The File Downloads event is quite useful if you have the downloadable actually linked to on your website. However, if you send your downloadable via email, this event will not work.

The file_download event triggers on a link click to the following RegEx match, which covers the majority of popular file extensions:


For reporting, the following dimensions are available by default. If the file is hosted on the same domain, I would use ‘File name’ which returns the page path of the link including the file extension. Otherwise ‘Link URL’ or ‘Link text’ work well for reporting.

  1. File extension
  2. File name
  3. Link classes
  4. Link ID
  5. Link text
  6. Link URL

Next Steps:
  1. If you have the downloadable files hosted directly on your site where a user can access the file via a link, you don’t need to do any further configuration
  2. If you send downloadables via email, you should instead set up form tracking for the form the lead magnet itself

Conclusion and Next steps

In conclusion, understanding the nuanced functionality and caveats of the built-in GA4 Enhanced Measurement Events is fundamental to leveraging your data most effectively. I would recommend all businesses check the data your GA4 Enhanced Measurement events are collecting, and further improve the events that are important for your business.

General Next Steps:
  1. Go to your Data Stream and check if Enhanced Measurement events are enabled
  2. In your GA4 Property Admin Settings, click “Events” and check the general event and user counts for each event
  3. Click into each event to check the data and event parameters being collected
  4. Refer back to each chapter to improve the most important events

In the following articles of the GA4 Series, I will be diving deeper into reporting and how to check all of these events in both Standard and Exploration reports.

Anya Avdeeva

Anya Avdeeva

As a dedicated Marketing Ops and Analytics expert, Anya is deftly navigating the digital world and using her insights to close the digital analytics knowledge gap with her work and content.

AnyaWay Blog in a Monthly Newsletter

© 2023 AnyaWay. All rights reserved.

This website was built by Anya using and TailwindCSS.