public function compute(Row $row)
 {
     $orders = $this->getMetric($row, 'orders');
     $abandonedCarts = $this->getMetric($row, 'abandoned_carts');
     $visits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($orders === false ? $abandonedCarts : $orders, $visits, GoalManager::REVENUE_PRECISION + 2);
 }
Пример #2
0
 public function compute(Row $row)
 {
     $quantity = $this->getMetric($row, 'quantity');
     $orders = $this->getMetric($row, 'orders');
     $abandonedCarts = $this->getMetric($row, 'abandoned_carts');
     return Piwik::getQuotientSafe($quantity, $orders === false ? $abandonedCarts : $orders, $precision = 1);
 }
 public function compute(Row $row)
 {
     $mappingFromNameToIdGoal = Metrics::getMappingFromNameToIdGoal();
     $goalMetrics = $this->getGoalMetrics($row);
     $goalRevenue = $this->getMetric($goalMetrics, 'revenue', $mappingFromNameToIdGoal);
     $conversions = $this->getMetric($goalMetrics, 'nb_conversions', $mappingFromNameToIdGoal);
     return Piwik::getQuotientSafe($goalRevenue, $conversions, GoalManager::REVENUE_PRECISION);
 }
Пример #4
0
 public function compute(Row $row)
 {
     $columnName = $this->getWrappedName();
     $pastRow = $this->getPastRowFromCurrent($row);
     $currentValue = $this->getMetric($row, $columnName);
     $pastValue = $pastRow ? $this->getMetric($pastRow, $columnName) : 0;
     $dividend = $currentValue - $pastValue;
     $divisor = $pastValue;
     if ($dividend == 0) {
         return 0;
     } else {
         if ($divisor == 0) {
             return 1;
         } else {
             return Piwik::getQuotientSafe($dividend, $divisor, $this->quotientPrecision + 2);
         }
     }
 }
Пример #5
0
 public function compute(Row $row)
 {
     $mappingFromNameToIdGoal = Metrics::getMappingFromNameToIdGoal();
     $goals = $this->getMetric($row, 'goals') ?: array();
     $revenue = 0;
     foreach ($goals as $goalId => $goalMetrics) {
         if ($goalId == Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_CART) {
             continue;
         }
         if ($goalId >= GoalManager::IDGOAL_ORDER || $goalId == Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER) {
             $revenue += (int) $this->getMetric($goalMetrics, 'revenue', $mappingFromNameToIdGoal);
         }
     }
     if ($revenue == 0) {
         $revenue = (int) $this->getMetric($row, 'revenue');
     }
     $nbVisits = (int) $this->getMetric($row, 'nb_visits');
     $conversions = (int) $this->getMetric($row, 'nb_conversions');
     // If no visit for this metric, but some conversions, we still want to display some kind of "revenue per visit"
     // even though it will actually be in this edge case "Revenue per conversion"
     return Piwik::getQuotientSafe($revenue, $nbVisits == 0 ? $conversions : $nbVisits, GoalManager::REVENUE_PRECISION);
 }
Пример #6
0
 public function compute(Row $row)
 {
     $exitVisits = $this->getMetric($row, 'exit_nb_visits');
     $visits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($exitVisits, $visits, $precision = 2);
 }
Пример #7
0
 public function compute(Row $row)
 {
     $sumTimeSpent = $this->getMetric($row, 'sum_time_spent');
     $visits = $this->getMetric($row, 'nb_hits');
     return Piwik::getQuotientSafe($sumTimeSpent, $visits, $precision = 0);
 }
 public function compute(Row $row)
 {
     $revenue = $this->getMetric($row, 'revenue');
     $conversions = $this->getMetric($row, 'nb_conversions');
     return Piwik::getQuotientSafe($revenue, $conversions, $precision = 2);
 }
Пример #9
0
 public function compute(Row $row)
 {
     $sumVisitLength = $this->getMetric($row, 'sum_visit_length');
     $nbVisits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($sumVisitLength, $nbVisits, $precision = 0);
 }
Пример #10
0
 public function compute(Row $row)
 {
     $interactions = $this->getMetric($row, 'nb_interactions');
     $impressions = $this->getMetric($row, 'nb_impressions');
     return Piwik::getQuotientSafe($interactions, $impressions, $precision = 4);
 }
Пример #11
0
 public function compute(Row $row)
 {
     $visits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($visits, $this->cachedTotalVisits, $precision = 2);
 }
Пример #12
0
 public function compute(Row $row)
 {
     $actions = $this->getMetric($row, 'nb_actions');
     $visits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($actions, $visits, $precision = 1);
 }
Пример #13
0
 public function compute(Row $row)
 {
     $bounceCount = $this->getMetric($row, 'bounce_count');
     $visits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($bounceCount, $visits, $precision = 2);
 }
Пример #14
0
 public function compute(Row $row)
 {
     $sumEventValue = $this->getMetric($row, 'sum_event_value');
     $eventsWithValue = $this->getMetric($row, 'nb_events_with_value');
     return Piwik::getQuotientSafe($sumEventValue, $eventsWithValue, $precision = 2);
 }
 public function compute(Row $row)
 {
     $sumGenerationTime = $this->getMetric($row, 'sum_time_generation');
     $hitsWithTimeGeneration = $this->getMetric($row, 'nb_hits_with_time_generation');
     return Piwik::getQuotientSafe($sumGenerationTime, $hitsWithTimeGeneration, $precision = 3);
 }
Пример #16
0
 public function compute(Row $row)
 {
     $nbVisitsConverted = $this->getMetric($row, 'nb_visits_converted');
     $nbVisits = $this->getMetric($row, 'nb_visits');
     return Piwik::getQuotientSafe($nbVisitsConverted, $nbVisits, $precision = 4);
 }