PHP code example of jeffersongoncalves / laravel-metrics-matomo
1. Go to this page and download the library: Download jeffersongoncalves/laravel-metrics-matomo library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jeffersongoncalves / laravel-metrics-matomo example snippets
use JeffersonGoncalves\MetricsMatomo\Settings\MatomoSettings;
$settings = app(MatomoSettings::class);
$settings->api_token = 'new-token';
$settings->site_id = 2;
$settings->base_url = 'https://matomo.example.com';
$settings->timezone = 'America/Sao_Paulo';
$settings->save();
use JeffersonGoncalves\MetricsMatomo\Facades\Matomo;
use JeffersonGoncalves\MetricsMatomo\Enums\Period;
// Today's summary
$summary = Matomo::visitsSummary();
echo $summary->nbVisits; // 1234
echo $summary->nbUniqVisitors; // 567
echo $summary->nbActions; // 3456
echo $summary->bounceRate; // 16.0
echo $summary->avgTimeOnSite; // 120.5
// Monthly summary
$summary = Matomo::visitsSummary(Period::Month, 'today');
// Specific date
$summary = Matomo::visitsSummary(Period::Day, '2026-02-15');
// Top 10 page URLs
$pages = Matomo::pageUrls(limit: 10);
foreach ($pages as $page) {
echo $page->label . ': ' . $page->nbVisits . ' visits';
}
// Page titles
$titles = Matomo::pageTitles(Period::Month, 'today', limit: 20);
// Entry and exit pages
$entry = Matomo::entryPages(limit: 10);
$exit = Matomo::exitPages(limit: 10);
// Referrer types (Direct, Search, Social, etc.)
$types = Matomo::referrerTypes();
// Search engines
$engines = Matomo::searchEngines(Period::Month, 'today');
// Keywords
$keywords = Matomo::keywords(limit: 20);
// Referring websites
$sites = Matomo::websites(limit: 10);
// Social networks
$socials = Matomo::socials();
// Campaigns
$campaigns = Matomo::campaigns(Period::Month, 'today');
// Countries
$countries = Matomo::countries(Period::Month, 'today');
foreach ($countries as $country) {
echo $country->label . ': ' . $country->nbVisits;
echo ' (' . $country->extra['code'] . ')'; // Country code
}
// Cities
$cities = Matomo::cities(limit: 10);
// Regions
$regions = Matomo::regions();
// Continents
$continents = Matomo::continents();
// Device types (Desktop, Mobile, Tablet)
$devices = Matomo::deviceTypes();
// Browsers
$browsers = Matomo::browsers(limit: 10);
// Operating systems
$os = Matomo::osFamilies();
// Screen resolutions
$resolutions = Matomo::resolutions(limit: 10);
// Event categories
$categories = Matomo::eventCategories(Period::Month, 'today');
// Event actions
$actions = Matomo::eventActions();
// Event names
$names = Matomo::eventNames(limit: 20);
// All goals summary
$goals = Matomo::goals(Period::Month, 'today');
// Specific goal
$goal = Matomo::goal(goalId: 1, period: Period::Month, date: 'today');
// Counters for last 30 minutes
$counters = Matomo::liveCounters();
echo $counters->visits; // 42
echo $counters->actions; // 156
echo $counters->visitors; // 38
echo $counters->visitsConverted; // 5
// Counters for last 60 minutes
$counters = Matomo::liveCounters(lastMinutes: 60);
// Last visitors details
$visitors = Matomo::liveVisitors(count: 10);
use JeffersonGoncalves\MetricsMatomo\Enums\Period;
// Custom query with segment
$query = Matomo::query('VisitsSummary', 'get')
->period(Period::Month)
->date('2026-02-01')
->segment('referrerName==twitter.com')
->limit(50);
$result = Matomo::report($query);
// Date range query
$query = Matomo::query('Actions', 'getPageUrls')
->dateRange('2026-01-01', '2026-01-31')
->sortBy('nb_visits', 'desc')
->limit(20)
->flat();
$result = Matomo::report($query);
// Show/hide specific columns
$query = Matomo::query('VisitsSummary', 'get')
->period(Period::Day)
->date('today')
->showColumns('nb_visits', 'nb_uniq_visitors', 'bounce_rate');
$result = Matomo::report($query);
// With extra parameters
$query = Matomo::query('Goals', 'get')
->period(Period::Month)
->date('today')
->param('idGoal', 1);
$result = Matomo::report($query);
use Carbon\Carbon;
$summary = Matomo::visitsSummary(
period: Period::Day,
date: Carbon::yesterday()->format('Y-m-d'),
);
$query = Matomo::query('Actions', 'getPageUrls')
->dateRange(Carbon::now()->subDays(30), Carbon::now());
$result = Matomo::report($query);
bash
php artisan migrate
bash
composer analyse