About cookies on this site

We use cookies to collect and analyse information on site performance and usage, to provide social media features and to enhance and customise content and advertisements. Learn more

Cookie settings

About cookies on this site

Cookies used on the site are categorized and below you can read about each category and allow or deny some or all of them. Learn more

Necessary

Some cookies are required to provide core functionality. The website won't function properly without these cookies and they are enabled by default and cannot be disabled.

Preferences

Preference cookies enables the web site to remember information to customize how the web site looks or behaves for each user. This may include storing selected currency, region, language or color theme.

Analytical cookies

Analytical cookies help us improve our website by collecting and reporting information on its usage.

Marketing cookies

Marketing cookies are used to track visitors across websites to allow publishers to display relevant and engaging advertisements. By enabling marketing cookies, you grant permission for personalized advertising across various platforms.

  • Courses
    • Paid courses
    • Course bundles
    • Free courses
  • Blog
  • Resources
    • Youtube channel
    • E-books and Guides
    • GTM Recipes
    • View All Resources
    • GTM Community
    • GA4 community
  • Services
  • About
    • About
    • Contact
  • Login
  • Courses
    • Paid courses
    • Course bundles
    • Free courses
  • Blog
  • Resources
    • Youtube channel
    • E-books and Guides
    • GTM Recipes
    • View All Resources
    • GTM Community
    • GA4 community
  • Services
  • About
    • About
    • Contact
  • Login

April 1, 2025

Demystifying user_engagement Event in Google Analytics 4

Updated: April 1st, 2025

If you are at least a little familiar with event tracking in Google Analytics 4, you already know that one of the automatically tracked events is called user_engagement. When exactly does it fire on a website?

After looking at the official Google Analytics documentation, you’ll see this: user_engagement fires when the app is in the foreground or webpage is in focus for at least one second.

Honestly, this is still not very clear.

After digging here and there, I still could not find a final and clear technical description of when this event really fired. Therefore, I decided to do several experiments and see for myself. This blog post is the result of those tests.

Note: The list of tested situations (that I have identified) is not final. There should be more of them (I just haven’t figured that out (yet?)).

If you know more details about this event, feel free to comment below the article, and I’ll add some updates here.

 

Short version

If you don’t care about the details of my experiments, here are the key takeaways I have noticed.

  • user_engagement is sent if at least two page_view events exist in the same session. Event fires before the redirect, BUT only if the visitor has stayed at least 10 seconds on the previous page. If I land on a page (start a new session), then go to the 2nd page after 5 seconds, the user_engagement event will not fire. Once I stay longer than 10 seconds and do one more page_view, the user_engagement event will be sent to Google Analytics 4.
  • user_engagement event is sent to Google Analytics even on single-page-view sessions if a visitor stays for at least 10 seconds on a single page. But the event is sent only right before the tab/window is closed. I presume that beforeUnload is used here.
  • If a visitor lands on a page and a conversion event is sent on the very same pageview (but no other pages are viewed), the user_engagement event is not sent to Google Analytics. (I just presumed that it might be because conversions are mentioned in the Engaged Sessions metric calculations).
  • Looks like, in general, other events (except page_view) don’t affect the user_engagement event. What matters is multiple page_view events combined with minimal time on the page. But there are still some unknowns. Continue reading.
  • Pretty often, the user_engagement event fires once per session. HOWEVER, I have noticed some sessions where there are multiple user_engagement events. But I could not reproduce those situations myself whenever I wanted. Thus, further investigation is needed. Update: if you have implemented Google Consent mode and multiple “Update” commands are activated on a page, each of them will trigger an additional user_engagement event.

 

Longer version

Let’s take a look at all the experiments that I did. Again, I want to emphasize that there are more situations where a user_engagement event might be sent from a website to GA4. I just haven’t found concrete evidence yet.

 

How experiments were conducted

  • GA4 events were sent to my server-side GTM endpoint. Then it forwarded data to GA4. I used SGTM debug mode to see the incoming requests and their parameters.
  • I repeated each test several times to make sure that the results were consistent. They were.
  • All experiments were done in Chrome’s Incognito mode. Before every test, I completely closed all incognito windows to make sure that no first-party GA cookies remained from the previous session.
Subscribe and Get the Ebook - working with reports in ga4

“seg” parameter

Every time a request is sent from your website to Google Analytics 4, you will notice a parameter called seg. It stands for “session engaged”. If its value is 1, the session is considered engaged by GA (and if I understand correctly, that session is then included in the engaged sessions metric).

Based on my trials, it looks like the user_engagement event is sent to Google Analytics around the same time when the value of seg changes (or is about to change) from 0 to 1 (read “GA started treating the session as engaged”).

Then all the subsequent events of the same session continue having that seg=1 parameter.

 

Experiment #1

The flow of events that I tried:

  • Landed on a page (page_view, first_session, session_start events were automatically sent). seg=0
  • I did nothing for 20 seconds (no events were sent)
  • Click a link to go to the second page (the user_engagement event is sent before the redirect). seg=1
  • I am redirected (page_view event is sent). seg=1

