Expand my Community achievements bar.

Applications for the 2024-2025 Adobe Analytics Champion Program are open!
SOLVED

How to know the idle time of an user in the web

Avatar

Level 1

I have use-case where I have to track the idle time of an user after they land on the web app. How can I do that in adobe analytics? Can someone please help.

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

There really isn't a way to do this out-of-the-box... 

 

Adobe's time metrics are very rudimentary.. simple math applied against page view timestamps.

 

  • Page A (timestamp 10:01am)
  • Page B (timestamp 10:03am)
    • Time Spent on Page A: Page B timestamp - Page A timestamp
    • 10:03am-10:01am = 2 mins
  • Page C (timestamp 10:07am)
    • Time Spent on Page B: Page C timestamp - Page B timestamp
    • 10:07am-10:03am = 4 mins

 

If Page C is the last page in the visit, there is no timestamp to calculate the time spent...

 

You can see that there is no distinction between "Active on the Page" or "Idle", Adobe is not a heartbeat system, it is not checking constantly for activity (is the user still there? Is the Tab active or not? Is the window open or minimized? etc)

 

If you attempt to create custom code to detect this (using s.tl actions), you will inflate your server calls and could go over your contract allocations.

 

If you really need in-depth time spent, I suggest that you look into something which uses heartbeats and takes active vs idle into account... 

 

Or if it is one specific page, you could maybe use something like the getTimeToComplete (https://experienceleague.adobe.com/docs/analytics/implementation/vars/plugins/gettimetocomplete.html...) or getTimeBetweenEvents (https://experienceleague.adobe.com/docs/analytics/implementation/vars/plugins/gettimebetweenevents.h...) plugins to create some sort of custom timer tracking (assuming that you can identify the moment the user went "idle" and when they come back.

View solution in original post

5 Replies

Avatar

Correct answer by
Community Advisor

There really isn't a way to do this out-of-the-box... 

 

Adobe's time metrics are very rudimentary.. simple math applied against page view timestamps.

 

  • Page A (timestamp 10:01am)
  • Page B (timestamp 10:03am)
    • Time Spent on Page A: Page B timestamp - Page A timestamp
    • 10:03am-10:01am = 2 mins
  • Page C (timestamp 10:07am)
    • Time Spent on Page B: Page C timestamp - Page B timestamp
    • 10:07am-10:03am = 4 mins

 

If Page C is the last page in the visit, there is no timestamp to calculate the time spent...

 

You can see that there is no distinction between "Active on the Page" or "Idle", Adobe is not a heartbeat system, it is not checking constantly for activity (is the user still there? Is the Tab active or not? Is the window open or minimized? etc)

 

If you attempt to create custom code to detect this (using s.tl actions), you will inflate your server calls and could go over your contract allocations.

 

If you really need in-depth time spent, I suggest that you look into something which uses heartbeats and takes active vs idle into account... 

 

Or if it is one specific page, you could maybe use something like the getTimeToComplete (https://experienceleague.adobe.com/docs/analytics/implementation/vars/plugins/gettimetocomplete.html...) or getTimeBetweenEvents (https://experienceleague.adobe.com/docs/analytics/implementation/vars/plugins/gettimebetweenevents.h...) plugins to create some sort of custom timer tracking (assuming that you can identify the moment the user went "idle" and when they come back.

Avatar

Level 1

Hello Jennifer,

 

Thanks for clarifying. I guess it would be difficult to capture render time of a web page as well then. Or is there any methods supported by adobe analytics to capture render time ?

Avatar

Community Advisor

Render time would also be difficult to capture... again, you could try something custom.. but this would inflate your server calls...

 

You would need to fire tracking almost immediately as the page starts to load (this requires that the sync Launch code has to download and execute soon after the page starts to load - which of course there will be delays)... then trigger again after the rendering is complete.... The time collected would still be "short" of the actual time (since the JS for Launch is quite large to accommodate all the extensions and properly determine the tracking suite, etc)

 

Most tools that are designed for tracking render time have a very lightweight ping so that they can reduce latency.

Avatar

Community Advisor

You're welcome... sorry I didn't have a better solution for you.