Mar 14 2010

riscrivere tutte le URL con _trackPageview()

Sempre il buon Andrea mi pone una domanda, e ne approfitto di nuovo per un post: mi fa sempre piacere scoprire cosa non è chiaro alle persone, dato che io con Google Analytics ci faccio anche colazione e quindi tendo a dare per scontate troppe cose 🙂

Il suo quesito è all’incirca “Non sono d’accordo con una persona che sostiene che trackpageview può essere utilizzato anche per rimappare l’url corrente della pagina e fare in modo che sia possibile poi utilizzare il nuovo indirizzo all’interno dei goals per verificare chi converte e chi no. Io ritengo che la funzione del trackpageview è quella si di assegnare una pagina virtuale, ma nel caso in cui si scateni un evento a cui questo è stato associato”

L’errore nasce dal fatto che _trackPageview noi lo vediamo solo in due forme. La prima è all’interno del codice di monitoraggio classico, dove viene sempre richiamata senza parametri, la seconda è quando creiamo pagine virtuali e quindi le passiamo come parametro un indirizzo fittizio. La funzione in realtà è sempre la stessa, e il suo scopo è quello di “fare il punto della situazione” nel codice di monitoraggio, scrivere i cookie nel computer del visitatore e sparare i dati verso i server di Google. Se non gli si passa un parametro, essa invia per impostazione predefinita l’url corrente della pagina così com’è.
Ma nessuno ci vieta, ad esempio, di usare una funzione lato server per inserire dinamicamente all’interno di un codice di monitoraggio degli indirizzi più leggibili ai fini delle nostre analisi.

Ipotizziamo di non avere modo di riscrivere le URL attraverso i metodi “normali” – quali .htaccess o filtri ISAPI per webserver Microsoft – e di aver scritto una funzione in PHP (abbellisciURL() ) che ci restituisce un simil-URL nella forma /categoria/marca/nomeprodotto.html

Se modificassimo il GATC così


<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview(<?php abbellisciURL(); ?>);
} catch(err) {}</script>

dentro a Google Analytics avremmo SOLO ED ESCLUSIVAMENTE i nostri url abbelliti.

Potrete poi usare questi url per definire gli obiettivi? ASSOLUTAMENTE SI, dato che non sappiamo esattamente QUANDO GA elaborerà i dati, e dato che gli url modificati sono I SOLI ad essere stati inviati ai server di Google, è assolutamente lecito e possibile definire dei goal usando gli url fittizzi. Anzi, non potreste fare altrimenti!

_trackPageview() quindi si rivela anche un potente strumento per rendere i vostri report più semplici e chiari, più leggibili, ed eventualmente anche per facilitarvi la vita nell’impostazione degli obiettivi.

Condividi l'articolo:

5 Commenti

  1. URL = Uniform Resource Locator e’ maschio! 🙂

  2. Sto utilizzando il nuovo codice asynchronous per cercare di tracciare gli obbiettivi su un e-commerce virtuemart, il problema è che ho il codice “base” nel template per la maggior parte delle pagine ma devo utilizzare il _trackPageview virtuale in alcune pagine del processo di pagamento e dell’avvenuto acquisto (la pagina è sempre http://www.sito.com/index.php e funziona passando parametri in 5 step successivi).

    La domanda è: se nella maggior parte delle pagine ho (e funziona ottimamente) il codice _trackPageview “base” e aggiungo nelle pagine di pagamento e nella pagina di ringraziamento un _trackPageview personalizzato, i dati si sovrappongono o vengono calcolati doppi?

    Non posso fare altrimenti ho già provato molte soluzioni ma ognuna ha dei problemi…

    Grazie

  3. se “spari” due trackpageview, GA calcola due pageview. E’ pur sempre una macchina 🙂 Quel che devi fare è condizionare lato server il trackpageview normale e quello modificato a seconda del parametro dello step

  4. Sto implementando il nuovo codice async su un sito che fa massiccio utilizzo della funzione trackPageview (usa una stessa URI per 5-6 pagine differenti).
    Detto che il nuovo codice viene posizionato nell’, come posso inserire trackPageview ogni qual volta che serve all’interno del codice della pagina? Ci sono porzioni di codice che vengono infatti pubblicate soltanto in risposta ad alcune azioni degli utenti, ma l’ non viene ricaricato.

  5. il codice asincrono può anche essere messo nel body come il vecchio (metterlo nell’head è un suggerimento con dei vantaggi, ma non è obbligatorio), quindi non fa nessuna differenza nel tuo caso; cambia solo la sintassi.

Scrivi un Commento