From 820e604a34df00bada49218d04f6ba26db5c9699 Mon Sep 17 00:00:00 2001 From: BeezyT <timo@ezdesign.de> Date: Wed, 9 Nov 2011 18:07:25 +0000 Subject: [PATCH] refs #1820 added metrics picker to more core reports. some language updates to make metrics consistent and short. new api methods for comparing metrics in Referers and VisitsSummary. minor tweaks. git-svn-id: http://dev.piwik.org/svn/trunk@5421 59fd770c-687e-43c8-a1e3-f5a4ff64c105 --- core/DataTable/Renderer/Csv.php | 1 - lang/de.php | 18 +++--- lang/en.php | 8 +-- plugins/CoreHome/templates/jqplot.js | 4 +- plugins/Referers/API.php | 55 ++++++++++++++++++ plugins/Referers/Controller.php | 58 +++++++++++-------- plugins/VisitFrequency/API.php | 36 +++++++----- plugins/VisitFrequency/Controller.php | 46 ++++++++++----- plugins/VisitFrequency/VisitFrequency.php | 2 +- plugins/VisitsSummary/API.php | 2 +- ...Site_lastN__API.getProcessedReport_day.xml | 15 +++-- ...ortMetadata__API.getReportMetadata_day.xml | 14 +++-- ...test_apiGetReportMetadata__API.get_day.xml | 6 +- ...adata_year__API.getReportMetadata_year.xml | 14 +++-- 14 files changed, 190 insertions(+), 89 deletions(-) diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php index 57285fb3ea..6a383ec815 100644 --- a/core/DataTable/Renderer/Csv.php +++ b/core/DataTable/Renderer/Csv.php @@ -408,7 +408,6 @@ class Piwik_DataTable_Renderer_Csv extends Piwik_DataTable_Renderer 'bounce_count_returning' => 'VisitFrequency_ColumnBounceCountForReturningVisits', 'max_actions' => 'General_ColumnMaxActions', 'max_actions_returning' => 'VisitFrequency_ColumnMaxActionsInReturningVisit', - 'nb_uniq_visitors_returning' => 'VisitFrequency_ColumnUniqueReturningVisitors', 'nb_visits_converted_returning' => 'VisitFrequency_ColumnNbReturningVisitsConverted', 'sum_visit_length_returning' => 'VisitFrequency_ColumnSumVisitLengthReturning', 'nb_visits_converted' => 'General_ColumnVisitsWithConversions', diff --git a/lang/de.php b/lang/de.php index 0899464ca1..722db44a72 100644 --- a/lang/de.php +++ b/lang/de.php @@ -580,7 +580,7 @@ $translations = array( 'Goals_ColumnQuantityDocumentation' => 'Quantität ist die Gesamtzahl der Produkte die von %s verkauft wurden.', 'Goals_ColumnOrdersDocumentation' => 'Die Gesamtzahl aller Ecommerce Bestellungen welche %s mindestens einmal enthielten.', 'Goals_ColumnAveragePriceDocumentation' => 'Der Durchschnittsertrag für %s.', - 'Goals_ColumnAverageQuantityDocumentation' => 'Die Durschnittliche Anzahl von %s verkauft durch Ecommerce Bestellungen.', + 'Goals_ColumnAverageQuantityDocumentation' => 'Die durchschnittliche Anzahl von %s verkauft durch Ecommerce Bestellungen.', 'Goals_ColumnVisits' => 'Die Gesamtanzahl an Besuchen, unabhängig davon ob dabei ein Ziel erreicht wurde oder nicht.', 'Goals_GoalX' => 'Ziel %s', 'Goals_GoalConversion' => 'Ziel-Konversion', @@ -841,12 +841,12 @@ $translations = array( 'Referers_TypeSearchEngines' => '%s von Suchmaschinen', 'Referers_TypeWebsites' => '%s von Webseiten', 'Referers_TypeCampaigns' => '%s von Kampagnen', - 'Referers_Distinct' => 'Vermittler nach Verweisart unterscheiden', - 'Referers_DistinctSearchEngines' => 'Suchmaschinen unterscheiden', - 'Referers_DistinctKeywords' => 'Stichwörter unterscheiden', - 'Referers_DistinctCampaigns' => 'Kampagnen unterscheiden', - 'Referers_DistinctWebsites' => 'Webseiten unterscheiden', - 'Referers_UsingNDistinctUrls' => '(%s zum URL unterscheiden werden verwendet)', + 'Referers_Distinct' => 'Unterschiedliche Verweise nach Verweisart', + 'Referers_DistinctSearchEngines' => 'verschiedene Suchmaschinen', + 'Referers_DistinctKeywords' => 'verschiedene Suchbegriffe', + 'Referers_DistinctCampaigns' => 'verschiedene Kampagnen', + 'Referers_DistinctWebsites' => 'verschiedene Webseiten', + 'Referers_UsingNDistinctUrls' => '(mit %s verschiedenen URLs)', 'Referers_SubmenuOverview' => 'Übersicht', 'Referers_SubmenuSearchEngines' => 'Suchmaschinen und Suchbegriffe', 'Referers_SubmenuWebsites' => 'Webseiten', @@ -1315,10 +1315,10 @@ $translations = array( 'VisitFrequency_ReturningVisitsDocumentation' => 'Dies ist eine Übersicht über die wiederkehrenden Besuche.', 'VisitFrequency_ReturningVisitDocumentation' => 'Ein wiederkehrender Besuch wird (im Vergleich zu einem neuen Besuch) von jemandem gemacht, der bereits mindestens einmal die Webseite besucht hat.', 'VisitFrequency_ColumnActionsByReturningVisits' => 'Aktionen bei wiederkehrenden Besuchen', - 'VisitFrequency_ColumnAverageVisitDurationForReturningVisitors' => 'Durchschnittliche Aufenthaltszeit bei wiederkehrenden Besuchen (in Sekunden)', + 'VisitFrequency_ColumnAverageVisitDurationForReturningVisitors' => 'Durchschnittszeit von wiederkehrenden Besuchen', 'VisitFrequency_ColumnBounceRateForReturningVisits' => 'Absprungsrate bei wiederkehrenden Besuchen', 'VisitFrequency_ColumnBounceCountForReturningVisits' => 'Absprünge von wiederkehrenden Besuchen', - 'VisitFrequency_ColumnAvgActionsPerReturningVisit' => 'Durchschnittliche Anzahl an Aktionen bei wiederkehrenden Besuchen', + 'VisitFrequency_ColumnAvgActionsPerReturningVisit' => 'Aktionen pro wiederkehrender Besuch', 'VisitFrequency_ColumnMaxActionsInReturningVisit' => 'Maximale Aktionen bei einem wiederkehrenden Besuch', 'VisitFrequency_ColumnUniqueReturningVisitors' => 'Eindeutige wiederkehrende Besucher', 'VisitFrequency_ColumnNbReturningVisitsConverted' => 'Anzahl wiederkehrende Besuche mit Konversion', diff --git a/lang/en.php b/lang/en.php index f105d90ce0..0585e94507 100644 --- a/lang/en.php +++ b/lang/en.php @@ -1378,10 +1378,10 @@ Note: this token will expire in 24 hrs.', 'VisitFrequency_ReturningVisitsDocumentation' => 'This is an overview of the returning visits.', 'VisitFrequency_ReturningVisitDocumentation' => 'A returning visit is (as opposed to a new visit) made by someone who has visited the website at least once before.', 'VisitFrequency_ColumnActionsByReturningVisits' => 'Actions by Returning Visits', - 'VisitFrequency_ColumnAverageVisitDurationForReturningVisitors' => 'Avg. Visit Duration for Returning Visitors (in seconds)', - 'VisitFrequency_ColumnBounceRateForReturningVisits' => 'Bounce rate for returning visits', - 'VisitFrequency_ColumnBounceCountForReturningVisits' => 'Bounce count for returning visits', - 'VisitFrequency_ColumnAvgActionsPerReturningVisit' => 'Avg. actions per returning visit', + 'VisitFrequency_ColumnAverageVisitDurationForReturningVisitors' => 'Avg. Duration of a Returning Visit (in sec)', + 'VisitFrequency_ColumnBounceRateForReturningVisits' => 'Bounce Rate for Returning Visits', + 'VisitFrequency_ColumnBounceCountForReturningVisits' => 'Bounce Count for Returning Visits', + 'VisitFrequency_ColumnAvgActionsPerReturningVisit' => 'Avg. Actions per Returning Visit', 'VisitFrequency_ColumnMaxActionsInReturningVisit' => 'Maximum actions in one returning visit', 'VisitFrequency_ColumnUniqueReturningVisitors' => 'Unique returning visitors', 'VisitFrequency_ColumnNbReturningVisitsConverted' => 'Number of converted returning visits', diff --git a/plugins/CoreHome/templates/jqplot.js b/plugins/CoreHome/templates/jqplot.js index 83c36dacb7..c238d34575 100644 --- a/plugins/CoreHome/templates/jqplot.js +++ b/plugins/CoreHome/templates/jqplot.js @@ -947,7 +947,9 @@ JQPlot.prototype = { // try to display popover to the right var margin = (parseInt(pickerLink.css('marginLeft'), 10) - 4); - if (margin + neededSpace < plotWidth) { + if (margin + neededSpace < plotWidth + // make sure it's not too far to the left + || margin - neededSpace + 60 < 0) { pickerPopover.css('marginLeft', margin + 'px').show(); } else { // display to the left diff --git a/plugins/Referers/API.php b/plugins/Referers/API.php index b61d2b151a..fc23849a32 100644 --- a/plugins/Referers/API.php +++ b/plugins/Referers/API.php @@ -54,6 +54,61 @@ class Piwik_Referers_API return $dataTable; } + /** + * This is a combined report that contains one row with the visits per referrer + * as columns. It is used internally to make comparing the referrers with the + * metrics picker possible. + */ + public function getVisitsPerRefererType($idSite, $period, $date, $segment=false) + { + $dataTable = $this->getRefererType($idSite, $period, $date, $segment); + + $isDataTableArray = $dataTable instanceof Piwik_DataTable_Array; + $result = new Piwik_DataTable_Array; + + if ($isDataTableArray) + { + $array = $dataTable->getArray(); + $result->metadata = $dataTable->metadata; + } + else + { + $array = array($dataTable); + } + + $rowBase = array( + 'nb_visits_'.Piwik_Common::REFERER_TYPE_DIRECT_ENTRY => 0, + 'nb_visits_'.Piwik_Common::REFERER_TYPE_SEARCH_ENGINE => 0, + 'nb_visits_'.Piwik_Common::REFERER_TYPE_WEBSITE => 0, + 'nb_visits_'.Piwik_Common::REFERER_TYPE_CAMPAIGN => 0 + ); + + foreach ($array as $tableIndex => $dataTable) + { + $newTable = new Piwik_DataTable; + $columns = $rowBase; + foreach ($dataTable->getRows() as $row) + { + $visits = $row->getColumn(Piwik_Archive::INDEX_NB_VISITS); + $refType = $row->getColumn('label'); + $label = 'nb_visits_'.$refType; + $columns[$label] = $visits; + } + $newTable->addRowFromArray(array( + Piwik_DataTable_Row::COLUMNS => $columns + )); + $result->addTable($newTable, $tableIndex); + } + + if (!$isDataTableArray) + { + $array = $result->getArray(); + $result = $array[0]; + } + + return $result; + } + public function getKeywords($idSite, $period, $date, $segment = false, $expanded = false) { $dataTable = $this->getDataTable('Referers_searchEngineByKeyword', $idSite, $period, $date, $segment, $expanded); diff --git a/plugins/Referers/Controller.php b/plugins/Referers/Controller.php index 5451744b0f..453feb504d 100644 --- a/plugins/Referers/Controller.php +++ b/plugins/Referers/Controller.php @@ -20,7 +20,7 @@ class Piwik_Referers_Controller extends Piwik_Controller { $view = Piwik_View::factory('index'); - $view->graphEvolutionReferers = $this->getEvolutionGraph(true, Piwik_Common::REFERER_TYPE_DIRECT_ENTRY, array('nb_visits')); + $view->graphEvolutionReferers = $this->getEvolutionGraph(true, Piwik_Common::REFERER_TYPE_DIRECT_ENTRY); $view->nameGraphEvolutionReferers = 'ReferersgetEvolutionGraph'; $view->numberDistinctSearchEngines = $this->getNumberOfDistinctSearchEngines(true); @@ -38,10 +38,10 @@ class Piwik_Referers_Controller extends Piwik_Controller $view->$name = $value; } // sparkline for the historical data of the above values - $view->urlSparklineSearchEngines = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_visits'), 'typeReferer' => Piwik_Common::REFERER_TYPE_SEARCH_ENGINE)); - $view->urlSparklineDirectEntry = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_visits'), 'typeReferer' => Piwik_Common::REFERER_TYPE_DIRECT_ENTRY)); - $view->urlSparklineWebsites = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_visits'), 'typeReferer' => Piwik_Common::REFERER_TYPE_WEBSITE)); - $view->urlSparklineCampaigns = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_visits'), 'typeReferer' => Piwik_Common::REFERER_TYPE_CAMPAIGN)); + $view->urlSparklineSearchEngines = $this->getUrlSparkline('getEvolutionGraph', array('typeReferer' => Piwik_Common::REFERER_TYPE_SEARCH_ENGINE)); + $view->urlSparklineDirectEntry = $this->getUrlSparkline('getEvolutionGraph', array('typeReferer' => Piwik_Common::REFERER_TYPE_DIRECT_ENTRY)); + $view->urlSparklineWebsites = $this->getUrlSparkline('getEvolutionGraph', array('typeReferer' => Piwik_Common::REFERER_TYPE_WEBSITE)); + $view->urlSparklineCampaigns = $this->getUrlSparkline('getEvolutionGraph', array('typeReferer' => Piwik_Common::REFERER_TYPE_CAMPAIGN)); // sparklines for the evolution of the distinct keywords count/websites count/ etc $view->urlSparklineDistinctSearchEngines = $this->getUrlSparkline('getLastDistinctSearchEnginesGraph'); @@ -246,36 +246,48 @@ class Piwik_Referers_Controller extends Piwik_Controller Piwik_Common::REFERER_TYPE_CAMPAIGN => 'Referers_Campaigns', ); - public function getEvolutionGraph( $fetch = false, $typeReferer = false, $columns = false) + public function getEvolutionGraph( $fetch = false, $typeReferer = false, $columns = array() ) { - $view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, 'Referers.getRefererType'); - if(empty($typeReferer)) + $view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, 'Referers.getVisitsPerRefererType'); + + $typeReferrerRequest = Piwik_Common::getRequestVar('typeReferer', false); + if ($typeReferrerRequest !== false) { - $typeReferer = Piwik_Common::getRequestVar('typeReferer'); + $typeReferer = $typeReferrerRequest; } + if(empty($columns)) { - $columns = Piwik_Common::getRequestVar('columns'); + $columns = Piwik_Common::getRequestVar('columns', false); + $columns = Piwik::getArrayFromApiParameter($columns); + } + + // if referrer type is set, transform it into the corresponding column name + if ($typeReferer !== false) + { + $columns[] = 'nb_visits_'.$typeReferer; } - $columns = !is_array($columns) ? array($columns) : $columns; + $view->setColumnsToDisplay($columns); - $view->setParametersToModify(array('typeReferer' => $typeReferer)); - foreach($columns as $columnName) + + $translations = array(); + $selectableColumns = array(); + foreach ($this->referrerTypeToLabel as $id => $langString) { - $columnTranslation = $view->getColumnTranslation($columnName); - $referrerTypeTranslation = $this->referrerTypeToLabel[$typeReferer]; - $view->setColumnTranslation( - $columnName, - Piwik_Translate('Referers_MetricsFromRefererTypeGraphLegend', - array( Piwik_Translate($columnTranslation), - Piwik_Translate($referrerTypeTranslation) - ) - ) - ); + $label = 'nb_visits_'.$id; + $selectableColumns[] = $label; + + $translations[$label] = Piwik_Translate('Referers_MetricsFromRefererTypeGraphLegend', + array(Piwik_Translate('General_ColumnNbVisits'), Piwik_Translate($langString))); } + + $view->setColumnsTranslations($translations); + $view->setSelectableColumns($selectableColumns); + $view->setReportDocumentation(Piwik_Translate('Referers_EvolutionDocumentation').'<br />' .Piwik_Translate('General_BrokenDownReportDocumentation').'<br />' .Piwik_Translate('Referers_EvolutionDocumentationMoreInfo', '"'.Piwik_Translate('Referers_DetailsByRefererType').'"')); + return $this->renderView($view, $fetch); } diff --git a/plugins/VisitFrequency/API.php b/plugins/VisitFrequency/API.php index d6212b4793..30e909de47 100644 --- a/plugins/VisitFrequency/API.php +++ b/plugins/VisitFrequency/API.php @@ -31,24 +31,35 @@ class Piwik_VisitFrequency_API Piwik::checkUserHasViewAccess( $idSite ); $archive = Piwik_Archive::build($idSite, $period, $date, $segment ); + // array values are comma separated $columns = Piwik::getArrayFromApiParameter($columns); - $countColumnsRequested = count($columns); + $tempColumns = array(); $bounceRateReturningRequested = $averageVisitDurationReturningRequested = $actionsPerVisitReturningRequested = false; if(!empty($columns)) { - if(($bounceRateReturningRequested = array_search('bounce_rate_returning', $columns)) !== false) + // make sure base metrics are there for processed metrics + if(false !== ($bounceRateReturningRequested = array_search('bounce_rate_returning', $columns))) { - $columns = array('nb_visits_returning', 'bounce_count_returning'); + if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning'; + if (!in_array('bounce_count_returning', $columns)) $tempColumns[] = 'bounce_count_returning'; + unset($columns[$bounceRateReturningRequested]); } - elseif(($actionsPerVisitReturningRequested = array_search('nb_actions_per_visit_returning', $columns)) !== false) + if(false !== ($actionsPerVisitReturningRequested = array_search('nb_actions_per_visit_returning', $columns))) { - $columns = array('nb_actions_returning', 'nb_visits_returning'); + if (!in_array('nb_actions_returning', $columns)) $tempColumns[] = 'nb_actions_returning'; + if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning'; + unset($columns[$actionsPerVisitReturningRequested]); } - elseif(($averageVisitDurationReturningRequested = array_search('avg_time_on_site_returning', $columns)) !== false) + if(false !== ($averageVisitDurationReturningRequested = array_search('avg_time_on_site_returning', $columns))) { - $columns = array('sum_visit_length_returning', 'nb_visits_returning'); + if (!in_array('sum_visit_length_returning', $columns)) $tempColumns[] = 'sum_visit_length_returning'; + if (!in_array('nb_visits_returning', $columns)) $tempColumns[] = 'nb_visits_returning'; + unset($columns[$averageVisitDurationReturningRequested]); } + + $tempColumns = array_unique($tempColumns); + $columns = array_merge($columns, $tempColumns); } else { @@ -83,14 +94,9 @@ class Piwik_VisitFrequency_API $dataTable->filter('ColumnCallbackAddColumnQuotient', array('avg_time_on_site_returning', 'sum_visit_length_returning', 'nb_visits_returning', 0)); } - // If only a computed metrics was requested, we delete other metrics - // that we selected only to process this one metric - if($countColumnsRequested == 1 - && ($bounceRateReturningRequested || $averageVisitDurationReturningRequested || $actionsPerVisitReturningRequested) - ) - { - $dataTable->deleteColumns($columns); - } + // remove temporary metrics that were used to compute processed metrics + $dataTable->deleteColumns($tempColumns); + return $dataTable; } diff --git a/plugins/VisitFrequency/Controller.php b/plugins/VisitFrequency/Controller.php index 526dd9076b..d8339176ab 100644 --- a/plugins/VisitFrequency/Controller.php +++ b/plugins/VisitFrequency/Controller.php @@ -33,25 +33,45 @@ class Piwik_VisitFrequency_Controller extends Piwik_Controller public function getEvolutionGraph( $fetch = false, $columns = false) { - $view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, "VisitFrequency.get"); if(empty($columns)) { $columns = Piwik_Common::getRequestVar('columns'); + $columns = Piwik::getArrayFromApiParameter($columns); } - $view->setColumnsToDisplay($columns); - $view->setColumnsTranslations(array( - 'nb_visits_returning' => Piwik_Translate('VisitFrequency_ColumnReturningVisits'), - 'nb_actions_returning' => Piwik_Translate('VisitFrequency_ColumnActionsByReturningVisits'), - 'avg_time_on_site_returning' => Piwik_Translate('VisitFrequency_ColumnAverageVisitDurationForReturningVisitors'), - 'bounce_rate_returning' => Piwik_Translate('VisitFrequency_ColumnBounceRateForReturningVisits'), - 'nb_actions_per_visit_returning' => Piwik_Translate('VisitFrequency_ColumnAvgActionsPerReturningVisit'), - )); - $doc = Piwik_Translate('VisitFrequency_ReturningVisitsDocumentation').'<br />' - . Piwik_Translate('General_BrokenDownReportDocumentation').'<br />' - . Piwik_Translate('VisitFrequency_ReturningVisitDocumentation'); + $documentation = Piwik_Translate('VisitFrequency_ReturningVisitsDocumentation').'<br />' + . Piwik_Translate('General_BrokenDownReportDocumentation').'<br />' + . Piwik_Translate('VisitFrequency_ReturningVisitDocumentation'); - $view->setReportDocumentation($doc); + $selectableColumns = array( + // columns from VisitFrequency.get + 'nb_visits_returning', + 'nb_actions_returning', + 'nb_actions_per_visit_returning', + 'bounce_rate_returning', + 'avg_time_on_site_returning', + // columns from VisitsSummary.get + 'nb_visits', + 'nb_actions', + 'nb_actions_per_visit', + 'bounce_rate', + 'avg_time_on_site' + ); + + $period = Piwik_Common::getRequestVar('period', false); + if ($period == 'day') + { + // add number of unique (returning) visitors for period=day + $selectableColumns = array_merge( + array($selectableColumns[0]), + array('nb_uniq_visitors_returning'), + array_slice($selectableColumns, 1, -4), + array('nb_uniq_visitors'), + array_slice($selectableColumns, -4)); + } + + $view = $this->getLastUnitGraphAcrossPlugins($this->pluginName, __FUNCTION__, $columns, + $selectableColumns, $documentation); return $this->renderView($view, $fetch); } diff --git a/plugins/VisitFrequency/VisitFrequency.php b/plugins/VisitFrequency/VisitFrequency.php index d731a428be..74b5d54435 100644 --- a/plugins/VisitFrequency/VisitFrequency.php +++ b/plugins/VisitFrequency/VisitFrequency.php @@ -53,8 +53,8 @@ class Piwik_VisitFrequency extends Piwik_Plugin 'avg_time_on_site_returning' => Piwik_Translate('VisitFrequency_ColumnAverageVisitDurationForReturningVisitors'), 'bounce_rate_returning' => Piwik_Translate('VisitFrequency_ColumnBounceRateForReturningVisits'), 'nb_actions_per_visit_returning' => Piwik_Translate('VisitFrequency_ColumnAvgActionsPerReturningVisit'), + 'nb_uniq_visitors_returning' => Piwik_Translate('VisitFrequency_ColumnUniqueReturningVisitors'), // Not displayed -// 'nb_uniq_visitors_returning', // 'nb_visits_converted_returning', // 'sum_visit_length_returning', // 'max_actions_returning', diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php index 1063c29e7b..28495d9a45 100644 --- a/plugins/VisitsSummary/API.php +++ b/plugins/VisitsSummary/API.php @@ -41,7 +41,7 @@ class Piwik_VisitsSummary_API $tempColumns = array(); $bounceRateRequested = $actionsPerVisitRequested = $averageVisitDurationRequested = false; - if($subsetOfColumns = !empty($columns)) + if(!empty($columns)) { // make sure base metrics are there for processed metrics if(false !== ($bounceRateRequested = array_search('bounce_rate', $columns))) diff --git a/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays_VisitFrequency.get_firstSite_lastN__API.getProcessedReport_day.xml b/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays_VisitFrequency.get_firstSite_lastN__API.getProcessedReport_day.xml index 1023c67df1..db9bad0898 100644 --- a/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays_VisitFrequency.get_firstSite_lastN__API.getProcessedReport_day.xml +++ b/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays_VisitFrequency.get_firstSite_lastN__API.getProcessedReport_day.xml @@ -10,9 +10,10 @@ <metrics> <nb_visits_returning>Returning Visits</nb_visits_returning> <nb_actions_returning>Actions by Returning Visits</nb_actions_returning> - <avg_time_on_site_returning>Avg. Visit Duration for Returning Visitors (in seconds)</avg_time_on_site_returning> - <bounce_rate_returning>Bounce rate for returning visits</bounce_rate_returning> - <nb_actions_per_visit_returning>Avg. actions per returning visit</nb_actions_per_visit_returning> + <avg_time_on_site_returning>Avg. Duration of a Returning Visit (in sec)</avg_time_on_site_returning> + <bounce_rate_returning>Bounce Rate for Returning Visits</bounce_rate_returning> + <nb_actions_per_visit_returning>Avg. Actions per Returning Visit</nb_actions_per_visit_returning> + <nb_uniq_visitors_returning>Unique returning visitors</nb_uniq_visitors_returning> </metrics> <metricsDocumentation> @@ -35,9 +36,10 @@ <columns> <nb_visits_returning>Returning Visits</nb_visits_returning> <nb_actions_returning>Actions by Returning Visits</nb_actions_returning> - <avg_time_on_site_returning>Avg. Visit Duration for Returning Visitors (in seconds)</avg_time_on_site_returning> - <bounce_rate_returning>Bounce rate for returning visits</bounce_rate_returning> - <nb_actions_per_visit_returning>Avg. actions per returning visit</nb_actions_per_visit_returning> + <avg_time_on_site_returning>Avg. Duration of a Returning Visit (in sec)</avg_time_on_site_returning> + <bounce_rate_returning>Bounce Rate for Returning Visits</bounce_rate_returning> + <nb_actions_per_visit_returning>Avg. Actions per Returning Visit</nb_actions_per_visit_returning> + <nb_uniq_visitors_returning>Unique returning visitors</nb_uniq_visitors_returning> </columns> <reportData> @@ -45,6 +47,7 @@ <result prettyDate="Monday 4 January 2010" /> <result prettyDate="Tuesday 5 January 2010"> <nb_actions_returning>5</nb_actions_returning> + <nb_uniq_visitors_returning>1</nb_uniq_visitors_returning> <nb_visits_returning>1</nb_visits_returning> <bounce_rate_returning>0%</bounce_rate_returning> <nb_actions_per_visit_returning>5</nb_actions_per_visit_returning> diff --git a/tests/integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml b/tests/integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml index 822ca90736..99af9c8995 100644 --- a/tests/integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml +++ b/tests/integration/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml @@ -21,9 +21,10 @@ <max_actions>Maximum actions in one visit</max_actions> <nb_visits_returning>Returning Visits</nb_visits_returning> <nb_actions_returning>Actions by Returning Visits</nb_actions_returning> - <avg_time_on_site_returning>Avg. Visit Duration for Returning Visitors (in seconds)</avg_time_on_site_returning> - <bounce_rate_returning>Bounce rate for returning visits</bounce_rate_returning> - <nb_actions_per_visit_returning>Avg. actions per returning visit</nb_actions_per_visit_returning> + <avg_time_on_site_returning>Avg. Duration of a Returning Visit (in sec)</avg_time_on_site_returning> + <bounce_rate_returning>Bounce Rate for Returning Visits</bounce_rate_returning> + <nb_actions_per_visit_returning>Avg. Actions per Returning Visit</nb_actions_per_visit_returning> + <nb_uniq_visitors_returning>Unique returning visitors</nb_uniq_visitors_returning> <nb_conversions>Abandoned Carts</nb_conversions> <nb_visits_converted>Visits with Conversions</nb_visits_converted> <conversion_rate>Conversion Rate</conversion_rate> @@ -1191,9 +1192,10 @@ <metrics> <nb_visits_returning>Returning Visits</nb_visits_returning> <nb_actions_returning>Actions by Returning Visits</nb_actions_returning> - <avg_time_on_site_returning>Avg. Visit Duration for Returning Visitors (in seconds)</avg_time_on_site_returning> - <bounce_rate_returning>Bounce rate for returning visits</bounce_rate_returning> - <nb_actions_per_visit_returning>Avg. actions per returning visit</nb_actions_per_visit_returning> + <avg_time_on_site_returning>Avg. Duration of a Returning Visit (in sec)</avg_time_on_site_returning> + <bounce_rate_returning>Bounce Rate for Returning Visits</bounce_rate_returning> + <nb_actions_per_visit_returning>Avg. Actions per Returning Visit</nb_actions_per_visit_returning> + <nb_uniq_visitors_returning>Unique returning visitors</nb_uniq_visitors_returning> </metrics> <metricsDocumentation> diff --git a/tests/integration/expected/test_apiGetReportMetadata__API.get_day.xml b/tests/integration/expected/test_apiGetReportMetadata__API.get_day.xml index 724e8459e4..9bde2b3b80 100644 --- a/tests/integration/expected/test_apiGetReportMetadata__API.get_day.xml +++ b/tests/integration/expected/test_apiGetReportMetadata__API.get_day.xml @@ -18,9 +18,9 @@ <conversion_rate>100</conversion_rate> <revenue>42.26</revenue> <nb_visits_returning>0</nb_visits_returning> - <bounce_count_returning>0</bounce_count_returning> - <bounce_rate_returning>0%</bounce_rate_returning> <nb_actions_returning>0</nb_actions_returning> - <avg_time_on_site_returning>0</avg_time_on_site_returning> + <nb_uniq_visitors_returning>0</nb_uniq_visitors_returning> + <bounce_rate_returning>0%</bounce_rate_returning> <nb_actions_per_visit_returning>0</nb_actions_per_visit_returning> + <avg_time_on_site_returning>0</avg_time_on_site_returning> </result> \ No newline at end of file diff --git a/tests/integration/expected/test_apiGetReportMetadata_year__API.getReportMetadata_year.xml b/tests/integration/expected/test_apiGetReportMetadata_year__API.getReportMetadata_year.xml index 7f2494c98e..f0640715a3 100644 --- a/tests/integration/expected/test_apiGetReportMetadata_year__API.getReportMetadata_year.xml +++ b/tests/integration/expected/test_apiGetReportMetadata_year__API.getReportMetadata_year.xml @@ -21,9 +21,10 @@ <max_actions>Maximum actions in one visit</max_actions> <nb_visits_returning>Returning Visits</nb_visits_returning> <nb_actions_returning>Actions by Returning Visits</nb_actions_returning> - <avg_time_on_site_returning>Avg. Visit Duration for Returning Visitors (in seconds)</avg_time_on_site_returning> - <bounce_rate_returning>Bounce rate for returning visits</bounce_rate_returning> - <nb_actions_per_visit_returning>Avg. actions per returning visit</nb_actions_per_visit_returning> + <avg_time_on_site_returning>Avg. Duration of a Returning Visit (in sec)</avg_time_on_site_returning> + <bounce_rate_returning>Bounce Rate for Returning Visits</bounce_rate_returning> + <nb_actions_per_visit_returning>Avg. Actions per Returning Visit</nb_actions_per_visit_returning> + <nb_uniq_visitors_returning>Unique returning visitors</nb_uniq_visitors_returning> <nb_conversions>Conversions</nb_conversions> <nb_visits_converted>Visits with Conversions</nb_visits_converted> <conversion_rate>Conversion Rate</conversion_rate> @@ -839,9 +840,10 @@ <metrics> <nb_visits_returning>Returning Visits</nb_visits_returning> <nb_actions_returning>Actions by Returning Visits</nb_actions_returning> - <avg_time_on_site_returning>Avg. Visit Duration for Returning Visitors (in seconds)</avg_time_on_site_returning> - <bounce_rate_returning>Bounce rate for returning visits</bounce_rate_returning> - <nb_actions_per_visit_returning>Avg. actions per returning visit</nb_actions_per_visit_returning> + <avg_time_on_site_returning>Avg. Duration of a Returning Visit (in sec)</avg_time_on_site_returning> + <bounce_rate_returning>Bounce Rate for Returning Visits</bounce_rate_returning> + <nb_actions_per_visit_returning>Avg. Actions per Returning Visit</nb_actions_per_visit_returning> + <nb_uniq_visitors_returning>Unique returning visitors</nb_uniq_visitors_returning> </metrics> <metricsDocumentation> -- GitLab