Result: user_engagement event fires when a session consists of more than 1 pageview.

But this got me thinking. What if the second pageview occurs in less than 10 seconds after the first pageview? I picked 10 seconds because it was mentioned as one of the components in the engaged sessions metric.

Let’s do another test.

 

Experiment #2

The flow of events that I tried:

  • Landed on a page (page_view, first_session, session_start events were automatically sent). seg=0
  • Then I clicked the menu as soon as I could to go to another page (in less than 10 seconds) (menu_click event sent). seg=0
  • The second page loaded (page_view event was sent. No user_engagement event was sent). seg=0

Result: user_engagement event fires when a session consists of more than 1 pageview. But a visitor must stay for at least 10 seconds on a single page. If a visitor navigates from one page to another every 5 seconds, the user_engagement event will not be sent to GA until the visitor stays on one page for at least 10 seconds. How do I know that? Enter experiment #3.

 

Experiment #3

The flow of events that I tried:

  • Landed on a page (page_view, first_session, session_start events were automatically sent). seg=0
  • Then I refreshed the page as soon as I could & as soon as GA4 loaded on a page (another page_view was sent). seg=1
  • The second page loaded (page_view event was sent. No user_engagement event was sent). seg=1
  • The third page loaded (page_view event was sent. No user_engagement event was sent). seg=1
  • The fourth page loaded (page_view event was sent. No user_engagement event was sent). seg=1
  • I stayed for 10+ seconds on the fifth page and then refreshed the page again (user_engagement was sent before the page reload). seg=1

Result: user_engagement event fires when a session consists of more than 1 pageview, BUT only if a visitor stays for more than 10 seconds on a page.

 

Experiments #4, #5, and #6

The results of these three experiments were the same. Basically, I wanted to check what happens if a visitor actually manages to do something on a website in less than 10 seconds after the page_view (except for another page_view).

The flow of experiment #4:

  • Landed on a page (page_view, first_session, session_start events were automatically sent). seg=0
  • Scrolled down (several customized scroll events were sent). seg=0
  • Close the browser tab in less than 10 seconds after the first page_view (user_engagement event was not sent). seg=0

The flow of experiment #5:

  • Landed on a page (page_view, first_session, session_start events were automatically sent). seg=0
  • Did nothing
  • Close the browser tab in less than 10 seconds after the first page_view (user_engagement event was not sent). seg=0

The flow of experiment #6:

  • Landed on a page (page_view, first_session, session_start events were automatically sent). seg=0
  • An event (that is marked as conversion in the GA4 interface) was sent
  • Close the browser tab in less than 10 seconds after the first page_view (user_engagement event was not sent). seg=0

Results: user_engagement event does not fire if a visitor does not spend less than 10 seconds on a page.

 

There are still some unknowns

I sometimes notice that a session has several user_engagement events, but I could not identify specific moments when this happens (so that I could reproduce it every time I want). This is probably one of those “periodical” situations, like a heartbeat hit to measure the engagement time on a website.

Unfortunately, this part remains unsolved for me, and maybe one of my readers knows some details.

Update: if you have implemented Google Consent mode and multiple “Update” commands are activated on a page, each of them will trigger an additional user_engagement event.

 

To sum up

  • user_engagement is sent if there are at least two page_view events in the same session. Event fires before the redirect, BUT only if the visitor has stayed at least for 10 seconds on the previous page. If I land on a page (start a new session), then go to the 2nd page after 5 seconds, the user_engagement event will not fire. Once I stay longer than 10 seconds and do one more page_view, then the user_engagement event will be sent to Google Analytics 4.
  • user_engagement event is sent to Google Analytics even on single-page-view sessions if a visitor stays for at least 10 seconds on a single page. But the event is sent only right before the tab/window is closed. I presume that beforeUnload is used here.
  • If a visitor lands on a page and a conversion event is sent on the very same pageview (but no other pages are viewed), the user_engagement event is not sent to Google Analytics. (I just presumed that it might be because conversions are mentioned in the Engaged Sessions metric calculations).
  • Looks like, in general, other events (except page_view) don’t affect the user_engagement event. What matters is multiple page_view events combined with minimal time on the page. But there are still some unknowns. Continue reading.
  • Pretty often, the user_engagement event fires once per session. HOWEVER, I have noticed some sessions where there are multiple user_engagement events. But I could not reproduce those situations myself whenever I wanted. Thus further investigation is needed.

If you know something additional (that was not mentioned in this blog post), please let me know in the comments, and I will update it accordingly.

 

Julius Fedorovicius
In Google Analytics Tips
21 COMMENTS
San
  • Sep 6 2021
  • Reply

Very good analysis. Can user_engagement event be used as a conversion?

    Julius
    • Sep 6 2021
    • Reply

    Never tried it. You can try yourself by entering it in the conversions section.

