Passa al contenuto principale

Tracking degli eventi e metriche

La piattaforma raccoglie eventi di utilizzo inviati dai client e li trasforma in metriche configurabili, calcolate periodicamente e conservate per la reportistica. È un sottosistema deliberatamente separato dalle statistiche: queste ultime interrogano i dati di esercizio — lezioni, ordini, disponibilità — mentre le metriche descrivono il comportamento degli utenti prima e attorno a quei fatti.

L'architettura è a due strati: la raccolta degli eventi, che li accetta e li scrive nel flusso dei log, e l'aggregazione, che li rilegge periodicamente e ne ricava le metriche. La separazione è intenzionale: il volume degli eventi grezzi non viene scritto nella base dati transazionale, resta disponibile nei log per verifiche a posteriori, e ciò che viene conservato è già aggregato.

Client ──POST──► raccolta eventi ──► flusso dei log
│
elaborazione pianificata di aggregazione
│
metriche primitive ──► metriche composte
│
risultati conservati ──► consultazione

Raccolta degli eventi​

L'invio avviene con un'unica operazione, la cui autenticazione è facoltativa: gli eventi di un visitatore non ancora registrato sono precisamente quelli che interessa raccogliere. Ogni evento dichiara il proprio tipo, un identificativo di sessione del browser e un insieme di dati specifici del tipo; l'orario può essere indicato o viene assunto quello di ricezione.

I tipi attualmente gestiti sono due:

EventoDati richiestiUso tipico
Visualizzazione di paginaLa paginaNavigazione all'interno dell'applicazione
Atterraggio da una fonteIl tipo di fonte, con identificativo e campagna facoltativiAttribuzione del traffico, comprese le fonti non digitali

La validazione è specifica per tipo: un evento che non porta i dati previsti dal proprio tipo viene rifiutato, così che l'aggregazione non debba difendersi da eventi incompleti. L'operazione è inoltre soggetta a un limite di frequenza per indirizzo di provenienza, e l'indirizzo non viene conservato in chiaro ma solo come impronta calcolata con un elemento segreto di configurazione.

Chi integra un client deve tenere presente che l'identificativo di sessione è generato dal client e deve restare stabile per l'intera sessione del browser: è la chiave con cui gli eventi vengono attribuiti a una stessa visita, e un identificativo rigenerato a ogni richiesta rende inutilizzabile qualunque metrica basata sulle sessioni.

Metriche​

Una metrica è una definizione amministrata, non una voce scritta nel codice: viene creata, modificata e disattivata dall'area amministrativa. Se ne distinguono due specie.

Una metrica primitiva aggrega direttamente gli eventi e risponde a domande elementari: quanti eventi, quante sessioni distinte, quanti utenti distinti, quanti eventi anonimi o autenticati, somma, minimo, massimo o numero di valori distinti di un campo dell'evento.

Una metrica composta non legge gli eventi: combina i risultati di altre metriche attraverso un'espressione, con operatori aritmetici e un insieme di funzioni disponibili. È il modo in cui si esprime un tasso di conversione o un'incidenza percentuale, ossia una grandezza che è un rapporto fra due misure e non una misura a sé.

A ciascuna definizione si associano regole di inclusione ed esclusione, valutate in ordine, che circoscrivono gli eventi da considerare in base al tipo e al valore dei loro campi. Le regole appartengono alla definizione, così che l'insieme degli eventi aggregati sia leggibile dalla definizione stessa e non dedotto dall'espressione.

Per consentire a un'interfaccia di comporre una definizione senza replicare alcun elenco, il sistema espone le opzioni disponibili: specie di metrica, tipi primitivi, tipi di regola, operatori, funzioni, tipi di risultato, eventi riconosciuti e metriche già definite a cui una metrica composta può fare riferimento. Sono l'unica fonte di quegli elenchi: ricostruirli nel client significa vederli divergere alla prima estensione.

Calcolo e consultazione​

Il calcolo è affidato a elaborazioni pianificate, in due cadenze — giornaliera e oraria — e può essere richiesto anche per una data determinata, tipicamente per recuperare un intervallo. L'esecuzione procede in un ordine obbligato: prima le metriche primitive, che leggono gli eventi, poi le composte, che leggono i risultati delle primitive. Come ogni attività pianificata, ciascuna esecuzione è registrata e verificabile secondo quanto descritto in Area amministrativa e controllo operativo.

I risultati sono conservati per definizione e periodo e sono consultabili sia come serie di una singola definizione, sia come riepilogo, sia attraverso un'interrogazione complessiva su più definizioni.

Superficie API​

Le operazioni sono raggruppate nella API Reference in tre categorie distinte: la raccolta degli eventi, che è aperta ai client; l'amministrazione delle definizioni, delle regole e dei risultati; e le opzioni disponibili per comporre una definizione.

Limiti attuali​

  • Gli eventi gestiti sono due. Ogni nuovo tipo di evento richiede un rilascio, perché la validazione è specifica per tipo; le metriche che lo useranno, al contrario, non lo richiedono.
  • L'aggregazione dipende dal flusso dei log dell'infrastruttura: un'esecuzione mancata non si recupera da sé, ma va ripetuta indicando la data.
  • Gli eventi grezzi non sono interrogabili dal prodotto: ciò che il sistema espone sono le metriche calcolate.