2009-07-15 7 views
24
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")); 

try 
{ 
    var pageTracker = _gat._getTracker("UA-XXXXXXX-1"); 
    pageTracker._trackPageview(); 
} 
catch(err) {} 

Sarebbe possibile chiamare questo script da un file JS esterno? Volevo qualcosa di simile:È possibile inserire il codice di Google Analytics in un file JS esterno?

<script type="text/javascript" src="googleanalytics.js" ></script> 

e inserire uno di questi in ciascuna delle mie pagine HTML.
Il codice che ho sopra sarà all'interno di googleanalytics.js
le istruzioni di Google era di mettere il codice in ogni pagina. Il problema è che rende più difficile cambiare il codice di monitoraggio. (Utilizziamo codici di tracciamento diversi per le nostre pagine DEV e PROD).
L'ho provato e non sembra funzionare.
C'è qualcosa di sbagliato nel farlo? O c'è qualcos'altro che causa il problema?

Importante FYI Si prega di notare che stiamo usando IE6 e 8 browser (sì, lo so, non c'è bisogno di dirmi)

risposta

14

Sì, questo è possibile. Se non funziona, c'è qualcos'altro che sta succedendo.

Solo un pensiero, Google Analytics è di solito circa un giorno indietro nei rapporti, quindi quando si apportano modifiche ci vorrà del tempo prima di sapere che funziona. Quello che mi piace fare è premere una pagina che non riceve traffico molto spesso per assicurarmi che il mio monitoraggio sia impostato correttamente.

Inoltre, si potrebbe provare a rendere il collegamento un collegamento assoluto nel tag <script. Potrebbe essere solo cercare nel posto sbagliato per il codice di analisi.

+0

Sì, sono a conoscenza del fatto che GA è un giorno indietro, il problema è che non sta registrando alcun hit anche se sono passati 4 giorni da quando ho applicato il codice e ho navigato attraverso il sito DEV tutto il giorno per tutti i 4 giorni, risolvendo bug e materiale. Speriamo che fosse qualcosa di sbagliato nella registrazione o qualcos'altro. Cercheremo di ri-applicare per un nuovo codice di monitoraggio e vedere cosa succede allora. Grazie per la rassicurazione! – Nikko

+0

Quando si dice che non sta registrando hit dal tuo sito DEV, il tuo URL del sito DEV è qualcosa come: http: // miocomputer/ Se è così, mi sembra che Google filtra gli hit provenienti da nomi di dominio che non sono completamente qualificato. Almeno, sembra essere quello che sta succedendo con i miei test. Prova ad accedere al sito DEV utilizzando: http://mycomputer.mycompany.com/ e controlla se gli hit iniziano la registrazione. – slolife

+0

Il sito dev è ospitato altrove, con il proprio dominio e tutto, e non è ospitato localmente sulla macchina che sto utilizzando. Il problema è che il server di sviluppo in cui sono ospitati i file ha già funzionato prima con google analytics con un altro sito, sebbene quel sito non abbia usato lo script JS esterno a cui mi riferisco qui. – Nikko

0
codice

Wrap google in funzione ed eseguire su ogni pagina;)

4

Non si può usare la lingua lato server per emettere il codice in fondo a ciascuna pagina? Avere una funzione come output_ga() e chiamarla. In questo modo puoi cambiarlo in un unico posto.

+1

La società per cui lavoro preferisce che io non utilizzi nessuno scripting sul lato server per questo, quindi questo è fuori questione. Se dipendesse da me, questo sarebbe esattamente come lo farei. – Nikko

1

Questo funzionerà se dividi lo script in 2 script allo stesso modo in cui Google Analytics ha diviso lo script tradizionale in 2 tag di script.

3

Mi sono imbattuto in questo post durante il tentativo di risolvere un problema simile. Dopo la ricerca più mi sono imbattuto in un altro post che ha funzionato per me:

Using Google Analytics asynchronous code from external JS file

ho dovuto spostare il var _gaq al di fuori della funzione è stato nel modo che è diventato globale.

Spero che questo aiuti!

0

@Nikko

Una possibile ragione è perché l'account GA è stata creata usando le vecchie analisi. Pertanto, è necessario utilizzare il codice analitico tradizionale ga.js (_gaq.push). Ho trovato un'incompatibilità nell'utilizzare il nuovo analytics.js con l'account GA tradizionale nel sito Web di GA. I colpi non appariranno quindi sono stato costretto a usare il tradizionale ga.js.

Inoltre, è possibile impostare una funzione di callback per assicurare i colpi vengono inviati correttamente, come di seguito:

//traditional way 
_gaq.push(['_set', 'hitCallback', function() { 
    console.log("%c ga.js finished sending pageview data to analytics %s ", "color:black; background: pink", pageviewUrl); 
}]); 

//new analytics way 
ga('send', 'pageview', { 
      'page': pageviewUrl, 
      'hitCallback': function() { 
       console.log("%c analytics.js done sending data. pageview url = %s ", "color: black, background: pink", pageviewUrl); 
      } 
     }); 

dove pageviewUrl = l'url del sito

Speranza che aiuta!

Problemi correlati