Nov 12 2015
Lo strano caso del campionamento invisibile
L’altro giorno mi è capitato uno di quei casi da Sherlock Holmes che all’inizio sembra che vada tutto a rotoli, ma poi si risolve brillantemente escludendo tutte le possibilità e osservando bene, proprio come il buon vecchio investigatore ci ha insegnato a fare (a dire il vero, sono un patito della versione interpretata da Benedict Cumberbatch, così lo sapete 🙂 )
Il problema suona all’incirca così: “Marco, succede che selezionando i dati di un mese ho queste transazioni da cpc, ma se applico la dimensione secondaria categoria del dispositivo, sono meno. I dati non sono campionati”. (se ti serve un ripassino di cosa sia il campionamento…)
Ovviamente la cosa non ha senso, vista da questa prospettiva, per cui come al solito debbo smanacciare un po’ con i dati direttamente per capire sino in fondo cosa succede. Ecco le mie prove:
- seleziono il mese, vado nel report acquisizione -> tutto il traffico, seleziono solo google / cpc, mi annoto le transazioni (661), applico la dimensione secondaria categoria del dispositivo, guardo le transazioni: 655. L’occhio si sposta sul riquadro del campionamento, il rapporto è basato sul 100% delle visite
- torno indietro al report tutto il traffico, FILTRO per google / cpc, mi annoto le transazioni (661). Il report è preaggregato, e non sarebbe campionato nemmeno con 20 milioni di visite, quindi il numero è corretto. Applico la dimensione secondaria categoria del dispositivo, guardo le transazioni: 655. Il rapporto è basato sul 100% delle visite
- mi sposto nel report mobile -> panoramica, applico la dimensione secondaria sorgente / mezzo, FILTRO AVANZATO per google / cpc e guardo le transazioni: 655. Anche qui 100% di campionamento.
- Applico un segmento avanzato su google / cpc: 655 transazioni. Lo tolgo, 661 transazioni da cpc. Sempre 100%
- Custom report, stessi risultati
- Cambio approccio: invece di usare categoria del dispositivo, uso un’altra dimensione: stesso comportamento. Rapporti basati sul 100% delle sessioni. Inizio a temere un bug di Google Analytics
- Abbandono la ricerca su cpc e faccio le stesse prove sui totali. Invece di 6, mancano in tutto 22 transazion
Ho provato moltissime combinazioni di custom report, segmenti, dimensioni secondarie, ma il problema invariabilmente si presentava. I dati considerati erano quelli di gennaio 2015. Sui dati di novembre, niente problema. Ma allora che cavolo di bug è? proviamo con i dati di febbraio 2015: perfetti, il totale con e senza dimensione secondaria combacia. Marzo 2015, problema presente. Testo i dati 1-15 gennaio, combaciano. 16-31 gennaio, combaciano. Faccio la somma a mano e viene 661. Rimetto tutto gennaio, GA mostra 655. La cosa prende una piega terrificante. Sposto l’attenzione sulle sessioni, anche quel numero non combacia con la dimensione secondaria applicata o senza. Mi gira la testa…
Ci prepariamo a scrivere a Google, con copiosi screenshot a supporto della nostra bizzarra situazione, quando alla review finale ho l’illuminazione. GA ha presumibilmente si un baco, ma non è dove crediamo che sia. Riguardo gli screenshot per assicurarmi che si veda bene che segni sempre 100% di campionamento e noto il numero totale delle sessioni del mese: 503.472. Ferma tutto, da che mondo e mondo, con il selettore su “report più lenti, maggior precisione”, il sistema non campiona se non deve fare calcoli su meno di 500.000 visite. Quindi qui ce ne sono di più, poche di più… vuoi vedere che?
500.000 / 503.472 * 100 = 99,31%
BINGO! il bug è che il riquadro, sebbene normalmente istruito per mostrare due decimali nel fattore di campionamento, arrotonda lo stesso 99,31 a 100. Quindi sta campionando, ma non sembra. Il che significa anche che in quelle 3.472 sessioni che mancano quando campiona su 500k ci sono 22 transazioni, con un conversion rate dello 0,63% che è perfettamente in linea con la media del sito in questione, e che conferma la bontà dell’algoritmo di campionamento.
Moriarty, c’hai provato anche ‘sta volta ma t’è andata male! 😀
Quindi hai poi segnalato l’errore a yoogle?
sto cercando di capire se c’è una soglia minima per l’errore. Mi servirebbe provare un 98,90% ma non posso scegliere arbitrariamente le sessioni al numeratore 😀