• Moderatore

    Javascript Codice Google Analitics

    Ciao a tutti

    Come molti di voi sapranno il codice di google analitics non è altro che un javascript.

    Vi posto il codice:

    *<script type="text/javascript">*
    *var gaJsHost = (("https:" == document.location.protocol) ? "**https://ssl*](https://ssl/)*." : "**http://www*](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-5600428-1");*
    *pageTracker._trackPageview();*
    *</script>
    *
    ```Come vedete è un semplice codice in 2 parti.
     
    Per facilitare la validazione html e semplificare un po' il sito ho deciso di racchiudere il codice in un file.js chiamato analitics.js e di richiamarlo in tutte le pagine.
     
    Questo è il contenuto del file:
    *```
    **var gaJsHost = (("https:" == document.location.protocol) ? "**https://ssl*](https://ssl)*." : "**http://www*](http://www)*.");*
    *document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));*
    *var pageTracker = _gat._getTracker("UA-5600428-1");*
    *pageTracker._trackPageview();*
    
    

    Questo è come lo richiamo:

    
    <script type="text/javascript" src="../stile/analitics.js"></script>
    
    ```Secondo voi è scritto bene? Manca qualcosa?
    Io non sono molto espert di javascript ma penso che dovrebbe funzionare allo stesso modo di lightbox, ho semplicemente tolto l' intestazione script in html.
     
    Se qualcuno ha qualche consiglio è sempre bene accetto
     
    Grazie :ciauz:

  • Moderatore

    Non funziona!!!

    Oggi ho controllato le visite del mio sito ed erano ugualia quelle di ieri mattina!

    Eppure un javascript dovrebbe funzionare anche in un file.js, propio come lightbox, no?

    Qual'è il problema?

    Perfavore ditemelo prima possibile
    Grazie


  • Moderatore

    Ciao a tutti
    Ormai sono 3 giorni che le mie stats sono quasi a 0

    Dico quasi perchè, se prima mi segnava oltre 400 visite al giorno ora me ne segna tra le 10 e le 20!

    Quindi vuol dire che un po' funziona, anche perchè sono sicuro di aver sostituito il codice col file.js in tutte le pagine....


  • User Attivo

    Ora, non vorrei rispondere una stupidaggine, quindi prendi con le pinze quello che ti sto per dire.

    Se non ricordo male i sistemi di statistiche lato client (ovvero non basati sui log del server ma sulla navigazione effettuata dall'utente tramite il browser) hanno la necessità di incorporare il codice di controllo alla fine della pagina. Questo perchè si deve essere certi che lo script venga eseguito SEMPRE alla fine del caricamente dell'albero DOM della pagina da parte del browser. Questo assicura agli script di analisi, il corretto conteggio.
    Se non ricordo male, se includi il codice js da un file esterno lo puoi fare solo nell'head html (giusto?), in questo caso per avere lo script funzionante potresti chiuderlo in una funzione da chiamare sull'evento onLoad="funzione();" del tag Body.

    Non garantisco nulla 😛


  • Moderatore

    Ciao Meryk,
    innanzitutto grazie della risposta, ormai avevo quasi perso le speranze. 😄

    Ti spiego la situazione:
    Ho tolto in tutte le pagine il codice analitics (che avevo messo tra head e body, è sbagliato ma funziona comunque) e ho messo nell' head la seguente dicitura:

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

    Però non lo richiamo nel body, credevo fosse automatico.
    Invece tu mi dici che alla fine dovrei scrivere una funzione per "caricare" il file javascript, corretto?

    Saresti così gentile da scrivermi il codice per intero così che posso aggiungerlo?(lo aggiungo alla fine del body?)

    Immagino sia una cosa tipo onLoad="="../stile/analitics.js", giusto?

    Grazie Mille :ciauz:


  • User Attivo

    @Ivan88 said:

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

    Però non lo richiamo nel body, credevo fosse automatico.
    Invece tu mi dici che alla fine dovrei scrivere una funzione per "caricare" il file javascript, corretto?

    Il codice lo carica sicuramente, nel senso che hai semplicemente spostato il codice in un file esterno, e aggiunto un'inclusione nell'head.
    Il vero problema è quando il browser lo esegue!

    Se non ricordo male, affinchè funzioni correttamente, lo script di analytics deve essere eseguito quando l'albero DOM della pagina è completamente caricato dal browser. Questo è il motivo per il quale si mette appena prima della chiusura del body: essendo il codice interpretato in maniera sequenziale dal browser, se lo metto prima della fine sono certa che il resto lo ha già interpretato prima!
    Se lo includi nell'head, non sai esattamente quando lo esegue (se prima o dopo aver completato l'albero dom della pagina), motivo per il quale a volte funziona, a volte no!

    Ripeto, questa è una mia elucubrazione mentale, magari è una sciocchezza clamorosa.

    Francamente il mio consiglio è di lasciarlo lì, come dice SanGoogle, che detta tra me e te, di web se ne intende 😄

    Se vuoi fare una prova, giusto per sfizio, io farei così:
    Nel file esterno metti:

    function analyticsCode(){
    var gaJsHost = (("https:" == document.location.protocol) ? "*https://ssl](https://ssl/)
    ." : "*http://www](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-5600428-1");
    pageTracker._trackPageview();
    }

    e nel tag body

    <body onload="**analyticsCode();**">....</body>
    
    ```Fammi sapere se funziona :D
    
    ciao e buona giornata
    meryk

  • Moderatore

    Grazie sei stata chiarissima, proverò per vedere se funziona:
    Comunque c'è una cosa che non capisco nel codice che mi hai scritto:

    function analyticsCode(){
    var gaJsHost = (("https:" == document.location.protocol) ? "*https://ssl](https://ssl/)
    ." : "*http://www](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-5600428-1");
    pageTracker._trackPageview();
    }

    La parte che ho grassettato non andrebbe eliminata? Nel senso che sono già in un file js quindi è ovvio che il linguaggio è javascript

    In attesa di una tua risposta lo copio così com'è
    Ciao :ciauz:


  • User Attivo

    si! scusa 🙂


  • Moderatore

    Non funziona, purtroppo impalla explorer.
    In pratica si carica la pagina ma poi il mouse si blocca e la pagina diventa bianca.
    Sotto, nella barra, vedo scritto caricando google/ga.js o qualcosa del genere.
    Nella maggior parte dei tentativi però la pagina è visualizzata normale ma non riesco a cliccare su niente e vedo il filtro antiphishing che lavora.

    Con FF invece nessun problema, ma penso perchè ho i js disattivati.

    E' un vero peccato....

    Tornerò al codice analitics a fondo del body

    Grazie lo stesso per il tuo aiuto