Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <diosmosis@users.noreply.github.com>2020-06-26 16:17:54 +0300
committerGitHub <noreply@github.com>2020-06-26 16:17:54 +0300
commitde5ae85e7a11f7bbd962256c890a32188c40d000 (patch)
tree2a5f303c83b6e80369d3ba77b2d9fea797c598d9 /plugins/VisitorInterest/Columns
parentb12946909ff323ea2f7e7af04e4435d2dd503023 (diff)
Track seconds instead of days for "days since" dimensions (#15774)
* Modify dimensions and add tests. * unfinished debugging commit * changes to fix test, remove tracker code, add update code * fix some tests * fix migration issue * fixing some tests * fix some bugs, update some expected test files, remove _idvc from some tests * start replacing _ects * Finish seconds since last ecommerce order change. * fix couple issues * fix a couple tests * fix some more tests * fixing a couple more tests * apply review feedback * unfinished commit * add back dimensions = * fixing tests & removing some code * fix some bugs + tests and remove debugging code * fixing some tests and issues * Some debugging code for the tracker in case of exceptions. * debug and fix another issue when tracking visits in the past * fix test * update JS and fix several tests * Fixing more tests. * Add missing files. * update expected test files * Add some unit tests. * update more expected files * update more test files * update more test files * update changelog and remove _ects query param * apply review feedback * fix merge issue * clearer code * fix migration issue * update expected files * update expected files again * updating tests * fix test * rebuilt piwik.js * unify previous visitor properties / original visit row approach * fixing some tests * Add new column version entries into the option table. * try undoing 1.5 update change * apply review feedback * remove more unused cookie values * rebuilt piwik.js * Fix test count. * update test files * rebuilt piwik.js * removel log analytics submodule update * update submodule * update some expected screenshots * Fix versions in omnifixture since we were probably adding to the beta update after it changed. * update screenshots
Diffstat (limited to 'plugins/VisitorInterest/Columns')
-rw-r--r--plugins/VisitorInterest/Columns/VisitorDaysSinceLast.php23
-rw-r--r--plugins/VisitorInterest/Columns/VisitorSecondsSinceLast.php68
-rw-r--r--plugins/VisitorInterest/Columns/VisitsByDaysSinceLastVisit.php41
3 files changed, 91 insertions, 41 deletions
diff --git a/plugins/VisitorInterest/Columns/VisitorDaysSinceLast.php b/plugins/VisitorInterest/Columns/VisitorDaysSinceLast.php
new file mode 100644
index 0000000000..e1f886dd8a
--- /dev/null
+++ b/plugins/VisitorInterest/Columns/VisitorDaysSinceLast.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Piwik - 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\VisitorInterest\Columns;
+
+use Piwik\Plugin\Dimension\VisitDimension;
+use Piwik\Plugin\Segment;
+
+class VisitorDaysSinceLast extends VisitDimension
+{
+ protected $category = 'General_Visitors';
+ protected $type = self::TYPE_NUMBER;
+ protected $nameSingular = 'General_DaysSinceLastVisit';
+ protected $columnName = 'visitor_seconds_since_last';
+ protected $sqlSegment = 'FLOOR(log_visit.visitor_seconds_since_last / 86400)';
+ protected $segmentName = 'daysSinceLastVisit';
+} \ No newline at end of file
diff --git a/plugins/VisitorInterest/Columns/VisitorSecondsSinceLast.php b/plugins/VisitorInterest/Columns/VisitorSecondsSinceLast.php
new file mode 100644
index 0000000000..ffc9787f7a
--- /dev/null
+++ b/plugins/VisitorInterest/Columns/VisitorSecondsSinceLast.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Piwik - 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\VisitorInterest\Columns;
+
+use Piwik\Common;
+use Piwik\Date;
+use Piwik\Piwik;
+use Piwik\Plugin\Dimension\VisitDimension;
+use Piwik\Plugin\Segment;
+use Piwik\Tracker\Action;
+use Piwik\Tracker\Request;
+use Piwik\Tracker\Visitor;
+
+class VisitorSecondsSinceLast extends VisitDimension
+{
+ const COLUMN_TYPE = 'INT(11) UNSIGNED NULL';
+
+ protected $columnName = 'visitor_seconds_since_last';
+ protected $columnType = self::COLUMN_TYPE;
+ protected $type = self::TYPE_NUMBER;
+ protected $segmentName = 'secondsSinceLastVisit';
+ protected $nameSingular = 'General_SecondsSinceLastVisit';
+
+ public function getName()
+ {
+ return Piwik::translate('General_SecondsSinceLastVisit');
+ }
+
+ /**
+ * @param Request $request
+ * @param Visitor $visitor
+ * @param Action|null $action
+ * @return mixed
+ */
+ public function onNewVisit(Request $request, Visitor $visitor, $action)
+ {
+ if (!$visitor->isVisitorKnown()) {
+ return 0;
+ }
+
+ $currentTimestamp = $request->getCurrentTimestamp();
+
+ $previousVisitFirstActionTime = $visitor->getPreviousVisitColumn('visit_first_action_time');
+ if (empty($previousVisitFirstActionTime)) {
+ return 0;
+ }
+
+ $previousVisitFirstActionTime = Date::factory($previousVisitFirstActionTime)->getTimestamp();
+
+ if (empty($previousVisitFirstActionTime)) {
+ Common::printDebug("Found empty visit_first_action_time for last visit of known visitor, this is unexpected.");
+ return 0;
+ }
+
+ $secondsSinceLast = $currentTimestamp - $previousVisitFirstActionTime;
+ if ($secondsSinceLast < 0) { // tracking a visit in the past
+ return null;
+ }
+
+ return $secondsSinceLast;
+ }
+} \ No newline at end of file
diff --git a/plugins/VisitorInterest/Columns/VisitsByDaysSinceLastVisit.php b/plugins/VisitorInterest/Columns/VisitsByDaysSinceLastVisit.php
deleted file mode 100644
index 89cd4b64b9..0000000000
--- a/plugins/VisitorInterest/Columns/VisitsByDaysSinceLastVisit.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?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\VisitorInterest\Columns;
-
-use Piwik\Piwik;
-use Piwik\Plugin\Dimension\VisitDimension;
-use Piwik\Tracker\Action;
-use Piwik\Tracker\Request;
-use Piwik\Tracker\Visitor;
-
-class VisitsByDaysSinceLastVisit extends VisitDimension
-{
- protected $columnName = 'visitor_days_since_last';
- protected $columnType = 'SMALLINT(5) UNSIGNED NULL';
- protected $type = self::TYPE_NUMBER;
- protected $segmentName = 'daysSinceLastVisit';
- protected $nameSingular = 'General_DaysSinceLastVisit';
-
- public function getName()
- {
- return Piwik::translate('VisitorInterest_VisitsByDaysSinceLast');
- }
-
- /**
- * @param Request $request
- * @param Visitor $visitor
- * @param Action|null $action
- * @return mixed
- */
- public function onNewVisit(Request $request, Visitor $visitor, $action)
- {
- return $request->getDaysSinceLastVisit();
- }
-
-} \ No newline at end of file