Jun 29 2010

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

Il filtro per le variabili personalizzate? non si può fare (per ora)

autore: Marco Cilia categoria: filtri tag: , ,

L’altro giorno mi accingevo a mostrare il “famoso” metodo per escludere il proprio IP dalle statistiche quando esso non sia fisso, cioè la pagina nascosta con il valore personalizzato impostato tramite _setCustomVar() (la ex- _setVar() ).
Mi accingevo a mostrare il campo da filtrare nel “pattern filtro” della schermata di GA e non trovavo nessun riferimento. Cerce, cerca e cerca ancora, in effetti non c’è nessun riferimento!.

Questo è assolutamente incredibile, e di certo non è un vanto per Google! Google ha deprecato l’uso di _setVar() – il cui valore era richiamabile nei filtri tramite campo “definito dall’utente” – per consigliare la funzione _setCustomVar(), ma nei filtri non c’è modo di escludere o includere alcunché basandosi sui valori impostati tramite di essa!

E’ invece assolutamente possibile fare segmenti avanzati e report personalizzati usando quei valori, come testimoniato dallo screenshot:

In questo topic del forum ufficiale, ma non è il solo, altre persona lamentano questa mancanza, veramente notevole!


Jun 13 2010

HelpSemaforoQuesto semaforo indica il livello difficoltà del post
semaforo rosso - articolo per esperti

Catturare la prima fonte con le variabili personalizzate

autore: Marco Cilia categoria: codice di monitoraggio tag:

[questa è praticamente la traduzione di un post di websharedesign.com, che descrive un metodo per immagazzinare la prima sorgente di traffico nello slot 3 delle variabili personalizzate, analogamente a quanto descritto a suo tempo da Brian Clifton]

Per tracciare e registrare l’informazione sulla prima sorgente di traffico si ha bisogno di leggere il cookie __utmz e scrivere le informazioni nel cookie __utmv, che è dedicato alle variabili personalizzate. Facendo così è facile andare incontro al limite dei 64 caratteri (considerate che potenzialmente si potrebbero immagazzinare sorgente, mezzo, campagna, keyword e informazioni sull’annuncio).
Ecco il problema: se si prova a immagazzinare più di 64 caratteri nel cookie __utmv, Google Analytics non si preoccuperà di tagliare l’eccedenza, ma si rifiuterà di scrivere completamente l’informazione. Per evitare questo, ecco alcuni consigli:

  1. Scegliete un nome breve per le vostre variabili, come “FT” (first touch) nel nostro caso. Le variabili personalizzate usano una struttura chiave/valore nella quale la chiave è una categoria di dati; in questo caso la vostra chiave è semplicemente first touch, mentre il valore è qualcosa come google/organico/grande/blu. Scegliere un nome corto per la chiave permette di salvare la maggior parte dei caratteri per il valore
  2. Scrivere una regular expression cerca-e-sostituisci sul valore nella coppia chiave/valore per tenere solo i caratteri che non necessitano di essere codificati. Si salverà spazio utile per molti altri caratteri.
  3. Limitare la lunghezza del valore a 64 caratteri meno il valore della chiave. In altre parole valore = 64 – (lunghezza della chiave)
  4. Alla fine chiamare _setCustomVar() per memorizzare i dati della prima fonte in una variabile personalizzata

Ecco il codice necessario a leggere il cookie __utmz e quindi eseguire i passaggi dal 2 al 4:


<script type='text/javascript'>
//Used to obtain a value from a string of key/value pairs
function _uGC(l,n,s) {
if (!l || l=="" || !n || n=="" || !s || s=="") return "-";
var i,i2,i3,c="-";
i=l.indexOf(n);
i3=n.indexOf("=")+1;
if (i > -1) {
i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; }
c=l.substring((i+i3),i2);
}
return c;
}
//Retrieve campaign and referrer info from the _utmz cookie
var z = _uGC(document.cookie, '__utmz=', ';');
var source  = _uGC(z, 'utmcsr=', '|');
var medium  = _uGC(z, 'utmcmd=', '|');
var term    = _uGC(z, 'utmctr=', '|');
var content = _uGC(z, 'utmcct=', '|');
var campaign = _uGC(z, 'utmccn=', '|');
var gclid   = _uGC(z, 'utmgclid=', '|');
//Replace empty values (marked by a dash) with an empty string
if(source=="-"){source=""};
if(medium=="-"){medium=""};
if(term=="-"){term=""};
if(content=="-"){content=""};
if(campaign=="-"){campaign=""};
//If gclid is present, explicitly set source/medium to google/cpc
if (gclid !=="-") {
source = 'google';
medium = 'cpc';
}
//Build utmString
var utmString = source;
utmString=utmString+"!"+medium;
utmString=utmString+"!"+campaign;
utmString=utmString+"!"+term;
utmString=utmString+"!"+content;
//Replace URL-encoded ’spaces’ with dashes
utmString=utmString.replace('%20','-');
//RegEx to retain only whitelisted characters
utmString=utmString.replace(/[^a-zA-Z0-9-~!*_.]/g,");
//Set string to specific length
utmString=utmString.substr(0,62);
//Set first touch information if not already there, using slot 3
var fT=pageTracker._getVisitorCustomVar(3);
if(!fT){
pageTracker._setCustomVar(3,'FT',utmString,1);
}
</script>

In questo modo nel report “variabili personalizzate” si troverà una variabile di nome FT che conterrà appunto la prima fonte di traffico usata dai visitatori per raggiungere il vostro sito. L’idea è quella di creare un report personalizzato che contenga per ogni conversione la prima (quella nella variabile) e l’ultima (quella che GA segna per default).


Mar 23 2010

funzioni: _getVisitorCustomVar()

autore: Marco Cilia categoria: funzioni tag: , ,

Se vi ricordate, qualche tempo fa abbiamo parlato della funzione _setCustomVar() e del fatto che essa sostituisce quasi totalmente la vecchia _setVar() perché è più flessibile e può memorizzare più dati, anche contemporaneamente. Uno dei parametri da passare alla funzione è lo “scopo”, un numero intero che rappresenta l’uso che si fa dello slot che decidiamo di usare tra i cinque disponibili.

Ecco, se usiamo la funzione per scrivere un valore riferito al visitatore, ovvero se usiamo uno scope con valore 1, allora abbiamo successivamente la possibilità di richiamare quel valore usando la funzione _getVisitorCustomVar(); l’unico parametro che accetta in ingresso è l’indice dello slot ove risiede la stringa che abbiamo scritto nel cookie del visitatore, per cui ad esempio se durante una precedente sessione di visita il visitatore si è loggato e abbiamo usato la funzione


pageTracker._setCustomVar(1,"condizione","loggato",1);

durante una visita successiva possiamo chiamare


pageTracker._getVisitorCustomVar(1); 

e vederci restituire in risposta la stringa “loggato” da utilizzare come meglio crediamo.

Premesso che non ho ancora usato questa semplice funzione, prevengo già una possibile domanda: non so se funziona anche con gli altri scopi, cioè con porzioni di cookie riferite alla sessione o alla pagina. A giudicare dalla documentazione – e ragionandoci un po’ su – direi di no, ma in questi casi non c’è niente di meglio di un bel test!


Dec 10 2009

funzioni: _setCustomVar() (e la fine di _setVar)

autore: Marco Cilia categoria: funzioni tag: , ,

A partire dal primo dicembre 2009, la funzione _setVar() è deprecata, il che significa che non va più usata nel proprio codice di tracciamento. Nel contempo sotto al report “definito dall’utente” è stato aggiunto “Variabili personalizzate”, che consente di monitorare quel che viene definito con la nuova funzione. Il vecchio report è adesso popolabile soltanto tramite filtro.

_setVar() è stata invece sostituita dalla nuova _setCustomVar(indice, nome, valore, scopo), che ha le stesse possibilità della precedente, ma aggiunge ulteriori livelli di utilizzo e possibilità di tracciamento. Vediamo come:

  • indice è un numero intero, da 1 a 5, e rappresenta lo “slot” nel quale il valore viene inserito.
  • nome è una stringa, e rappresenta il nome che diamo alla variabile impostato.
  • valore è una stringa e rappresenta il contenuto della variabile personalizzata
  • scopo è una numero intero – opzionale – che possiamo usare per tenere traccia del perché quella variabile viene impostata. Valori tipici sono 1, 2 e 3 che nell’idea di Google Analytics rappresentano nell’ordine variabili impostate a livello di visitatore, di sessione o di pagina.

Dal punto di vista del programmatore la funzione ritorna un valore booleano: true se la variabile personalizzata è stata impostata correttamente, false se qualcosa è andato storto. Tenete a mente che la somma dei caratteri di nome e valore non può sorpassare i 64 caratteri.

Perché è utile dichiarare uno scopo? perché la nuova funzione _setCustomVar() può essere usata in contesti differenti rispetto alla vecchia _setVar(), ad esempio per raggruppare i contenuti senza trucchi. Il codice necessario per raggruppare le pagine della categoria “sport” potrebbe ad esempio essere:
pageTracker._setCustomVar(1,"sezione","sport",3);

Se per adesso non avete voglia di fare troppe modifiche ma vi interessa solo continuare a far fare ad Analytics quello che facevate con _setVar(), la traduzione della vecchia riga

trackPageview._setVar('miovalore');

si fa – ad esempio – con

trackPageview._setCustomVar(1,'valore_pers','miovalore',1);

Si è inserito il valore di 1 nello scopo perché la vecchia funzione impostava SOLO valori a livello utente, che sono appunto quelli con scopo 1.

Ricordatevi sempre che _setCustomVar() va chiamata PRIMA di un trackPageview() o di un _trackEvent(), poiché la funzione imposta il valore ma non comunica niente ai server, mentre le altre due poi inviano tutte le informazioni, quindi anche il valore appena impostato, a Google Analytics


Ads

pubblicità su questo sito

-->