time_spent_ref_actiondivided by the number of visits
nb_visits. Not all visits have
sum_time_spentshould be divided by something like
time_spent_ref_actionwrong. It calculates
visit_last_action_time - currentTimestampbut
visit_last_action_timeis updated on any tracking call, meaning also on any hit.
To make it a bit more clear let's say there are the following tracking calls
The time spent for first pageview is calculated by the time difference between the event and the pageview, not between the two pageviews. This means for many common scenarios where one triggers a pageview and then an event, search, content impression, ... the time spent information is not accurate.
uuh good find.- that's quite important!
Seems like we are experiencing this too -> http://forum.piwik.org/t/update-to-2-15-changed-average-visit-duration-and-time-on-page/16744
I think the issue I mentioned here has been an issue for a long time and not only since the last update. From which Piwik version did you update? I presume the problem you are describing might be actually a different one
@tsteur : from 2.14.3 to 2.15.0
And this is just one of 800 Sites tracked in one Piwik instance. (it has effect on the other 799 too)
Main Question is: which counting is correct?
@SR-mkuhn this particular issue has been buggy for quite a while and not only since last update I think.
@SR-mkuhn maybe create a new issue for your problem and describe it there
I've also encountered this issue recently. And I've found that there is problem with Metric calculation:
Time spent on site is defined as
sum_time_spent and calculated as SUM():
SUM() function in SQL databases omits records containing NULL values. Later average time spend on time is calculated by dividing this sum by number of visits
nb_hits ( https://github.com/piwik/piwik/blob/master/plugins/Actions/Columns/Metrics/AverageTimeOnPage.php#L39 ) which is calculated as
COUNT(*) ( https://github.com/piwik/piwik/blob/master/plugins/Actions/Archiver.php#L359 ).
The problem is that COUNT(*) counts all rows, even those containing NULL value. So average value isn't average at all. Solution would be use of
SUM(COALESCE(sum_time_spent, 0)) which will count NULL values or introducing
COUNT(sum_time_spent), then using it to divide as @tsteur said.
I’ve just encountered the same issue. Checking at the Visitor Profile, I can see that if I look at interactions where we have a page with lots of tracking events occurring, the Page View event gets a minimal time whereas the events are given times between each interaction. As such the user could be interacting on a page for say a minute or more, triggering numerous events, but the page dwell time would be still close to zero. Surely this is a major bug. This means that any page which has subsequent events occurring will have a incorrect dwell time.
Would agree this bug is quite major as it is causing the Time on page to be wrong, for any page tracking events.
it is causing the Time on page to be wrong, for any page tracking events.
Possibly there is a strong relationship to:
we have no "time on url": Piwik handels events as leaving page (at least in visitor log) #11546
Has it been already solved? We had Piwik 2.something, now we are in upgrade process to matomo 3.7. and I am wondering if it will be correct. I have checked the previous data in database. Zou can easily see, when filter one specific idvisit in piwik_log_link_action_table and you will see, that every event will close the time on pageview. Especially if you are usinng some events like formSeen, bannerImpression etc. you will understand that it is not correct. And also time spent with some events is soo funny. Thank you also for pointing me to some another issue etc.