Aug 05 2014

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti

Ora si possono filtrare i bot. Nel senso, meglio di prima!

autore: Marco Cilia categoria: generale tag: ,

Con un annuncio sul G+ ufficiale, Google Analytics annuncia la nuova possibilità di filtrare bot e spider direttamente con un’opzione nella vista. La cosa ha generato un po’ di confusione, per cui mettetevi comodi e leggete.

Google Analytics, da sempre, è un sistema di web analytics basato su una libreria javascript e sui cookies. Javascript è una tecnologia che funziona sui browser degli utenti, per cui il sistema raccoglie informazioni e poi le invia ai server di Google, che le analizzano. La prima conseguenza di questa affermazione – che resta vera – è che chi non esegue javascript non esegue nemmeno il codice di Google Analytics.
Quindi se io disattivo javascript, GA non mi vede. I bot, da che mondo e mondo, non sono progettati per eseguire javascript e accettare i cookie. Questo però non vieta a nessuno di progettarne uno che invece lo faccia, è già capitato in passato e ancora può capitare. Quindi l’affermazione corretta è “Google Analytics non traccia la maggior parte dei bot”.

Recentemente è stato introdotto anche il Measurement Protocol, ovvero la possibilità di inviare dati ai server Google senza l’uso di javascript. In questo caso ovviamente i bot sono SEMPRE inclusi nel traffico. Ho testato in prima persona una soluzione che addirittura include solo il traffico dei bot in una property Google Analytics. Se invece abbiamo una property “normale” che invia parte o tutti i dati tramite Measurement Protocol, la possibilità di filtrare i bot e gli spider con una spunta è molto comoda.

La cosa era diventata praticamente necessaria anche in virtù delle complessità sempre maggiori in gioco: più i siti diventano interattivi e più gli spider devono diventare “umani” per capire cosa contengono. Questo include anche la possibilità di eseguire javascript per attivare funzioni e contenuti altrimenti inaccessibili. Ultimamente aveva fatto molto scalpore il caso AdRoll, di cui potete leggere in questo post su seroundtable. Un altro caso simile e recente è quello di semalt.

Ovviamente la nuova opzione non è risolutiva nel 100% dei casi: affinché un bot sia escluso deve fare parte della lista ufficiale IAB di bot e spider riconosciuti. La lista non è pubblica perché IAB la fa pagare agli iscritti, quindi presumo non la vedremo mai. La feature non è retroattiva, per cui dovrete tenerne conto in fase di analisi, ma avevo letto un post – che non ritrovo – che diceva che nei primi giorni l’impatto era di circa il 3% di un sito piccolo e ancora meno in un sito grande. Chiaramente dipende dal business, dal settore e da molti altri fattori. Se ritrovo il link aggiornerò il post.


Nov 18 2012

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo verde - articolo per tutti

Universal Analytics per SEO: GA senza javascript

autore: Marco Cilia categoria: API tag: , ,

Una delle cose più belle (e incredibili, se ci pensiamo un attimo) di Universal Analytics è la possibilità di tracciare qualsiasi cosa, in qualsiasi modo, attraverso il Protocollo di Misurazione ideato dagli ingegneri di Google.
In buona sostanza fintanto che si inviano richieste nella forma corretta, Analytics le riceverà e le elaborerà proprio come ha sempre fatto. Il nuovo SDK per Android – se non ho capito male – si basa su questo tipo di interazione, valorizzando opportunamente i campi app name e il tipo di hit inviata.

Poiché non mi piace parlare di cose che non conosco, prima di scrivere qualcosa in proposito mi sono dotato di un accesso alla beta pubblica e ho “giocato” un pochino con la nuova funzione. Allo stato attuale dello sviluppo tracciare con analytics.js invece di ga.ja comporta poco più di un cambio di sintassi, e parecchie funzioni in meno da ricordare poiché molte cose possono essere configurate lato server. Ma non è questo il punto importante, perché subito dopo aver inviato una hit valida attraverso il javascript mi sono concentrato sul measurement protocol: volevo mandare una hit senza usare il file di Google.

E trattandosi di una API ufficiale, ovviamente funziona: ho inviato delle pagine viste e delle visite attraverso PHP, ancora prima che la pagina venisse mostrata al mio browser. Naturalmente l’ho fatto male, usando degli assunti che mi facevano comodo (ad esempio, un cookie col nuovo formato deve già essere presente nel browser) e con del codice che mi vergogno a mostrare, ma funziona, è fattibile.

