Privacy Analytics

Matomo PHP Tracker

Passiamo a qualcosa di più tecnico. Possiamo configurare un tracciamento lato server per avere un’analisi del traffico più precisa.

Server side e client side

Per dirlo in poche parole, il tracciamento lato client funziona sul browser dell’utente, generalmente tramite Javascript. Il vantaggio è che è possibile raccogliere determinate metriche in modo semplice e più leggero per il server.

Diversamente, il tracciamento lato server non usa Javascript ma viene effettuato direttamente, appunto, dal server stesso. Possiamo utilizzare ad esempio PHP per analizzare le visite che riceviamo dagli utenti.

Vi sono poi dei software di Log Analytics come Awstats o GoAccess, che analizzano i log del server per determinare il traffico degli utenti sulle nostre pagine web.

Il vantaggio più importante del server side tracking o della log analysis è che possiamo monitorare il traffico che arriva anche da quegli utenti che usano sistemi di AdBlock, o simili, che bloccano i tracciamenti Javascript.

In realtà, il server side analytics tracking di Matomo è semplice da utilizzare. Prenderemo come riferimento la libreria PHP, che è tra i linguaggi più diffusi nella creazione di siti web.

Installazione del PHP Tracker

La via più semplice è tramite Composer:

composer require matomo/matomo-php-tracker

Altrimenti andiamo con la strada classica:

  1. Scaricare MatomoTracker.php e PiwikTracker.php da Github oppure una differente libreria per il server side tracking
  2. Caricare i file MatomoTracker.php e PiwikTracker.php nel proprio server web, ad esempio nella cartella /public_html/matomo/, tramite Filezilla o altro File Manager con FTP
  3. Nel proprio applicativo web, aggiungere il seguente codice PHP in tutte le pagine, oppure nel template a seconda di quale strumento si sta usando:
Codice PHP per attivare il tracker server side

Ecco lo snippet di codice:

# File template.php o simile, l'imporante è che questo codice venga caricato in tutte le pagine
$matomoSiteId = 1;
$matomoUrl = '{url-piattaforma-matomo}';
$matomoToken = '{inserisci-token}';
$matomoPageTitle = '';

require_once '{percorso-al-file}/MatomoTracker.php';

try {
    $matomoTracker = new MatomoTracker($matomoSiteId, $matomoUrl);
    $matomoTracker->setRequestTimeout(2);
    $matomoTracker->setTokenAuth($matomoToken);
} catch (Exception $e) {
}

# File pagina.php, per personalizzare il titolo della pagina da passare a Matomo

if (!empty($matomoTracker)) {
    $matomoTracker->doTrackPageView($matomoPageTitle);
}

In base a come abbiamo installato il PHP Tracker, potremmo dover includere il namespace in PHP oppure fare un require di MatomoTracker.php.

Per poter configurare il $matomoToken, facciamo riferimento a: Matomo: Configurazione Auth Token

Se può esservi di aiuto, il titolo della pagina che passiamo a Matomo tramite la funzione doTrackPageView() lo possiamo determinare solitamente nel template, dove viene generato il tag title all’interno dell’head. Questo dipende molto dallo strumento che usiamo, ad esempio un CMS personalizzato.

A questo punto, commentiamo la riga di Javascript che invia il tracciamento (trackPageView) a Matomo, perché altrimenti registreremmo una doppia visita:

Codice di tracciamento client side compatibile con il server side

Questo lo snippet:

var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['enableHeartBeatTimer', 15]);
// La riga seguente è stata commentata per evitare doppie visite
// _paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
    var u = "https://matomo.yourwebsite.com/";
    _paq.push(['setTrackerUrl', u + 'matomo.php']);
    _paq.push(['setSiteId', '1']);
    var d = document,
        g = d.createElement('script'),
        s = d.getElementsByTagName('script')[0];
    g.type = 'text/javascript';
    g.async = true;
    g.src = u + 'matomo.js';
    s.parentNode.insertBefore(g, s);
})();

In questo caso ho usato anche enableHeartBeatTimer, è una funzione che permette un tracciamento più preciso inviando un ping ogni tot secondi (minimo 15) a Matomo per capire quanto tempo un utente rimane su una certa pagina. Per approfondire, rimando alla documentazione Javascript di Matomo.

Possiamo anche configurare su Matomo il tracciamento di Eventi, ad esempio se vogliamo sapere su quali link cliccano gli utenti.

Attenzione che alcuni tracciamenti potrebbero venire bloccati dalla funzionalità Do Not Track di Firefox e altri browser, oppure da sistemi di Ad blocking.

Link utili

Leggi anche