Jun 09 2014

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

Credo a quel che mi dice GA? beh, si!

autore: Marco Cilia categoria: generale

[Prima di iniziare il post una doverosa premessa: né Google, né nessun altro, mi paga per “difendere” Google Analytics. Questo post è frutto delle opinioni personali di qualcuno che ha un account GA risalente al 14 novembre 2005, e che in quasi nove anni in qualche modo ha testato praticamente tutto il testabile dello strumento, portandolo fin dove ha potuto pur di capirne il funzionamento. Come dice una persona che stimo moltissimo “tu per capire le cose le smonti a pezzettini e le metti in fila, ragionando su come e perché succede una cosa, su quale azione porti quale reazione, poi fai il processo all’inverso e verifichi, ma non per tutti funziona così. Ricordatelo quando le spieghi”.
Ecco, in alcuni casi questo tipo di pensiero è utile, e questo credo sia uno di quelli…]

Mi è capitato sotto agli occhi un post di Federico Gasparotto, intitolato “I 10 errori del Digital-Marketing più comuni e come correggerli con i modelli di attribuzione“. E’ un ottimo post, lo dico subito a scanso di equivoci e ve ne consiglio la lettura; tra le altre cose riprende anche un video fatto dall’agenzia dove lavoro, ma questo è incidentale perché mi voglio concentrare sul paragrafo 5:

Errore 5: Credo a quel che mi dice Google Analytics

GA è un buon tool ma molto basico e di sicuro vale molto rispetto a quel che costa…. Va bene per capire se si stanno avendo visite, traffico, picchi, ma non è affidabile sotto a nessun punto di vista, a partire dal campione di rilevazione ( sbagliato concettualmente, non posso rilevare uno ogni tanto li devo rilevare tutti uno per uno), ai criteri di attribuzione della vincita, al metodo di analisi per merceologia praticamente assente e via discorrendo.
Certo è comunque settabile in modo da ovviare a tanti dei limiti endemici, ma nessuno piglia un tool gratuito per poi spenderci un botto su, e a quel punto meglio prendere un analitico come si deve per pochi k l’anno, anche perchè se uno analizza le vendite sulla base di dati imprecisi rischia solo di farsi delle gran pippe mentali.

Smonto e analizzo:

GA è un buon tool ma molto basico”: molto basico rispetto a? se manca il paragone è impossibile determinare la bontà di qualcosa. Rispetto al leader di mercato (secondo Forrester sarebbe Adobe, in un suo recente/a – e stradiscusso – report)? stiamo parlando di un sistema che è installato sul 53% dei siti del campione “The entire internet” di builtwith.com (e su oltre il 20% della top 10k), stiamo parlando di un sistema che ha alcune feature di livello enterprise su una piattaforma gratuita (attribution modeling, tanto per citarne una, cross device report sul vero utente unico, tanto per dirne un’altra recente), stiamo parlando di un sistema scelto da moltissime multinazionali nel mondo.

di sicuro vale molto rispetto a quel che costa“: questo è indubbio, perché è gratis (o quasi), ma l’equazione gratis = scadente su internet non è più vera da un bel pezzo, in alcuni settori. In ogni caso lo strumento mette a disposizione tante di quelle metriche e dimensioni e report, che la maggior parte delle persone nemmeno li conosce tutti. Sebbene io stesso non confonda certo la quantità con la qualità, man mano che passano i mesi mi risulta sempre più difficile trovare un business, un cliente o una situazione in cui Google Analytics abbia difficoltà ad ottenere il risultato sperato

Va bene per capire se si stanno avendo visite, traffico, picchi, ma non è affidabile sotto a nessun punto di vista, a partire dal campione di rilevazione (sbagliato concettualmente, non posso rilevare uno ogni tanto li devo rilevare tutti uno per uno)“: il campione di rilevazione non esiste, nel modo più assoluto. Google Analytics registra TUTTO quello che accade sul tuo sito: registra TUTTE le pagine su cui hai messo il codice (se non l’hai messo su alcune pagine è un problema tuo, non suo: ma ho una buona notizia, la nuova funzionalità di diagnostica automatica in alcuni casi ti avvisa! 🙂 ), registra TUTTI gli eventi che hai impostato di registrare, registra TUTTE le transazioni che vengono fatte, registra TUTTE le pressioni a plugin sociali che hai scelto di registrare. Se visiti 89 pagine, lui registra 89 pagine, pacifico. Esiste un solo caso in cui questo non avviene, ed è se tu scegli volontariamente di non farlo avvenire, cioè se imposti la funzione _setSampleRate

