Nov 05 2012

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti semaforo giallo - articolo avanzato semaforo rosso - articolo per esperti

usare due o più filtri di inclusione

autore: Marco Cilia categoria: filtri

Mi è capitato recentemente un caso che non vedevo da tempo, e anche se ne ho già parlato in passato è utile una ripassata, perché è una di quelle cose piccole che può far perdere tanto tempo.

Il caso, nella sua forma più estrema, è questo: un profilo non traccia niente, nonostante il codice sia installato correttamente.
Innanzitutto mi accerto che il codice sia davvero installato correttamente: a questo proposito l’estensione GA debug di Google è senza dubbio quella che dà più informazioni in assoluto. Siccome il codice c’è, e le chiamate partono, il problema deve essere per forza nel profilo: di solito è un problema con i filtri, e infatti il profilo dovrebbe raccogliere dati da tre diversi sottodomini. Sono stati quindi approntati tre distinti filtri sul nome host:

  • includi solo l’host a.sito.it
  • includi solo l’host b.sito.it
  • includi solo l’host c.sito.it

Nella testa delle persone, che ragionano come persone, questo si tramute in italiano in “includi solo il traffico da a, oppure da b, oppure da c”. In realtà l’analisi delle hit nei filtri di Google Analytics è sequenziale, e le hit per essere accettate devono passare sempre da tutti i filtri di inclusione.

Quel che accade nel server di Google, che ragiona come un computer, è quindi questo:

ARRIVA UNA HIT DA QUALSIASI ALTRO HOST: il server la passa al primo filtro, e siccome non soddisfa la condizione viene scartata.
ARRIVA UNA HIT DA A: il server la passa attraverso il primo filtro, e soddisfa la condizione, la passa al secondo filtro, ma non soddisfa la condizione: viene scartata.
ARRIVA UNA HIT DA B: al primo filtro viene già scartata.
ARRIVA UNA HIT DA C: al primo filtro viene già scartata.

Anche cambiando l’ordine dei filtri – adesso capite perché è possibile impostare un ordine? – il risultato non cambia; nessuna hit arriverà mai al profilo.

La soluzione è fare un unico filtro di inclusione con espressione regolare (a|b|c)\.sito\.it, in modo che ogni hit debba rispondere ad una sola domanda del server: “questa hit arriva da a OPPURE b OPPURE c?”. tutte le volte che la risposta è “si”, il profilo riceverà quella hit e le informazioni relative.

Il problema potrebbe essere esteso a tutti i casi in cui si debba utilizzare più filtri di inclusione sullo stesso campo, quindi ad esempio “includi solo questi indirizzi IP”, “includi solo queste pagine” e così via. Il consiglio è sempre “un solo filtro di inclusione per campo“.


Aug 19 2010

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti semaforo giallo - articolo avanzato semaforo rosso - articolo per esperti

Includere solo il traffico verso una sottodirectory

autore: Marco Cilia categoria: filtri

Non mi ero mai trovato a dover creare un profilo per tracciare una sottodirectory, e per questo non conoscevo questo “bug” di Google Analytics. In realtà non è proprio un bug, ma più una carenza di chiarezza dell’interfaccia. Supponiamo di voler fare un profilo con un filtro di inclusione solo per la sottodirectory /scarpe/ del nostro sito. Si può fare con un filtro personalizzato di inclusione e una regular expression, naturalmente, ma è anche una situazione coperta da uno dei filtri predefiniti, come potete vedere in figura:

Quale è il “problema”? che senza rifletterci bene, poiché il filtro si chiama “includi solo traffico verso le sottodirectory”, l’utente si aspetta di inserire la sottodirectory e basta, e che il terzo menu a tendina non debba essere toccato. Invece lasciando su “uguali a” Google Analytics conteggerà SOLO ed ESCLUSIVAMENTE il traffico a www.miosito.it/scarpe/ e non ad esempio www.miosito.it/scarpe/index.php e neppure www.miosito.it/scarpe/catalogo.php.

Il terzo menu a tendina, per comprendere tutte le pagine della sottodirectory, deve essere impostato su “che contiene“.

[hat tip a Daniel Jeffery]