From bd4a852865bec54d4260f4c32a0281443b5ab863 Mon Sep 17 00:00:00 2001 From: mattab Date: Mon, 8 Sep 2014 22:07:46 +1200 Subject: Refs #6109 New core metric: nb_users as the count of distinct user ids. Means "Active Users". Displayed in Visitors Overview, in metrics picker, in API response, in Metadata --- core/ArchiveProcessor.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'core/ArchiveProcessor.php') diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php index cd3fc0138c..c1de099a26 100644 --- a/core/ArchiveProcessor.php +++ b/core/ArchiveProcessor.php @@ -368,12 +368,16 @@ class ArchiveProcessor // we only compute unique visitors for a single site return; } - if ( $row->getColumn('nb_uniq_visitors') !== false) { + if ( $row->getColumn('nb_uniq_visitors') !== false + || $row->getColumn('nb_users') !== false) { if (SettingsPiwik::isUniqueVisitorsEnabled($this->getParams()->getPeriod()->getLabel())) { - $uniqueVisitors = (float)$this->computeNbUniqVisitors(); - $row->setColumn('nb_uniq_visitors', $uniqueVisitors); + $metrics = array(Metrics::INDEX_NB_UNIQ_VISITORS, Metrics::INDEX_NB_USERS); + $uniques = $this->computeNbUniques( $metrics ); + $row->setColumn('nb_uniq_visitors', $uniques[Metrics::INDEX_NB_UNIQ_VISITORS]); + $row->setColumn('nb_users', $uniques[Metrics::INDEX_NB_USERS]); } else { $row->deleteColumn('nb_uniq_visitors'); + $row->deleteColumn('nb_users'); } } } @@ -395,14 +399,15 @@ class ArchiveProcessor * This is the only Period metric (ie. week/month/year/range) that we process from the logs directly, * since unique visitors cannot be summed like other metrics. * + * @param array Metrics Ids for which to aggregates count of values * @return int */ - protected function computeNbUniqVisitors() + protected function computeNbUniques($metrics) { $logAggregator = $this->getLogAggregator(); - $query = $logAggregator->queryVisitsByDimension(array(), false, array(), array(Metrics::INDEX_NB_UNIQ_VISITORS)); + $query = $logAggregator->queryVisitsByDimension(array(), false, array(), $metrics); $data = $query->fetch(); - return $data[Metrics::INDEX_NB_UNIQ_VISITORS]; + return $data; } /** -- cgit v1.2.3