matomo
/
classes
/
WpMatomo
/
Admin
/
PluginSuggestions
/
Suggestions
/
SearchEngineKeywordsPerformance.php
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
SearchEngineKeywordsPerformance.php
70 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 Piwik\Common; |
| 17 | use Piwik\DataTable; |
| 18 | use WpMatomo\Admin\PluginSuggestions\Suggestion; |
| 19 | use WpMatomo\Bootstrap; |
| 20 | |
| 21 | class SearchEngineKeywordsPerformance extends Suggestion { |
| 22 | |
| 23 | private $visits_threshold; |
| 24 | |
| 25 | public function __construct( $visits_threshold = 100 ) { |
| 26 | $this->visits_threshold = $visits_threshold; |
| 27 | } |
| 28 | |
| 29 | public function should_trigger() { |
| 30 | Bootstrap::do_bootstrap(); |
| 31 | |
| 32 | /** @var DataTable $data */ |
| 33 | $data = $this->get_last_month_data( |
| 34 | 'Referrers.getReferrerType', |
| 35 | 500, |
| 36 | 'label', |
| 37 | [ '_setReferrerTypeLabel' => 0 ] |
| 38 | ); |
| 39 | $search_engines = $data->getRowFromLabel( Common::REFERRER_TYPE_SEARCH_ENGINE ); |
| 40 | |
| 41 | if ( empty( $search_engines ) ) { |
| 42 | return false; |
| 43 | } |
| 44 | |
| 45 | $visits_from_search_engines = $search_engines->getColumn( 'nb_visits' ); |
| 46 | if ( empty( $visits_from_search_engines ) ) { |
| 47 | return false; |
| 48 | } |
| 49 | |
| 50 | $total = array_sum( $data->getColumn( 'nb_visits' ) ); |
| 51 | if ( empty( $total ) ) { |
| 52 | return false; |
| 53 | } |
| 54 | |
| 55 | $percent_from_search_engines = (float) $visits_from_search_engines / (float) $total; |
| 56 | |
| 57 | return $total >= $this->visits_threshold && $percent_from_search_engines > 0.40; |
| 58 | } |
| 59 | |
| 60 | public function init() { |
| 61 | $this->plugin_slug = 'SearchEngineKeywordsPerformance'; |
| 62 | $this->plugin_name = __( 'Search Engine Keywords Performance', 'matomo' ); |
| 63 | $this->plugin_desc_long = __( 'A large share of your traffic comes from search engines. Discover which keywords bring visitors to your site.', 'matomo' ); |
| 64 | $this->plugin_desc_short = __( 'Uncover the keywords people use to find your site', 'matomo' ); |
| 65 | $this->trigger_desc_short = __( 'Search engine traffic', 'matomo' ); |
| 66 | $this->trigger_desc_long = __( 'High traffic from search engines', 'matomo' ); |
| 67 | $this->image_file = 'search-engine-keywords-performance.webp'; |
| 68 | } |
| 69 | } |
| 70 |