diff options
Diffstat (limited to 'plugins/Goals/Columns/Metrics/GoalSpecific/ConversionPageRate.php')
-rw-r--r-- | plugins/Goals/Columns/Metrics/GoalSpecific/ConversionPageRate.php | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/plugins/Goals/Columns/Metrics/GoalSpecific/ConversionPageRate.php b/plugins/Goals/Columns/Metrics/GoalSpecific/ConversionPageRate.php new file mode 100644 index 0000000000..c4fb73bec0 --- /dev/null +++ b/plugins/Goals/Columns/Metrics/GoalSpecific/ConversionPageRate.php @@ -0,0 +1,61 @@ +<?php + +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific; + +use Piwik\DataTable\Row; +use Piwik\Metrics; +use Piwik\Metrics\Formatter; +use Piwik\Piwik; +use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecificProcessedMetric; +use Piwik\Plugins\Goals\Goals; + +/** + * The page conversion rate for a specific goal. Calculated as: + * + * goal's nb_conversions / sum_daily_nb_uniq_visitors + * + * The goal's nb_conversions is calculated by the Goal archiver and nb_visits + * by the core archiving process. + */ +class ConversionPageRate extends GoalSpecificProcessedMetric +{ + public function getName() + { + return Goals::makeGoalColumn($this->idGoal, 'nb_conversions_page_rate', false); + } + + public function getTranslatedName() + { + return Piwik::translate('Goals_ConversionRatePageViewedBefore', $this->getGoalName()); + } + + public function getDocumentation() + { + return Piwik::translate('Goals_ColumnConversionRatePageViewedBeforeDocumentation', $this->getGoalNameForDocs()); + } + + public function getDependentMetrics() + { + return ['goals']; + } + + public function format($value, Formatter $formatter) + { + return $formatter->getPrettyPercentFromQuotient($value); + } + + public function compute(Row $row) + { + $mappingFromNameToIdGoal = Metrics::getMappingFromNameToIdGoal(); + $goalMetrics = $this->getGoalMetrics($row); + + return $this->getMetric($goalMetrics, 'nb_conversions_page_rate', $mappingFromNameToIdGoal); + } +} |