Subito dopo mi sono interrogato sul come e sul quando questa cosa poteva dimostrarsi utile, dandomi alcune prime risposte, ma soprattutto pensando a una certa categoria di utenti che non accettano mai javascript e cookie: gli spider. Se è possibile inviare hit ad Analytics senza usare javascript (non è una novità, ma questo è il metodo ufficiale, che si presume molto più robusto e a lungo termine), allora un SEO potrebbe usare Universal Analytics per tracciare anche – o solo – gli spider, mimando esattamente le stesse informazioni contenute nei logfiles che è costretto ad utilizzare adesso. Potrebbe avere qualche vantaggio a farlo perché così potrebbe usare l’interfaccia di Analytics per le sue analisi, quindi segmentazione avanzata, dimensioni secondarie, report personalizzati… pensiamo un secondo soltanto al real-time, quali spider sono sul sito in quale momento (magari sapendo anche in base a quale avvenimento questo accade). Carino no?

Addirittura creando un hash che comprenda indirizzo ip, user agent e qualche altro parametro si potrebbe pensare di assegnare un ID differente per ogni spider, aumentando le possibilità di personalizzazione e i casi d’uso possibili. Insomma le possibilità sono tante, e la tecnica – ufficiale – adesso c’è: basta risolvere un paio di problemini e adattare il tutto alle proprie esigenze, ma non ci vedo particolari impedimenti. Credete che diventerà una pratica normale?

[a proposito di web analytics senza javascript, c’è chi lo dice da anni: “il futuro della wa è senza javascript?“]


Aug 03 2011

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo giallo - articolo avanzato

Traccia i bot in Google Analytics

autore: Marco Cilia categoria: javascript tag: ,

Google Analytics, ormai dovrebbero saperlo anche i muri, è un sistema di web analytics basato su un codice javascript, motivo per cui i bot non vengono tracciati (con qualche rara eccezione). Quando durante i miei corsi avanzati parlo dello snippet di codice dedicato al tracciamento dei siti mobili, spiegando che è completamente lato server e non ha bisogno di javascript, i presenti più attenti subito incalzano con la domanda “ma allora con quello script si potrebbero tracciare anche gli spider?”. La risposta è no – o almeno lo era quando feci la prova direttamente – perché Google sembra applicare una sorta di filtro per non sporcare i dati delle vere visite.

A livello puramente sperimentale già qualche anno fa lessi di qualcuno che aveva riprodotto le chiamate alla gif di 1×1 pixel che serve al tracciamento senza avvalersi del codice di tracciamento di GA, ma la cosa era morta lì: il codice di Analytics cambia, anche le chiamate cambiano, e cmq un SEO ha metodi più efficaci e robusti per controllare quel che fanno gli spider sul proprio sito. Tuttavia non posso non segnalarvi questo articolo di Cardial Path, che fornisce uno script php già pronto che combina il codice di tracciamento dei siti mobili con alcune modifiche fatte da loro, per permettervi di avere anche i crawler nelle vostre statistiche di Google Analytics.

Come prima cosa è consigliato creare un nuovo profilo. Non un profilo copia – che usa lo stesso codice UA dell’originale – ma un nuovo profilo con un nuovo UA. Poi bisogna scaricare il file dal loro sito e decomprimerlo sul proprio computer. Bisogna copiare il contenuto del file sample.php nel proprio sorgente php (tutte le pagine, ovviamente), sostituendo alla riga 5 il proprio account UA-XXXXXX-YY (mi raccomando, UA e non MO) ed eventualmente modificare la riga 6 con il percorso al file ga.php in accordo alla sua posizione sul server. Dopo aver copiato la cartella sul server se tutto è stato configurato per bene inizierete a vedere le visite degli spider nel nuovo profilo creato.

Poiché gli spider non hanno sorgente – vengono di loro spontanea volontà – l’autore dello script ha pensato di usare la sorgente per memorizzare lo User Agent del bot, per averlo a portata di mano nei report drilldown. Inoltre ovviamente il post di Cardinal PAth ci ricorda di focalizzarsi sulle pagine viste e non sulle visite (dato che oltre a non eseguire javascript, i bot mal digeriscono anche i cookies). L’ultima nota riguarda il fatto che per ogni pageview il codice invia anche una variabile personalizzata, di livello pagina appunto, con il timestamp al secondo di quando è stata richiesta, così da sapere chi guarda cosa e quando 🙂