Sep 11 2008

funzioni: _setAllowLinker(), _link() e _LinkByPost()

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

Riprendendo il post precedente, dicevo che _setDomainName() andava impostato su “none” nel caso in cui si volesse avere il controllo completo dei casi in cui i visitatori avrebbero dovuto passare da un dominio a un altro mantenendo lo stesso cookie. Questa operazione è particolarmente importante quando i domini sono completamente differenti, e non sono solo uno il sottodominio dell’altro, ad esempio www.miosito.it e www.shopmiosito.com.

La funzione _setAllowLinker(booleano) permette di abilitare su Google Analytics la gestione manuale della migrazione dei cookie, e di default è disabilitata. Va invocata esplicitamente nel GATC insieme a _setDomainName() in questo modo:

<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">
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._setDomainName("none");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
</script>

sia sul sito origine sia sul sito destinazione. A questo punto è necessario aggiungere un pezzo di codice a ogni singolo link che porta da un dominio all’altro e che non vogliamo dia origine a una nuova visita (come appunto il caso di un carrello acquisti) con la funzione _link(url_destinazione), per esempio così:
<a href="http://www.shopmiosito.com/?negozio=scarperosse" onclick="pageTracker._link(this.href); return false;">inizia l'acquisto delle tue scarpe</a>

Bisogna notare che il cookie in questo caso è passato in ogni caso con una richiesta GET, e quindi è visibile nell’url del browser. Per passare da un sito a un altro usando una form, è necessario usare l’analoga funzione _linkByPost(oggetto_form), per esempio usando il codice:
<form action="http://www.shopmiosito.com/paginaprocesso.php" name="alcarrello" method="post" onsubmit="pageTracker._linkByPost(this)">

Condividi l'articolo:

16 Commenti

  1. Ciao
    sto cercando una soluzione a un problema e questo codice dovrebbe aiutarmi (se ho capito giusto)

    Devo monitorare due domini che sono in realtà lo stesso sito.Due siti copia (miosito.it e miosito.com) con cms unico e senza redirect. Come faccio a settare il filtro in modo che io possa leggere solo le visite dal .it?
    Grazie
    elena

  2. sono purtroppo costretto a risponderti che secondo me sarebbe più naturale, consigliato e facile fare un redirect :)

    Ma visto che escludi già tu questa possibilità: la soluzione più veloce mi sembra un filtro “cerca e sostituisci” che cambia l’host da .com a .it. A quel punto GA sommerà le visite delle pagine uguali (index con index, about con about, ecc.) a patto che ovviamente abbiano stesso URL tranne .it e .com

  3. Il metodo _link() funziona, ma i parametri sono passati in chiaro. E’ possibile utilizzare linkbypost() per nascondere i parametri applicandolo però ad un link semplice? Esistono altre soluzioni per passare i parametri non in chiaro?

  4. Salve, anzitutto complimenti per il sito e per gli articoli spiegati in modo davvero semplice e chiaro. Ma vorrei chiederti se possibile di affrontare questo problema.

    Ho un gruppo di sitiweb che vorrei monitorare con un solo codice di google analytics e possibile? Se si come puoi fare un esempio pratico completo?

    P.S.
    Vorrei monitorare le visite provenienti dai motori di ricerca google.it/com/fr/de/ google immagini
    e msn.it/com e msn immagini
    yahoo.it/com e yahoo immagini
    youtube.com e vimeo.com
    facebook.com e twitter.com, etc.. etc..

    calcola che i miei siti sono così:
    pippo.it
    pluto.de
    paperino.com
    e altri domini con estensione diversa .net,org,info,fr,de, co.uk etc.. etc..

  5. Leo: ho corretto questo articolo perché conteneva una inesattezza: il cookie viene passato in tutti i casi in chiaro, la scelta di link e linkbypost dipende solo dal metodo usato per inviare i visitatori all’altro sito. Quindi la risposta è no.

  6. angelo, è sufficiente impostare il codice di monitoraggio con le funzioni _setDomainName impostata sul dominio, _setAllowLinker(true) e – appunto – _link e _linkByPost nei link e form che trasferiscono il visitatore

  7. grazie, ma intendi così il codice per più domini:

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx']);
    _gaq.push(['_setDomainName', 'pippo.it']);
    _gaq.push(['_setDomainName', 'paperino.net']);
    _gaq.push(['_setDomainName', 'pluto.com']);

    _gaq.push(['_setAllowLinker', true]);
    _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);
    })();

  8. no, ogni _setDomainName va sul dominio cui si riferisce

  9. scusa l’ignoranza ma non mi e chiaro, se puoi fare un’esempio preciso aiuterai i tuoi utenti a capire meglio.

  10. su pippo.it ci sarà

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx']);
    _gaq.push(['_setDomainName', 'pippo.it']);
    _gaq.push(['_setAllowLinker', true]);
    _gaq.push(['_trackPageview']);

    su paperino.net invece

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx']);
    _gaq.push(['_setDomainName', 'paperino.net']);
    _gaq.push(['_setAllowLinker', true]);
    _gaq.push(['_trackPageview']);

    e così via…

Trackbacks

  1. una rettifica sui cookie · Google Analytics in 30 secondi
  2. Due codici di monitoraggio nella stessa pagina · Google Analytics in 30 secondi
  3. Uso di _setVar() su più domini · Google Analytics in 30 secondi
  4. Profili e account-somma · Google Analytics in 30 secondi
  5. _setXDomain su GAaddons • Google Analytics in 30 secondi
  6. Automatizzare il passaggio tra domini • Google Analytics in 30 secondi

Scrivi un Commento