Ipotizzando che invece Federico si riferisca al fenomeno del campionamento, ho spiegato in passato come e perché questo avviene, ma vale la pena di ribadirlo qui: i report standard (e sono oltre 200) non sono MAI campionati. Se il tuo sito in un mese riceve 19.234.599 visite, accadono due cose: la prima è che hai avuto esattamente 19.234.599 visite, la seconda è che stai violando i termini del servizio e in quel caso si che dovresti usare la funzione _setSampleRate per ovviare. Ma i numeri sono giusti, se non applichi segmenti, dimensioni secondarie o custom report. Se invece applichi una delle cose descritte in precedenza, allora il sistema campiona, effettuando i calcoli su un sottoinsieme del traffico e scalando i risultati proporzionalmente. Gli algoritmi per fare questa operazione non sono noti, ma sono prodotti da un’azienda che vive di algoritmi. Ovviamente più il campione diventa basso più – e qui siamo d’accordo – diventa azzardato fare analisi importanti. Ma più il campione diventa basso, più il traffico diventa alto, e in genere più traffico significa più revenue, e quindi la possibilità di acquistare un prodotto di livello superiore è più tangibile. GA free funziona benissimo sui range di traffico per il quale è “licenziato”.

Infine, se proprio vogliamo essere pignoli, esiste un altro limite tecnico di questo tipo: per ogni report di Google Analytics associato a una tabella, vengono visualizzati – per un singolo giorno – i primi 50.000 record (50k url nel report degli url, 50k keyword nel report delle keyword, 50k risoluzioni dello schermo nel report delle risoluzioni dello schermo, e così via…). Questo però è solo un “problema” di storage, a cui nessuno si può sottrarre, nemmeno le piattaforme leader del mercato: taglio corto con due concetti che gli addetti al settore conoscono, sia in generale sia nello specifico: table limits e bucketing.

ai criteri di attribuzione della vincita“: ai criteri di attribuzione della conversione? il modello di attribuzione predefinito su Google Analytics è noto da sempre: si tratta del “last click non direct”. Non vi piace? cliccate su “conversioni – attribuzione – strumento confronto modelli” e ne potete scegliere altri 6: last click puro, last click AdWords, first click, lineare, decadimento temporale, sulla base della posizione. Un click e lo applicate ai dati pregressi. Ve ne serve uno diverso? allora siete tosti e sapete di cosa si parla, ottimo! potete creare un modello personalizzato e applicarlo in real time sui dati già registrati. Non mi sembra male per un sistema “molto basico” no?

al metodo di analisi per merceologia praticamente assente e via discorrendo“: questa non l’ho capita del tutto. Ipotizzando che si riferisca alla scarsità di analisi sui prodotti possibili, convengo con lui che i report E-commerce sono sempre stati limitati nel numero e nelle funzionalità. Le nuove funzioni di segmentazione avanzata e il revamp completo dei report E-commerce però fanno passare il prodotto dalla preistoria al presente (anche leggermente al futuro, unendo le due funzioni e usandole per creare liste di remarketing).

