Engagement time in GA4 vs. UA are truly “The Odd Couple“.

GA4’s “Average Engagement Time per Session” and Universal Analytics’ (UA) “Avg. Time on Page” are named such that you might assume they would report similar values. Not true (at all). Let’s explore this “odd couple”.

Universal Analytics’ average time on page metric

UA defines “Avg. Time on Page” as the average amount of time users spent viewing a specified page or screen, or set of pages or screens. Our blog post titled “Why is my Google Analytics Average Time on Page so high?” explains in detail how the value for this metric is calculated.

Basically, you determine the difference between the time a user started viewing page 1 and when they clicked to view page 2.  But, UA does not consider if the page was “in focus” (i.e., in the tab the user is currently viewing for a web browser) in calculating time on page, which can inflate this metric in UA.  And, this metric in UA can be skewed if the page is often an exit page.  Only when the page is not an exit page can time on page be measured. 

GA4’s engagement time metric

GA4 collects several events automatically, including the user_engagement event, which is automatically fired when the app is in the foreground or webpage is in focus for at least one second. The event is sent when a user navigates off the page (i.e., when a user closes their tab or window or when they navigate to another page or screen). This event includes the session engagement status and user engagement duration, and is not sent when an event was already sent less than one second before the event would have occurred.

The user_engagement event is represented by the &_et parameter with every event. The parameter is not included if there was no engaged time since the previous event in the session. For example, the parameter is not included when sending automatic events like first_visit and session_start because no engagement happens before these events. Also, the first event from each page (e.g., page_view) doesn’t have an engaged time.

GA4 defines:

  • Average Engagement Time per Session” as User engagement duration per session.
  • User Engagement” as the length of time that your app screen was in the foreground or your web page was in focus.  Note there is no indication that GA4 can’t measure this for an exit page.

An example to underscore the difference

Let’s look at a specific example on this website comparing these metrics to underscore how different they are. Considering the following URL:


For 03/20/22 – 03/26/22 (remember GA4 processes events which arrive up to 72 hours late):

  • GA4 reports the above page had a 48 seconds “Average Engagement Time per Session”.
  • UA reports this page had a whopping 3 minutes “Avg. Time on Page”.

UA’s engagement time metric value is 275% larger than GA4’s. That’s a substantial difference, and is something we will all need to keep in mind as we evaluate content while transitioning from UA to GA4 as our analytics “source of truth”.

Given that UA will stop collecting data on 07/01/2023, this underscores the importance of having all of your most valuable GA4 user actions recorded in a GA4 property by 07/01/2022 so you can do “apples to apples” year-over-year comparisons for metrics like engagement time in GA4 when UA stops processing hits.

Related: (i) Why is my Google Analytics Average Time on Page so high?, (ii) Is your GA4 property ready to replace Universal Analytics?, (iii) License renewal considerations when transitioning from GA360 UA to GA360 GA4
Engagement time metrics GA4 vs. Universal Analytics