Oct 13 2009

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

Profili e account-somma

autore: categoria: generale

[Ogni tanto trovo dei post che vale la pena di tradurre integralmente o quasi: è sicuramente il caso di questo guest post da E-Nor sul blog ufficiale di Analytics, relativo alla strutturazione degli account di domini e sottodomini quando c’è la volontà di avere anche il totale]

La strategia

Ci sono molti modi per strutturare i vostri profili Google Analytics quando avete più domini e sottodomini. In questo post mi limiterò a quello che apprezzo di più e che trovo meno confusionario.
Prima di andare avanti coi dettagli sulla soluzione, e per chiarezza, assumiamo di avere a che fare con un progetto che ha i seguenti requisiti:

  • Un’azienda con tre domini (www.a.com, www.b.com, www.c.com)
  • Un dominio (a.com) linka a un carrello ordini su un sito esterno (www.mystore.com)
  • due domini (a.com e b.com) hanno più sottodomini

Ecco una rappresentazione grafica della struttura:
Struttura degli account

Cosa viene richiesto alla web analytics:

  • Di tracciare ogni dominio e sottodominio in maniera separata
  • Di tracciare il traffico complessivo del sistema di domini e sottodomini
  • Di tracciare le transazioni e-commerce

La soluzione:

  • Creare un Account Google Analytics per ogni dominio
  • Modificare il codice di tracciamento per collegare i molti sottodomini al dominio principale
  • Collegare il carrello e-commerce al dominio principale e installare il GATC in tutte le pagine del carrello
  • Creare un accont Rollup (account-somma) e aggiungere il suo codice in tutti i domini e i sottodomini

Esempio grafico della strutturazione degli account:
Strutturazione degli account

Ora vediamo come si fa. Se non amate javascript e le regular expression potete chiedere al vostro tecnico di fiducia di proseguire la lettura da qui 🙂

