PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.12.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.12.1
5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / classes / WpMatomo / Admin / PluginSuggestions / Suggestions / HeatmapSessionRecording.php
matomo / classes / WpMatomo / Admin / PluginSuggestions / Suggestions Last commit date
AdvertisingConversionExport.php 3 months ago Funnels.php 3 months ago HeatmapSessionRecording.php 3 months ago SearchEngineKeywordsPerformance.php 3 months ago UsersFlow.php 3 months ago WpPremiumBundle.php 3 months ago
HeatmapSessionRecording.php
74 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 * @package matomo
8 */
9
10 namespace WpMatomo\Admin\PluginSuggestions\Suggestions;
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit; // if accessed directly
14 }
15
16 use WpMatomo\Admin\PluginSuggestions\Suggestion;
17
18 class HeatmapSessionRecording extends Suggestion {
19
20 /**
21 * @var float
22 */
23 private $bounce_rate;
24
25 /**
26 * @var int
27 */
28 private $nb_visits;
29
30 /**
31 * @var int
32 */
33 private $nb_visits_threshold;
34
35 public function __construct( $nb_visits_threshold = 100 ) {
36 $this->nb_visits_threshold = $nb_visits_threshold;
37 }
38
39 public function should_trigger() {
40 $this->get_bounce_rate();
41 return $this->nb_visits >= $this->nb_visits_threshold && $this->bounce_rate > 0.65;
42 }
43
44 public function get_trigger_desc_long() {
45 return sprintf( $this->trigger_desc_long, round( $this->get_bounce_rate() * 100 ) );
46 }
47
48 public function init() {
49 $this->plugin_slug = 'HeatmapSessionRecording';
50 $this->plugin_name = __( 'Heatmap & Session Recording', 'matomo' );
51 $this->plugin_desc_long = __( 'Your bounce rate is above average. Understand how visitors actually interact with your pages.', 'matomo' );
52 $this->plugin_desc_short = __( 'Dive deep into your visitors\' behaviour', 'matomo' );
53 $this->trigger_desc_short = __( 'High bounce rate', 'matomo' );
54 $this->trigger_desc_long = __( 'Bounce rate is %1$s%% — above average', 'matomo' );
55 $this->image_file = 'heatmap-session-recording.webp';
56 }
57
58 private function get_bounce_rate() {
59 if ( ! isset( $this->bounce_rate ) ) {
60 $data = $this->get_last_month_data( 'VisitsSummary.get' );
61 $row = $data->getFirstRow();
62
63 $this->bounce_rate = 0;
64 $this->nb_visits = 0;
65
66 if ( ! empty( $row ) ) {
67 $this->bounce_rate = $row->getColumn( 'bounce_rate' );
68 $this->nb_visits = $row->getColumn( 'nb_visits' );
69 }
70 }
71 return $this->bounce_rate;
72 }
73 }
74