Sep 11 2008

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

autore: Marco Cilia categoria: funzioni

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;" onclick="javascript:pageTracker._trackPageview ('/outbound/www.shopmiosito.com');">inizia l'acquisto delle tue scarpe</a>

Bisogna notare che il cookie in questo caso è passato con una richiesta GET, e quindi è visibile nell’url del browser. Per passare da un sito a un altro con una richiesta in POST, ad esempio 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)">

Articoli collegati:

  1. funzioni: _setDomainName()
  2. funzioni: _getAccount() e _getVersion()
  3. funzioni: _clearOrganic() _clearIgnoredRef() _clearIgnoredOrganic()
  4. funzioni: _setSampleRate()
  5. funzioni: _setCookiePath() e _getCookiePath()

3 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

Trackbacks

  1. una rettifica sui cookie · Google Analytics in 30 secondi

Scrivi un Commento