Come si realizza il tutto, in 10 semplici mosse
  1. Create un Account GA per ogni dominio www.a.com, www.b.com e www.c.com e poi usate il primo account UA-AAAAAAAA-1 per il dominio www.a.com nel passaggio 3 qui sotto, l’account UA-BBBBBBBB-1 per il dominio www.b.com e UA-CCCCCCCC-a per il dominio www.c.com nel codice al passaggio 8
  2. Create un Account GA per l’account Rollup che conterrà i totali di tutti i domini e i sottodomini (usate l’UA-XXXXXXXX-1 nel codice dei passi 3 e 8)
  3. Aggiungete il seguente codice di monitoraggio al sito principale (www.a.com) e ai suoi sottodomini (blog.a.com, news.a.com, images.a.com e media.a.com).
    A proposito del codice: Abbiamo un normale oggetto PageTracker per tracciare l’attività di ogni sottodominio e un codice di monitoraggio Rollup per tracciare l’attività attraverso tutti i sottodomini e il carrello e-commerce
    
    
    <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-AAAAAAAA-1");
    pageTracker._setAllowHash(false);
    pageTracker._setDomainName(".a.com");
    pageTracker._setAllowLinker(true);
    pageTracker._trackPageview();
    var rollupTracker = _gat._getTracker("UA-XXXXXXXX-1");
    rollupTracker._setAllowHash(false);
    rollupTracker._setDomainName(".a.com");
    rollupTracker._setAllowLinker(true);
    rollupTracker._trackPageview();
    }
    catch(err) {}
    </script>
    
    
  4. Abilitate i rapporti e-commerce. Impostazioni Analytics > Modifica Impostazioni Profilo > Modifica informazioni sul profilo

    Abilitazione rapporti Ecommerce

  5. Aggiungi questo codice in cima alle pagine del carrello nel sito che lo ospita (www.mystore.com)
    
    <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-AAAAAAAA-1");
    pageTracker._setDomainName("none");
    pageTracker._setAllowLinker(true);
    pageTracker._trackPageview();
    var rollupTracker = _gat._getTracker("UA-XXXXXXXX-1");
    rollupTracker._setDomainName("none");
    rollupTracker._setAllowLinker(true);
    rollupTracker._trackPageview();
    }
    catch(err) {}
    
    </script>
    
  6. Aggiungi il codice di tracciamento e-commerce sulla pagina di conferma dell’acquisto, dopo il codice di Analytics (hai bisogno di informazioni aggiuntive?)
  7. Modifica i link al sito che ospita il carrello (www.mystore.com) sul sito principale (www.a.com) per usare la funzione _link() come proposto di seguito:
    Se attualmente hai qualcosa come
    <a href="https://www.mystore.com">Acquista odesso</a>
    cambialo in
    <a href="https://www.mystore.com" onclick="pageTracker._link(this.href); return false;">Acquista adesso</a>
  8. Ripeti il passaggio 3 per i domini www.b.com e www.c.com, ovviamente modificando opportunamente l’account UA-AAAAAAAA-1 e il valore di _setDomainName (se eventualmente hai dubbi e vuoi vedere l’intero codice per www.b.com clicca qui. Per il dominio www.c.com clicca qui
  9. Crea un profilo per ogni sottodominio. Per tracciare un sottodominio (ad esempio blog.b.com) in un profilo separato, applicheremo i seguenti passaggi:
    a. Creazione di un filtro che includa solo il traffico dall’host blog.b.com
    filtro su hostname
    b. Creazione del profilo chiamato “blog”
    c. applicazione del filtro a questo nuovo profilo
  10. come avrete notato, nei codici che abbiamo incollato su tutte le pagine c’è un ulteriore oggetto di tracciamento per tenere traccia di tutte le pagine in tutti i domini e sottodomini in un solo account. Chiamiamo questo account “Rollup”
    
    var rollupTracker = _gat._getTracker("UA-XXXXXXXX-1");
    rollupTracker._trackPageview();
    

    Poiché nell’account Rollup tracceremo pagine da siti differenti e molte di queste pagine potrebbero avere lo stesso nome, suggerisco di creare un filtro avanzato che aggiunga il nome dell’host a quello della pagina in modo da differenziare due pagine con lo stesso nome ma dominio differente.
    Filtro URL completo
    Una volta applicato il filtro, i dati appariranno come in figura
    nome host completo di pagina

    Nota, nell’esempio qui sopra se non avessimo applicato il filtro “Aggiungi l’host”, tutte le pagine home.aspx sarebbero state aggregate come una unica pagina con 2685 visualizzazioni.

Se avete seguito tutti i passi, sarete ora pronti per fare le vostre analisi basandovi su una situazione pulita e dati accurati.

  • Per vedere ogni dominio da solo e per analisi approfondite, usate i profili singoli
  • Per avere una visione d’insieme di come vanno le cose in tutto il sistema di siti, usate l’account Rollup

    Schermata account

Condividi l'articolo:

18 Commenti

  1. Grazie per la traduzione: l’articolo è davvero utile da studiare e tenere sempre a portata di mano.

  2. Complimenti per l’ articolo.. una domanda:

    ho un account analytics su cui ho vari profili. a ciascun profilo corrisponde un dominio diverso. ho anche un account adwords nel quale ho pubblicate delle campagne che puntano a più domini (gli stessi domini monitorati su analytics). La mia impostazione anche da quello che leggo nell’ articolo mi sembra totalmente sbagliata. Tra l’ altro ho constatato che i dati fornitimi da analytics circa le campagne adwords sono sfalsati rispetto ai dati che mi fornisce adwords. Come mi conviene procedere? posso trovare una soluzione senza smontare tutto? oppure mi conviene creare vari account per ciascun dominio?
    Grazie per l’ attenzione e complimenti ancora!
    Mauro

  3. Perché dici che la tua impostazione è sbagliata? l’articolo si può applicare solo nel caso in cui si abbia bisogno di un account che assommi le visite di tutti i domini.

  4. Scusa ho sbagliato a scrivere.. ho 2 account adwords che voglio vengano monitorati su analytics. mi pare di aver capito che è consigliabile per me fare 2 account analytics, ovvero uno per ciascun account adwords che devo monitorare.
    Per questo che dico che devo “smontare”.. in realtà intendo creare un nuovo account analytics con quello che adesso nella mia impostazione è un profilo. riassumendo per chiarezzza: ho un sito a.com e un sito b.com con due account adwords. Ho un unico account analytics con due profili a.com e b.com, mi pare di aver capito che ai fini di un corretto tracciamento dei dati questa impostazione sia sbagliata.

  5. come hai fatto ad associare due account adwords a un solo account GA che contiene due profili? la relazione dovrebbe essere 1-1

  6. Infatti non ci sono riuscito. L’ account analytics era stato creato dal nostro programmatore che era convinto potesse andare bene. Adesso ci sto mettendo mano io perchè mi sono accorto che aveva sbagliato a creare un unico account analytics. Come dici tu la relazione deve essere di 1-1 !!!
    Sarà banale ma all’ inizio non mi era ben chiaro e soprattutto non ero riuscito a trovare del materiale nelle guide e nei blog. Il tuo articolo, anche se non riguardava il mio problema, mi ha fornito la chiave di lettura riguardo il funzionamento della struttura account-profilo.
    Grazie e in bocca a lupo!

  7. Ciao Marco,
    per mettere in atto questa soluzione è necessario creare account distinti o è sufficiente creare distinti domini all’interno dello stesso account Analytics?
    Anche in questo secondo caso Analytics genera infatti differenti tracker codes (UA-XXXXXXXXX-1, UA-XXXXXXXXX-2 e così via) e in più non si perderebbe il legame 1-1 con eventuale account AdWords.

    Leonardo

  8. lo dice chiaramente: ci vogliono più account, e un profilo-somma

  9. Ciao Marco,
    complimenti davvero per il tuo blog…sarebbe da stampare ogni singolo post per custodirlo con cura! 😉

    ho un quesito per un problema che non riesco a risolvere… come mi devo comportare in una situazione come questa?

    ho un sito web di e-commerce che ha 5 sezioni al suo interno, dovrei tracciare le transazioni di acquisto separatamente ed avere il totale.

    la struttura del sito web è la seguente:

    http://www.indirizzositoweb.com/sezione_1
    http://www.indirizzositoweb.com/sezione_2
    http://www.indirizzositoweb.com/sezione_3
    http://www.indirizzositoweb.com/sezione_4
    http://www.indirizzositoweb.com/sezione_5

    é possibile tracciare separatamente ogni sezione ed avere anche il totale?

    grazie mille

  10. con differenti codici di monitoraggio si, è esattamente l’argomento del post (devo pensarci meglio). Con un unico codice di monitoraggio, e filtri sulla subdirectory non saprei. Ho paura che ci possa essere qualche comportamento inatteso coi cookie e le transazioni ecommerce…

  11. Ciao Marco, riguardo al commento #8, mi potresti spiegare il perché? Inoltre, è possibile avere un piccolo aggiornamento del codice di modo da utilizzare lo snippet asincrono?

    Grazie

  12. Ciao Marco,
    pur avendo seguito l’impostazione che suggerisci ed avendo poi inserito la funzione link() per il passaggio cookie da un dominio all’altro, continuo a vedere il sito a.it come referral del sito b.it e come referral di se stesso.

    Questo il codice sul dominio a.it

    try {
    var pageTracker = _gat._getTracker(“UA-XXXX480-1”);
    pageTracker._setAllowHash(false);
    pageTracker._setDomainName(“.a.it”);
    pageTracker._setAllowLinker(true);
    pageTracker._trackPageview();
    var rollupTracker = _gat._getTracker(“UA-XXXXX630-1”);
    rollupTracker._setAllowHash(false);
    rollupTracker._setDomainName(“.a.it”);
    rollupTracker._setAllowLinker(true);
    rollupTracker._trackPageview();
    }

    Questo sul b.it

    try {
    var pageTracker = _gat._getTracker(“UA-XXXXX606-1”);
    pageTracker._setAllowHash(false);
    pageTracker._setDomainName(“.b.it”);
    pageTracker._setAllowLinker(true);
    pageTracker._trackPageview();
    var rollupTracker = _gat._getTracker(“UA-XXXXX630-1”);
    rollupTracker._setAllowHash(false);
    rollupTracker._setDomainName(“.b.it”);
    rollupTracker._setAllowLinker(true);
    rollupTracker._trackPageview();
    }

    Mi confermi che l’impostazione è corretta? Utilizzando GA Debug con console di Chrome il Visitor ID viene correttamente passato (è lo stesso su entrambi i domini). Ma i referral restano lì.

  13. mi sembra corretta. Tieni conto che nel frattempo _setAllowHash è stata deprecata, anche se non credo abbia influenza…

  14. Ciao Marco,
    ottimo articolo.
    Purtroppo sono un poco duro a capire.
    La mia situazione è la seguente:
    http://www.miodominio.com
    blogs.miodominio.com

    Ho un account GA e devo fare una statistica del solo traffico del dominio primario e del solo blogs.
    Ho creato due profili e creato due filtri personalizzati, ma non riesco a capire come fare un grafico che mi faccia vedere quanto mi è stato chiesto.
    grazie

  15. due profili con due codici diversi? non ti serve niente, son già separati. un solo codice per tracciare tutto, con _setdomainName? fai due profili-clone, ognuno con un filtro sul nome host, e sei a posto. Ogni profilo contiene solo gli accessi a cosa traccia.

  16. Ciao Marco,
    ma questa cosa è ancora valida con i track asincroni nuovi?

    Potrebbe essere così il codice?

    var _gaq = _gaq || [];
    _gaq.push([‘_setAccount’, ‘UA-AAAAAAAA-1’]);
    _gaq.push([‘_setDomainName’, ‘a.it’]);
    _gaq.push([‘_trackPageview’]);

    var rollupTraker = _gaq || [];
    _gaq.push([‘_setAccount’, ‘UA-XXXXXXXX-1’]);
    _gaq.push([‘_setDomainName’, ‘a.com’]);
    _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);
    })();

  17. grazie! =)

Scrivi un Commento