2009-07-15 6 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) {} 

Serait-il possible d'appeler ce script à partir d'un fichier JS externe? Je voulais quelque chose comme:Est-il possible de mettre du code Google Analytics dans un fichier JS externe?

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

et de mettre l'un d'entre eux sur chacune de mes pages HTML.
Le code que j'ai ci-dessus sera à l'intérieur googleanalytics.js
Google instructions était de mettre le code dans chaque page. Le problème avec cela est qu'il est plus difficile de changer le code de suivi. (Nous utilisons différents codes de suivi pour nos pages DEV et PROD).
Je l'ai essayé et ça ne semble pas fonctionner.
Y a-t-il quelque chose qui ne va pas? Ou y a-t-il autre chose qui cause le problème?

Pour votre information Important S'il vous plaît noter que nous utilisons IE6 et 8 navigateurs (oui, je sais, pas besoin de me dire)

Répondre

14

Oui, cela est possible. Si ça ne marche pas, il se passe autre chose. Il suffit de penser que Google Analytics a généralement un jour de retard sur la création de rapports. Par conséquent, lorsque vous effectuez des modifications, cela prend du temps avant que vous sachiez que cela fonctionne. Ce que j'aime faire est de cliquer sur une page qui n'obtient pas de trafic très souvent pour m'assurer que mon suivi est correctement configuré. En outre, vous pouvez essayer de faire du lien un lien absolu dans votre tag <script. Il pourrait juste regarder au mauvais endroit pour le code d'analyse.

+0

Oui, je suis au courant que GA est à la traîne, le problème est qu'il n'enregistre pas de hits même si ça fait 4 jours que j'ai appliqué le code et que j'ai navigué sur le site DEV toute la journée pour l'ensemble des 4 jours, la correction des bugs et d'autres choses. Espérons que c'était quelque chose de mal avec l'enregistrement ou autre chose. Nous allons essayer de faire une nouvelle demande pour un nouveau code de suivi et voir ce qui se passe ensuite. Merci pour la ré-assurance! – Nikko

+0

Lorsque vous dites qu'il n'enregistre pas les hits de votre site DEV, votre URL de site DEV est-elle quelque chose comme: http: // mycomputer/ Si oui, il me semble que Google filtre les hits provenant de noms de domaine qui ne sont pas complètement qualifié. Au moins, cela semble être ce qui se passe avec mes tests. Essayez d'accéder au site DEV en utilisant: http://mycomputer.mycompany.com/ et voyez si les hits commencent à s'enregistrer. – slolife

+0

Le site de développement est hébergé ailleurs, avec son propre domaine et tout, et n'est pas hébergé localement sur la machine que j'utilise. Le problème est que le serveur de développement où les fichiers sont hébergés a déjà travaillé avec Google Analytics avec un autre site, bien que ce site n'utilise pas le script JS externe auquel je fais référence ici. – Nikko

0

Wrap google code en fonction et exécuter sur chaque page;)

4

Ne pouvez-vous pas utiliser votre langage côté serveur pour afficher le code au bas de chaque page? Avoir une fonction telle que output_ga() et l'appeler. De cette façon, vous pouvez le changer en un seul endroit.

+1

La société pour laquelle je travaille préfère que je n'utilise aucun script côté serveur pour cela, donc c'est hors de question. Si cela ne tenait qu'à moi, ce serait exactement comment je le ferais. – Nikko

1

Cela fonctionnera si vous divisez le script en 2 scripts de la même manière que Google Analytics a divisé le script traditionnel en 2 tags de script.

3

Je suis tombé sur ce post en essayant de résoudre un problème similaire. Après la recherche plus loin, je suis tombé sur un autre poste qui a fonctionné pour moi:

Using Google Analytics asynchronous code from external JS file

je devais déplacer le var _gaq en dehors de la fonction, il était en sorte qu'il est devenu mondial.

Espérons que cela aide!

0

@Nikko

Une raison possible est que le compte GA a été créé en utilisant les anciennes analyses. Vous devez donc utiliser le code analytique traditionnel ga.js (_gaq.push). J'ai trouvé une incompatibilité dans l'utilisation de la nouvelle analytics.js avec le compte GA traditionnel dans le site Web GA. Les hits n'apparaîtront pas alors j'ai été obligé d'utiliser les ga.js. traditionnels

En outre, vous pouvez définir une fonction de rappel pour assurer les coups sont envoyés avec succès, comme ci-dessous:

//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); 
      } 
     }); 

où pageviewUrl = l'url du site

Hope that helps!

Questions connexes