Certo è comunque settabile in modo da ovviare a tanti dei limiti endemici, ma nessuno piglia un tool gratuito per poi spenderci un botto su, e a quel punto meglio prendere un analitico come si deve per pochi k l’anno, anche perchè se uno analizza le vendite sulla base di dati imprecisi rischia solo di farsi delle gran pippe mentali“: TUTTI i sistemi di digital analytics devono essere settati: alcuni perché sennò nemmeno funzionano, altri perché hanno dei limiti, altri ancora per dare il meglio di sé. Addirittura alcune integrazioni che GA ha con pochi click (AdWords, tanto per citarne una, o Dobleclick su Google Analytics Premium) su altri tool richiedono spese ed effort aggiuntive, e non riescono ad arrivare allo stesso livello. L’approccio di Google Analytics è di tipo incrementale: prendi questo codice e mettilo su tutte le pagine, e intanto ti diamo 200 report. Col tempo capirai cosa ti serve, e molte di quelle cose nuove potrai farle anche senza dover averci pensato a priori, prima di mettere il codice, come al contrario avviene in altri casi. La gratuità dello strumento in ogni caso non va confusa con la semplicità nell’uso e manutenzione, per cui un budget in tal senso andrebbe sempre previsto; un budget per un analitico invece andrebbe sempre stanziato a prescindere. Anzi, per rientrare nel caso citato all’inizio del post di Federico, avere una piattaforma gratuita ma potente permette di avere più budget da dedicare all’analisi dei dati e all’estrazione di insight da parte di un analista. E’ anche grazie a questo fatto che il settore è cresciuto, negli ultimi anni.

Sul fatto che nessuno spende un botto guardando i dati di un tool gratuito, dovremmo certamente fasarci sulla definizione di “un botto”, che magari non collima: nel mio piccolo so che sulla base di quei dati si spendono dalle poche decine di migliaia a qualche milione di euro l’anno. Questi investitori evidentemente si fidano dei dati che lo strumento tira fuori, quindi o sono tutti in errore o c’è qualcos’altro che mi sfugge…
Se prendo la Fortune100 di quest’anno, escluso Google al n #1, le compagnie seguenti sono:
#2 SAS: usa Google Analytics, pur producendo un proprio sistema di analytics
#3 BCG: usa GA
#4 Edward Jones: usa GA
#5 Quicken Loans: usa GA, e Adobe mi sembra
#6 Genetech: usa GA
#7 Salesforce: non usa GA
#8 Intuit: usa GA

Prendendo a caso quelli che immagino essere big adv spender internazionali:
Coca Cola: usa GA (sito IT, l’internazionale non riesco a vederlo per il geoip :/ ) e Webtrends
Procter & Gamble: usa GA
General Motors: usa Adobe
Expedia: usa GA
Vodafone: usa GA e Adobe
Ebay: usa GA

In conclusione penso che nessuno di voi dovrebbe fidarsi ciecamente di quel che qualsiasi sistema di digital analytics gli mostra, nessuno! io in nove anni, su questa piattaforma, ho fatto tanti di quegli esperimenti che sono giunto alle mie conclusioni, la maggior parte delle quali potete tranquillamente andare a rileggere su questo blog; voi dovreste fare altrettanto, nei limiti della vostra curiosità e delle vostre capacità, e trarne le opportune conseguenze. Tuttavia dire che GA è un sistema impreciso e inaffidabile, o che rileva solo un dato ogni tanto, rappresenta un’inesattezza. E siccome sono fatto così, mi piace mettere ordine nelle cose, la smonto attraverso quel che ho imparato.


Apr 04 2012

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

Come funziona il campionamento?

autore: Marco Cilia categoria: generale

All’interno del post che contiene l’ultimo video della serie Web Analytics TV c’è una spiegazione semplificata di come funziona l’algoritmo che determina il fenomeno del campionamento all’interno dei nostri report, che lo ricordo interviene quando l’interrogazione che facciamo ha una base di oltre 250.000 visite.

test tubeIl campione usato nel sampling è random ed uniformemente distribuito nell’arco temporale selezionato. Vediamo nel dettaglio l’esempio del blog: se un sito riceve 500mila visite il giorno 1, 250mila il giorno 2 e 500mila il giorno 3, nell’arco del periodo ha un totale di 1 milione e 250 mila visite. come fa Google Analytics a determinare QUALI di queste sessioni di visita usare per calcolare i valori mostrati nel vostro report campionato?

Per prima cosa calcola un moltiplicatore, dividendo il totale delle visite per il numero di visite scelto dallo slider di controllo. Nel caso dello slider impostato sul valore predefinito, 1.250.000 / 250.000 = 5. A quel punto le visite di ogni giorno vengono divise per il moltiplicatore, e viene preso un numero casuale di visite che combaci con quel numero.
Nel nostro esempio:
– 500mila / 5 = 100mila visite casuali dal giorno 1
– 250mila / 5 = 50mila visite casuali dal giorno 2
– 500mila / 5 = 100mila visite casuali dal giorno 3

