Google Analytics allows you to track automatically collected events and custom events. Custom events can be split into recommended and user-defined events. 

Automatically collected events can be broken down into the ones that GA4 collects automatically after adding the code on the website, and you can’t disable them, and those you can turn on and off using the Enhanced Measurement interface in Google Analytics 4. Enhanced Measurement events are activated automatically as well once you create a GA4 property.  

This article will list all automatically collected events that Google Analytics measures once you add a GA4 snippet code to your website or app. These events can give you first insights into users’ behaviour and company well-being. 

GA4 Automatic Events for Mobile and Web

As mentioned above, for Google Analytics 4 to collect automatic events, you must place a GA4 code on your website or app. After it’s there, depending on whether you use a website or app, GA4 starts to collect the following events with the parameters. 

Note: All events are collected in the table below and updated regularly after every new GA4 update. You can turn the events off in Enhanced Measurement ( GA4 – Admin – Data Streams – Data Stream Details – Enhanced Measurement) are marked as “True” in “Enhanced Measurement Support” column.

Event Name

Automatically triggered…

Event Parameters

Platform

Enhanced Measurement

BigQuery Export Support

first_visit

the first time a user visits a website or launches an Android instant app with Analytics enabled

language, page_location, page_referrer, page_title, screen_resolution

Web and Mobile

FALSE

TRUE

session_start

when a user engages the app or website A session ID and session number are generated automatically with each session and associated with each event in the session. 

language, page_location, page_referrer, page_title, screen_resolution

Web and Mobile

FALSE

TRUE

user_engagement

when the app is in the foreground or webpage is in focus for at least one second. 

engagement_time_msec

Web and Mobile

FALSE

TRUE

click

each time a user clicks a link that leads away from the current domain By default, outbound click events will occur for all links leading away from the current domain. Links to domains configured for cross-domain measurement will not trigger outbound click events. 

link_classes, link_domain, link_id, link_url, outbound (boolean)

Web

TRUE

TRUE

file_download

when a user clicks a link leading to a file (with a common file extension) of the following types: document text executable presentation compressed file video audio The file name should meet the following regex for the event to be sent into Google Analytics 4: pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma

file_extension, file_name link_classes, link_domain, link_id, link_text, link_url

Web

TRUE

TRUE

form_start

the first time a user interacts with a form in a session 

form_id, form_name, form_destination

Web

TRUE

TRUE

form_submit

when the user submits a form 

form_id, form_name, form_destination, form_submit_text

Web

TRUE

TRUE

page_view

each time the page loads or the browser history state is changed by the active site

page_location (page URL), page_referrer (previous page URL), engagement_time_msec

Web

TRUE

TRUE

scroll

the first time a user reaches the bottom of each page (i.e., when a 90% vertical depth becomes visible)

engagement_time_msec

Web

TRUE

TRUE

video_complete

when the video ends For embedded YouTube videos that have JS API support enabled.

video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (boolean)

Web

TRUE

TRUE

video_progress

when the video progresses past 10%, 25%, 50%, and 75% duration time For embedded YouTube videos that have JS API support enabled.

video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (boolean)

Web

TRUE

TRUE

video_start

when the video starts playing For embedded YouTube videos that have JS API support enabled.

video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (boolean)

Web

TRUE

TRUE

view_search_results

each time a user performs a site search, indicated by the presence of a URL query parameter

search_term, optionally ‘q_

’ (where matches an additional query parameter you specify to be collected under advanced settings) Note: This event only sends the unique_search_term parameter when it has a value of 1 (i.e. when the string is unique to that session).

Web

TRUE

TRUE

ad_click

when a user clicks an ad Publisher events coming from AdMob via the Google Mobile Ads SDK or Ad Manager via the Ad Manager integration This event is not exported to BigQuery.

ad_event_id

Mobile

FALSE

FALSE

ad_exposure

when at least one ad served by the Mobile Ads SDK is on screen This event does not appear in reports and is not exported to BigQuery.

firebase_screen, firebase_screen_id, firebase_screen_class, exposure_time

Mobile

FALSE

FALSE

ad_impression

when a user sees an ad impression Publisher events coming from AdMob via the Google Mobile Ads SDK or Ad Manager via the Ad Manager integration This event is not exported to BigQuery.

ad_event_id, value

Mobile

FALSE

FALSE

ad_query

