Apr 13 2009

Uso di _setVar() su più domini

Quando le cose da tenere d’occhio iniziano ad essere molte e variegate bisogna fare attenzione: Google Analytics fornisce gli strumenti, ma bisogna stare attenti a possibili effetti collaterali non documentati. Prendiamo ad esempio l’ultimo post di Lunametrics, che riporta una situazione con un codice di monitoraggio per più domini di questo tipo:


var pageTracker = _gat._getTracker("UA-xxxxxxx-y");
pageTracker._setVar(’buyer’);
pageTracker._setAllowAnchor(true);
pageTracker._setAllowLinker(true);
pageTracker._setAllowHash(false);
pageTracker._trackPageview();

questo codice inizializza l’oggetto di tracciamento, poi scrive nel cookie __utmz il valore buyer (ovvero assegna il visitatore al segmento compratori), poi permette l’uso del cancelletto nelle campagne, poi permette di trasportare il cookie da un dominio a un altro, disabilita il check dell’integrità dei cookie basato sul dominio (quando si raccolgono dati da più sottodomini in un unico account), e infine raccoglie i dati e li invia al server di Google.

Quale è il problema di questo codice? il problema è che _setAllowHash di fatto cambia il formato di scrittura del cookie, e ci sono due funzioni che scrivono cookie: _setVar che si trova prima di setAllowHash e trackPageview che invece si trova dopo.
In questo modo GA va in confusione e perde informazioni sulla sessione e sul referrer, assegnando a traffico diretto la seconda – falsa – visita.

La soluzione è quella di chiamare _setVar() sempre dopo _setAllowHash() (o _setDomainName(‘none’); se lo usate); bisogna sempre tenere presente che il javascript di Google Analytics ha a che fare con i cookie, e che alla fine sono loro che “comandano” quel che poi vediamo nei nostri report.


Nov 27 2008

Evitare contenuti duplicati a causa di GA

autore: Marco Cilia categoria: generale tag: , , ,

gioco di specchiQuando illustro come Google Analytics tiene traccia delle campagne, con l’uso di parametri proprietari negli URL delle pagine sul sito, spesso vengono fuori le domande “ma quegli URL sono indicizzati?” e “ma quello non è contenuto duplicato?” (mi ricordo che ne parlammo anche al primo corso gratuito di GA a Verona, con YoYo – formazione rotolante e Stefano Gorgoni). La risposta a tutti gli effetti è si, gli url delle campagne vengono indicizzati a meno che non siano esplicitamente bloccati tramite META TAG o file robots.txt (e non sempre è possibile), e se vengono indicizzati rappresentano un URL che presenta gli stessi contenuti di un altro.

Premetto che non sono un SEO e mi occupo di posizionamento solo per i siti che creo, ma che sono dentro al settore, mi documento e mi confronto con amici e colleghi perché spesso le considerazioni che si traggono dalle analisi si possono tramutare in consigli per il posizionamento o devono tenere conto delle azioni per il posizionamento fatte autonomamente dal cliente o da altri consulenti. Detto ciò, se questa situazione vi spaventa e non volete rinunciare all’uso delle campagne, un suggerimento viene da Benjamin Mangold: sostanzialmente il suggerimento è di usare la funzione _setAllowAnchor(true) (di cui vi avevo già parlato) e di cambiare il punto interrogativo ( ? ) negli URL da diffondere per la campagna con il cancelletto ( # ). Si tratta effettivamente di un uso “creativo” della funzione, che probabilmente non è stata creata per questo motivo.

Per definizione Google non indicizza nulla di quanto vi sia in un indirizzo web dopo al carattere cancelletto, poiché il cancelletto viene usato in HTML per indicare delle ancore interne alla pagina web, quindi per definire link a punti differenti della stessa pagina. Combinando queste due informazioni si ha la soluzione al problema degli eventuali contenuti duplicati.

[photo credit LollyKnit su Flickr]


Oct 17 2008

funzioni: _setCampaignTrack() e _setAllowAnchor()

autore: Marco Cilia categoria: funzioni tag: , , ,

La gestione delle campagne è uno strumento molto potente in Google Analytics e alcuni si spingono addirittura a dire che sia la cosa meglio riuscita del prodotto. Quale che sia la vostra opinione, è indubbia una cosa: la gestione è talmente semplice che basta visitare un link con i parametri di una campagna per iniziare a vedere i relativi dati nei report. Non ho volutamente scritto “iniziare a diffondere link con i parametri” perché intendo proprio quel che ho detto: basta che qualcuno visiti un vostro indirizzo con i parametri di una campagna, una qualsiasi.
Per chiarire ancora meglio, se io visito il vostro sito tramite questo indirizzo
http://www.tuosito.it/index.php?utm_source=ilmiobrowser&utm_medium=miainiziativa&utm_campaign=melasonoinventata

voi inizierete a vedere le mie visite sotto la campagna “melasonoinventata”. C’è da dire che nei grossi numeri è improbabile che qualcuno riesca a far emergere una campagna inventata, e se ci riesce significa che porta abbastanza traffico da meritare una campagna vera, ma in siti con traffico relativamente basso è una possibilità che esiste. Se vogliamo è lo stesso discorso fatto a riguardo della copia dello script su domini diversi: la scelta progettuale è una, ed è degli ingegneri di Google, ma il sistema mette a tua disposizione gli strumenti per proteggerti. Nel caso in cui non si vogliano tracciare le campagne (nessuna campagna!) si può usare la funzione _setCampaignTrack(booleano), che disattiva il relativo tracciamento. E’ sufficiente aggiungere la riga
pageTracker._setCampaignTrack(false);
prima di trackPageView().

Essendo una funzione booleana, il tracciamento è spento o acceso; o escludete tutti i tracciamenti – e quindi non userete le campagne nemmeno volendolo – o li accettate tutti, compresi quelli “fasulli”. Alternativamente si può pensare a un filtro di inclusione solo per le proprie campagne, ma sarebbe un filtro da aggiornare molto spesso e comporterebbe qualche restrizione alla gestione stessa delle campagne.

La seconda funzione di cui parliamo oggi è _setAllowAnchor(booleano) e serve ad abilitare la gestione degli url delle campagne anche tramite il separatore # (cancelletto), oltre ai classici ? (punto di domanda) e & (e commerciale). Se devo essere sincero non ho mai visto utilizzare questa funzione da quando mi occupo di GA (anzi, ho visto URL taggati col cancelletto ma nelle pagine di destinazione non c’era la funzione _setAllowAnchor), ma poiché espande le possibilità di utilizzo è bene conoscerla. L’utilizzo è semplice, basta aggiungere la riga
pageTracker._setAllowAnchor(true);

prima della chiamata a trackPageView()