A questo punto I VALORI che abbiamo richiesto all’interno di queste visite totali vengono conteggiati tutti, ma vengono mostrati dopo essere stati ri-scalati secondo il moltiplicatore.

Ad esempio: “quanti visitatori nel periodo selezionato usano Opera e sono visite di ritorno?”. Ipotizziamo 1200 dei 100mila del giorno 1, nessuno dei 50mila del giorno 2 e 2700 dei 100mila del giorno 3. Totale 3900 * 5 = 19500. Questo è il valore che verrà mostrato nel report campionato che risponde alla domanda. I singoli valori saranno rispettivamente 6000, 0 e 13500.

Statisticamente ha senso, a meno di improvvisi sbalzi dei valori il numero campionato dovrebbe essere fedele al numero reale. E vien da sè, tanti più giorni ci sono nel periodo temporale, tanto più l’effetto di questi eventuali sbalzi è mitigato.

[image credit: [F]loximoron on Flickr]


Nov 19 2008

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

funzioni: _setSampleRate()

autore: Marco Cilia categoria: funzioni

Google Analytics è un sistema di tracciamento delle visite tramite javascript, come abbiamo visto più volte; significa che ogni volta che un browser con javascript abilitato visita una pagina contenente il GATC, esso invia immediatamente una serie di informazioni ai server di Google. Siti con traffico molto alto, nell’ordine delle milioni di pagine viste al mese, generano una mole di richieste molto alta, ma naturalmente il problema non è certo la banda che l’infrastruttura di Google può dedicare ad Analytics, bensì il problema potrebbero essere i report.

I dati accumulati dai server vengono processati e messi “ordinati” nel database di GA, ma non viene fatto quasi nessun precalcolo. I dati sono sostanzialmente grezzi, altrimenti non si potrebbero creare i nuovi rapporti personalizzati. Questo però comporta lo svantaggio di dover effettuare i calcoli “al volo” ogni volta che apriamo un report, infatti più dati ci sono più il sistema può risultare lento (e con i segmenti avanzati la cosa è accentuata parecchio). Per questo motivo i profili con molte pageviews potrebbero presentare la dicitura “questo rapporto si basa su dati di esempio. Ulteriori informazioni” e i dati avere una percentuale di scostamento a fianco: significa che il numero visualizzato non è preciso ma è appunto in un intorno percentuale di quanto indicato.

La funzione _setSampleRate(stringa) serve a dire a Google Analytics di non conteggiare tutti i visitatori, ma solo la percentuale passata come parametro alla funzione. Ad esempio impostando la funzione così:
pageTracker._setSampleRate("70");
verranno tracciati solo sette visitatori ogni 10. Su siti di grandi dimensioni è un’operazione statisticamente possibile, e non inficia i rapporti generati anche perché Google Analytics si comporta in maniera coerente rispetto ai visitatori che ritornano. Ogni visitatore viene “marchiato” dalla funzione: se GA decide di tracciarlo, lo traccia sempre. Se decide di non tracciarlo, non lo traccia mai. In questo modo il suo comportamento è sempre registrato e l’esperienza utente sul sito non viene stravolta nei report.

Se il dubbio che vi ha assalito durante la lettura di questo articolo è “non sono sicuro di voler tralasciare parte delle visite”, la creazione di due oggetti di tracciamento distinti che puntano a due profili differenti è la soluzione che fa per voi: un profilo conterrà tutti i dati, un altro solo un sample. Potrete fare le analisi sul profilo agile e approfondire le questioni dubbie su quello completo, diminuendo il tempo di attesa del caricamento dei dati. Ecco un esempio di codice


<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write("\<script src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'>\<\/script>" );
</script>

<script type="text/javascript">
var firstTracker = _gat._getTracker("UA-12345-1");
firstTracker._setSampleRate("70"); // traccia il 70% delle visite
firstTracker._trackPageview();

var secondTracker = _gat.getTracker("UA-67890-1");
secondTracker._trackPageview(); //traccia tutte le visite
</script>