{= include("docs.util"); internal.docs.tab = "USER"; start_docs_page(docs.user_guide.page_titles.user_session_computation); =}

How does $PRODUCT_NAME compute session information?

Question: How does $PRODUCT_NAME compute session information, like total sessions, repeat visitors, paths through the site, entry pages, exit pages, time spent per page, etc.?

Answer: $PRODUCT_NAME computes session information by tracking the page, date/time, and visitor id (which is usually the hostname (client IP)) for each page view. When a session view is requested, it processes all of these page views at the time of the request.

$PRODUCT_NAME groups the hits into initial sessions based on the visitor id-- it starts by assuming that each visitor contributed one session. It sorts the hits by date so it has a click-by-click record of the movement of each visitor.

Then it splits the sessions, using the session timeout interval (this is set to 30 minutes by default but your $PRODUCT_NAME Administrator can change this). Since most web sites are accessible without logging in, there is no way for $PRODUCT_NAME to know the real time that a user leaves the site; it can only guess by assuming that if they didn't click anything on the site for 30 minutes, they must have finished and left. By splitting the sessions up in this way we are counting more accurately the number of sessions a given visitor has had on the web site. It is not a perfect science, but over time, as long as the method of measuring remains the same, a trend can be found. This splitting process increases the number of sessions that $PRODUCT_NAME counts, resulting in possibly more than one session per visitor.

Next, $PRODUCT_NAME discards sessions over 2 hours long (again this can be changed by the $PRODUCT_NAME Administrator). The idea behind this is that most web sessions are considerably shorter than that, so there's a good chance that any really long session is actually caused by multiple visitors using the same proxy server to visit the site. These looks like one long session because all of the hits seem to come from the proxy server (the same IP address). $PRODUCT_NAME rejects these because there is no way to tell which hits were from a particular visitor. If you're using visitor cookies to track unique visitors, this will not be a problem as your visitor count will not be covered by the hostname (Client IP) of the visitor.

Finally, $PRODUCT_NAME discards sessions based on the {=docs_user_chapter_link('user_filters')=}.

After that, $PRODUCT_NAME is ready to generate the statistics reports.



  • {=docs_user_chapter_link('index')=}
  • {= end_docs_page() =}