Photo by Shannon Potter on Unsplash
“Unintentional design happens when the organization focuses on the business or the technology, but doesn’t focus on the customer or user experience. The result is an experience that emerges that often isn’t pleasant.” ~ Jared M. Spool
Progettare un sistema di grandi dimensioni può portare a comportamenti inaspettati. Man mano che le feature crescono, i collegamenti tra di esse possono indebolirsi, generando esperienze utente indesiderate e incoerenti che danneggiano l'utilizzo della tua piattaforma.
È raro accorgersi di comportamenti indesiderati senza sapere come gli utenti usano i tuoi siti, ed è qui che entrano in gioco gli analytics.
Molte persone si affidano a Google Analytics, che fornisce moltissimi report senza dover scrivere una singola riga di codice, altri si affidano a Cloudflare che, come una CDN, registra tutto il traffico, ma cosa succede se vuoi conoscere i comportamenti degli utenti in autonomia?
Installare il tuo sistema di analytics personale
Esistono moltissimi package costruiti per Laravel che ti aiutano a sviluppare le tue applicazioni in modo più rapido e semplice. Il package che ho scelto qui è pragmarx/tracker.
“Storing user tracking information, on indexed and normalized database tables, wastes less disk space and ease the extract of valuable information about your application and business.” ~ Tracker
Per iniziare, come con ogni altro package, basta:
> composer require pragmarx/tracker
Se la tua installazione di Laravel è abbastanza recente, vedrai che a questo punto la tua app conosce già questo package:
Discovered Package: pragmarx/tracker
Ora pubblica tutto ciò che riguarda questo package
> php artisan vendor:publish --provider="PragmaRX\Tracker\Vendor\Laravel\ServiceProvider"
Copied File [/vendor/pragmarx/tracker/src/config/config.php] To [/config/tracker.php]
Copied Directory [/vendor/pragmarx/tracker/src/migrations] To [/database/migrations]
Publishing complete.
Questo pubblicherà 34 file di migration (forse di più in futuro) e un file di configurazione.
Ora basta abilitare il tracker tramite il suo file di configurazione ( config/tracker.php ):
'enabled' => true,
Il file di configurazione del tracker prevede anche l'impostazione della connessione al database da usare (da config/database.php), il suo valore di default è tracker quindi dovrai aggiungere una connessione. Io riutilizzerò la mia connessione MySQL, quindi diventerà
'connection' => 'mysql',
Assicurati che MySQL non sia in strict mode nella chiave connections della configurazione del database:
'connections' => [
// ...
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
// ...
'strict' => false,
// ...
],
// ...
],
Infine, esegui la migration di tutto:
> php artisan migrate
[ ... suppressed output, trust me, it's too long ... ]Configurare il tracker
Tutto è disabilitato di default
Tracker è estremamente configurabile, puoi abilitare/disabilitare tutto come preferisci:
- cache
- tracciamento dei robot
- logging delle sessioni non tracciabili
- logging HTTP
- logging dei comandi da console
- logging delle query SQL
- logging dei binding delle query SQL
- eventi
- GeoIP
- user agent
- utenti
- dispositivi
- lingue
- HTTP referrer
- path
- query HTTP
- rotte
- eccezioni
- pannello delle statistiche
Pannello delle statistiche
Tracker ha un pannello delle statistiche pronto all'uso con pochi passaggi:
> git clone https://github.com/BlackrockDigital/startbootstrap-sb-admin-2.git public/templates/sb-admin-2
> cd public/templates/sb-admin-2
> git checkout tags/v3.3.7+1
E ovviamente... abilitarlo in config/tracker.php
'stats_panel_enabled' => true,
Puoi anche modificare il suo base path
'stats_base_uri' => 'stats',
Solo gli utenti autenticati possono vedere le statistiche, ma soltanto se li autorizzi definendo un finto attributo admin tramite un mutator:
public function getIsAdminAttribute(): bool
{
return true; // your logic here
}
Ora apri il tuo /stats
Pagina delle statistiche
E dopo una visita...
Pagina delle statistiche dopo una visita
Cliccando su un ID puoi vedere l'intera sessione
Visite degli utenti
E in pratica.... è tutto qui!
GeoIP?
Photo by Matthijs van Heerikhuize on Unsplash
GeoIP refers to the method of locating a computer terminal’s geographic location by identifying that terminal’s IP address.
Usare GeoIP può aiutarti a localizzare i tuoi visitatori tramite i loro indirizzi IP. La localizzazione GeoIP è davvero semplice da ottenere:
composer require "geoip2/geoip2":"~2.0"
E dopo l'installazione del package, basta abilitarlo tramite config/tracker.php:
'log_geoip' => true,E adesso?
Ora tutti i tuoi dati sono lì, non ti resta che analizzarli, studiarli e combinarli, per capire come i tuoi utenti usano il sito. Se vuoi saperne di più, puoi sempre interrogare i dati in autonomia: tracker è composto da 13 tabelle che puoi combinare esplorando la struttura del database per conto tuo oppure leggendo la documentazione!
Ora sta a te costruire qualcosa di grandioso! 🥂
Resta sintonizzato per altre Strategie Data-Driven e, se ti va, prenditi un momento ️️per lasciare un commento su come prendi decisioni data-driven supportate dagli strumenti! ☕️