TM
  • Jan 7 2022
  • Reply

I get a user_engagement event just before every page_view event, kind of annoying... Any way to turn it off?

    Julius Fedorovicius
    • Jan 7 2022
    • Reply

    No, at least at the moment.

    RICHARD I
    • Jan 31 2022
    • Reply

    I also experience user_engagement events just before very page_view - wasn't sure if it was because I'd made a mistake in GTM!

bernadeta
  • Feb 11 2022
  • Reply

Adjust how long it takes before sessions expire due to inactivity or become engaged sessions.
.......
Adjust timer for engaged sessions
Seconds
10 seconds

Jonathan
  • Mar 28 2022
  • Reply

Thanks for this post.
How to make the event a conversion in GA4 would be a useful follow up.

    Julius Fedorovicius
    • Mar 28 2022
    • Reply

    I already have a blog post about that. Please use the site search

Michael Olson
  • Jun 15 2022
  • Reply

Can you edit the parameters for "user_engagement" so that the session length can be longer and the requirement is a video click as well?

    Julius Fedorovicius
    • Jun 16 2022
    • Reply

    "Engaged session" length can be managed in the settings of the web stream. But you cannot customize other conditions when the user_engagement event fires.

Usama
  • Feb 23 2023
  • Reply

can we decrease this user_engegement time from 10 seconds to 1 second?

    Julius Fedorovicius
    • Feb 23 2023
    • Reply

    no

Emanuela
  • Apr 20 2023
  • Reply

Hi Julius,
Do you know if is it possible to overwrite `page_location` when the user_engagement event is triggered?
What I want to achieve is to mask all the existing ids from the url.
ex: `https://www.example.com/123125/test` to be logged in GA4 dashboard (Engagement > Engagement overview) as
`https://www.example.com/####/test`

Sean
  • Jun 21 2023
  • Reply

How does tabbed browsing affect a page's average engagement time?

If I land on a page, spend 15 seconds on a page, open a new tab, and go back to first tab for another 50 seconds ...

1. Does that create two engagements for the same user, the average of which is 32.5?
2. Or only one engagement for one user and there is NO resumption of counting, so the engagement time is 15 seconds?
3. Or only one engagement for one user and there is resumption of counting, so the engagement time is 65 seconds?

Steven
  • Jul 5 2023
  • Reply

Just spent a lot of time automating backend GA4 import/export so hopefully these comments will help clarify a few things.

1. User Engagement helps determine how long a user has been engaged with a page.

2. User Engagement events are fired at the time of the user's *last* engagement with the page. In a scenario where multiple events are fired at the time of the user's last engagement (e.g. 'click' event on exit), the user engagement event will *not* be fired as the engagement time can be calculated without it.

3. User Engagement events will not be fired if the user navigates away from the page before the session is considered "engaged". An engaged session is one that lasts at least 10 seconds, or involves 2 pageviews, or has a conversion event.

Benedikt
  • Jul 12 2023
  • Reply

I noticed that the user engagement event is send sometimes when I clear cash and cookie once I refresh the page. I’m the event is send for the old session and ga id.

Swas
  • Jul 17 2023
  • Reply

Is there a way to pass a custom page title & page location to user_engagement event?

shubham chorasiya
  • Aug 17 2023
  • Reply

Hiii,
How to get user_engagement eventCount value in our api.

Lee
  • Nov 13 2024
  • Reply

Hey Julian, have you come across any issue with landing page (not set) occuring but user engagement and session start events occur. I've seen it with interaction events like scroll occuring as the first event (no doc location) so no landing page set. I have a setup that doesnt have any interactive events setup but the (not set) landing page reports session_start and user engagment as the 2 events generating this segment. If user enegagment is only sent with a page_view how could there not be a doc location.

Yousef Esfahanian
  • Mar 12 2025
  • Reply

Hi Julius,

thanks for your great post. can you tell me if this is the case also for Apps? or the behavior can be different? iand do you know if there are differences between iOS and Android behaviour?

Best

Nick Guebhard
  • May 13 2025
  • Reply

The user_engagement event will fire if you click the back button to leave a site, even if this is before 10 seconds, so it's not always the case that it's indicative of an engaged session.

Leave a comment Cancel reply

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


 

Hi, I'm Julius Fedorovicius and I'm here to help you learn Google Tag Manager and Google Analytics. Join thousands of other digital marketers and digital analysts in this exciting journey. Read more
Analytics Mania
  • Google Tag Manager Courses
  • Google Tag Manager Recipes
  • Google Tag Manager Resources
  • Google Tag Manager Community
  • Login to courses
Follow Analytics Mania
  • Subscribe to newsletter
Recent Posts
  • Google Tag Manager vs Google Analytics explained
  • How to Track File Downloads with Google Analytics 4 (including PDF)
  • How to Check if Google Analytics is Installed on a Website? (8 ways)
Analytics Mania - Google Tag Manager and Google Analytics Blog | Privacy Policy
Manage Cookie Settings