when an ad request is made by the Mobile Ads SDK This event does not appear in reports and is not exported to BigQuery.

ad_event_id

Mobile

FALSE

FALSE

ad_reward

when a reward is granted by a rewarded ad served by the Mobile Ads SDK

ad_unit_code, reward_type, reward_value

Mobile

FALSE

TRUE

adunit_exposure

when an ad unit served by the Mobile Ads SDK is on screen This event does not appear in reports and is not exported to BigQuery.

firebase_screen, firebase_screen_id, firebase_screen_class, exposure_time

Mobile

FALSE

FALSE

app_clear_data

when the user resets/clears the app data, removing all settings and sign-in data Android only

language, page_location, page_referrer, page_title, screen_resolution

Mobile

FALSE

TRUE

app_exception

when the app crashes or throws an exception The event is sent when you integrate Firebase Crashlytics.

fatal, timestamp, engagement_time_msec

Mobile

FALSE

TRUE

app_remove

when an application package is removed (uninstalled) from an Android device Android only

This event is different from the Daily uninstalls by device and Daily uninstalls by user metrics, which are both reported by Google Play Developer Console. The app_remove event counts the removal of application packages, regardless of the installation source, and the count changes depending on the date range you are using for the report. The Daily uninstalls by device and Daily uninstalls by user metrics count the removal of application packages only when they were installed from Google Play, and are reported on a daily basis.

language, page_location, page_referrer, page_title, screen_resolution

Mobile

FALSE

TRUE

app_store_refund

when an in-app purchase is refunded by Google Play Android only This event is not exported to BigQuery.

product_id, value, currency, quantity

Mobile

FALSE

FALSE

app_store_ subscription_cancel

when a paid subscription is cancelled in Google Play Android only Requires an initial subscription that was made on or after July 1, 2019. This event is not exported to BigQuery.

product_id, price, value, currency, cancellation_reason

Mobile

FALSE

FALSE

app_store_ subscription_convert

when a free-trial subscription is converted to a paid subscription This event is set as a default conversion. Requires an initial subscription that was made on or after July 1, 2019. An initial free-trial subscription is logged as an in_app_purchase with the subscription parameter set to true. This event is not exported to BigQuery.

product_id, price, value, currency, quantity

Mobile

FALSE

FALSE

app_store_ subscription_renew

when a paid subscription is renewed This event is set as a default conversion. Requires an initial subscription that was made on or after July 1, 2019. This event is not exported to BigQuery.

product_id, price, value, currency, quantity, renewal_count

Mobile

FALSE

FALSE

app_update

when the app is updated to a new version and launched again The previous app version id is passed as a parameter. This event is conceptually different from the Daily upgrades by device metric, which is reported by Google Play Developer Console. An upgrade refers to the updating of the application binary, whereas an app_update event is triggered upon the subsequent launch of the upgraded app.

previous_app_version

Mobile

FALSE

TRUE

dynamic_link_app_open

when a user re-opens the app via a dynamic link

source, medium, campaign, link_id, accept_time

Mobile

FALSE

TRUE

dynamic_link_ app_update

when the app is updated to a new version and is opened via a dynamic link Android only

source, medium, campaign, link_id, accept_time

Mobile

FALSE

TRUE

dynamic_link_ first_open

when a user opens the app for the first time via a dynamic link

source, medium, campaign, link_id, accept_time

Mobile

FALSE

TRUE

error

logged in place of an event that can’t be logged because it is invalid in some way

_err (firebase_error), _ev (firebase_error_value), and _el (firebase_error_length) parameters have additional information. This event does not appear in reports and is not exported to BigQuery.

firebase_error, firebase_error_value

Mobile

FALSE

FALSE

firebase_campaign

when the app is launched with campaign parameters This event does not appear in reports and is not exported to BigQuery.

source, medium, campaign, term, content, gclid, aclid, cp1, anid, click_timestamp, campaign_info_source

Mobile

FALSE

FALSE

firebase_in_app_ message_action

when a user takes action on a Firebase In-App Message

message_name, message_device_time, message_id

Mobile

FALSE

TRUE

firebase_in_app_ message_dismiss

when a user dismisses a Firebase In-App Message

message_name, message_device_time, message_id

Mobile

FALSE

TRUE

firebase_in_app_ message_impression

when a user sees a Firebase In-App Message

message_name, message_device_time, message_id

Mobile

FALSE

TRUE

first_open

