Apr 13 2011

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

funzioni: _setReferrerOverride (e tracciare al volo la ricerca immagini)

autore: categoria: funzioni

Una funzione che non ho mai menzionato su questo blog è _setReferrerOverride(url), che serve a sovrascrivere il referrer estratto automaticamente da Google Analytics prima che esso venga passato ai server per l’analisi. Perché si dovrebbe fare una cosa simile? Ad esempio un motivo valido può essere che per qualche problema tecnico che non riuscite a risolvere immediatamente – mentre i dati stanno venendo registrati sbagliati – il referrer non è quello atteso. Questa funzione vi permette di ripristinare quello corretto.

La funzione accetta come parametro una sola stringa, che deve essere l’url del referrer (reale o fittizio) che decidete di impostare per quella pagina, o per quella singola chiamata del codice di tracciamento.

_gaq.push(['_setReferrerOverride', 'http://www.referrerfinto.it/parametro=2]);

Un caso reale e molto pratico in cui si usa questa funzione è ad esempio per tracciare completamente lato codice – quindi senza usare filtri e profili-copia, le ricerche fatte su Google Images. E’ sufficiente usare questo codice


<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-x']);
var ref = document.referrer;  //prendo il referrer
if (ref.search(/images.google/) != -1 && ref.search(/prev/) != -1) { //se contiene sia images.google sia /prev/
var regex = new RegExp("images.google.([^\/]+).*&prev=([^&]+)"); //scrivo la regex per estrarre i due valori
var match = regex.exec(ref); // la eseguo
_gaq.push(['_clearOrganic']); //pulisco la lista dei motori di ricerca
_gaq.push(['_addOrganic','images.google.'+match[1],'q']); // aggiungo un unico motore di ricerca (google immagini)
_gaq.push(['_setReferrerOverride', 'http://images.google.'+match[1]+unescape(match[2])]); //sovrascrivo il vecchio referrer con quello apposito
}

_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

(l’autore originale dello script era Joost De Valk nel forum ufficiale, poi è stato modificato per renderlo asincrono da un altro utente)

Non male, no? 🙂

Condividi l'articolo:

4 Commenti

  1. Ok, ho capito che serve per tracir le ricerche fatte con Google Images… però nel pannello di GA, cosa trovo?

    Puoi spiegare meglio dove finiscono questi dati (cioè in che pannello di GA) e in quale modo vengono classificati?

  2. vengono classificati come un normale motore di ricerca (normalmente Google Images non lo è), quindi nel report dei mdr troverai ad esempio images.google.it e la relativa keyword

  3. Copiando il codice di cui sopra in un blog della piattaforma Blogger, mi da il seguente errore; sai mica dov’è l’errore? Grazie in anticipo.

    Non è stato possibile analizzare il tuo modello, in quanto non è strutturato correttamente. Assicurati che tutti gli elementi XML presentino il tag di chiusura richiesto. Messaggio di errore XML: The entity name must immediately follow the ‘&’ in the entity reference.

    Error 500

  4. per qualche motivo a me ignoto, il sistema interpreta il tutto come fosse XML. Non so se effettivamente su Blogger sia permesso incollare codici javascript arbitrari, temo di no…

Scrivi un Commento