the first time a user launches an app after installing or re-installing it This event is not triggered when a user downloads the app onto a device, but instead when he or she first uses it. To see raw download numbers, look in Google Play Developer Console or in iTunesConnect. Supports measuring first_open conversions for users who accept Apple’s iOS 14 app-tracking prompt.

previous_gmp_app_id, updated_with_analytics, previous_first_open_count, system_app, system_app_update, deferred_analytics_collection, reset_analytics_cause, engagement_time_msec

Mobile

FALSE

TRUE

in_app_purchase

when a user completes an in-app purchase, including an initial subscription, that is processed by the Apple App Store or Google Play Store The product ID, product name, currency, and quantity are passed as parameters. This event is triggered only by versions of your app that include the Google Analytics for Firebase SDK. Android: To see in-app purchase data for Android apps, link Analytics to Google Play. Note that Analytics doesn’t automatically measure paid-app purchase revenue. Also, your reported revenue in Google Analytics may differ from the values you see in the Google Play Developer Console. Analytics ignores events that are flagged as invalid or tests. Learn more about testing Google Play billing. iOS: Note that Analytics doesn’t automatically measure paid-app purchase revenue and refunds. Analytics ignores events that are flagged as invalid or sandbox.

product_id, price, value, currency, quantity, subscription, free_trial, introductory_price

Mobile

FALSE

TRUE

notification_dismiss

when a user dismisses a notification sent by Firebase Cloud Messaging (FCM) Android only

message_name, message_time, message_device_time, message_id, topic, label, message_channel

Mobile

FALSE

TRUE

notification_foreground

when a notification sent by FCM is received while the app is in the foreground

message_name, message_time, message_device_time, message_id, topic, label, message_channel, message_type

Mobile

FALSE

TRUE

notification_open

when a user opens a notification sent by FCM

message_name, message_time, message_device_time, message_id, topic, label, message_channel

Mobile

FALSE

TRUE

notification_receive

when a notification sent by FCM is received by a device when the app is in the background Android only

message_name, message_time, message_device_time, message_id, topic, label, message_channel, message_type

Mobile

FALSE

TRUE

os_update

when the device operating system is updated to a new version. The previous operating system version id is passed as a parameter

previous_os_version

Mobile

FALSE

TRUE

screen_view

when a screen transition occurs and any of the following criteria are met: No screen was previously set The new screen name differs from the previous screen name The new screen-class name differs from the previous screen-class name The new screen id differs from the previous screen id

firebase_screen, firebase_screen_class, firebase_screen_id, firebase_previous_screen, firebase_previous_class, firebase_previous_id, engagement_time_msec

Mobile

FALSE

TRUE

Final Word 

Unlike Universal Analytics, Google Analytics 4 collects way more automatic events. Adding a small piece of code to your website or application code lets you get information about users, sessions, page views, page scroll, video and page engagement, file downloads, form interactions and more. This makes Google Analytics 4 easy to install and more affluent in data than Universal Analytics. 

If you have any questions about events automatically collected by GA4, don’t hesitate to comment below. 


Frequently Asked Questions

What are GA4 automatic events?

These are automatically collected events by Google Analytics 4 that the tool can measure by only placing the primary snippet on a website or mobile app code. Some of them are session_start, page_view, user_engagement and others.

What events does GA4 collect automatically?

GA4 collects more than 30 events automatically. Some of them are: page_view, session_start, view_search_results, video_progress, video_start, video_complete, user_engagement, scroll, screen_view, notification_receive, os_update, notification_foreground, notification_dismiss, in_app_purchase, form_start, form_submit and many others.

Does GA4 automatically track clicks?

Google Analytics 4 only tracks outbound clicks automatically. Outbound clicks are clicks on links with a domain different from your website.  If you want to track every click on your website, set it up using Google Tag Manager.

How do I turn off automatic events in GA4?

Though you can disable several automatic events in GA4 -> Admin -> Data Streams -> Data Stream Details -> Enhanced Measurement, there are several events that you can’t turn off, for instance, “session_start” event. 

Written By

Ihar Vakulski

With over 8 years of experience working with SaaS, iGaming, and eCommerce companies, Ihar shares expert insights on building and scaling businesses for sustainable growth and success.

KEEP LEARNING

Leave a comment

Your email address will not be published. Required fields are marked *

Leave a Comment

Your email address will not be published. Required fields are marked *

[custom_comment_form]