L'utilisation de Google Analytics code asynchrone de fichier JS externe
J'essaie d'ajouter de la version asynchrone du code de suivi Google Analytics pour un site web.
J'aimerais garder le JavaScript dans un fichier séparé, et de l'appeler à partir de là.
Voici ce que j'ai actuellement suis dans mon .fichier js:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function loadtracking() {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_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);
})();
}
addLoadEvent(loadtracking);
Et voici ce que j'ai dans le <head>
étiquette de mon Master page:
<script type="text/javascript" src="js/google-analytics.js" ></script>
Cependant, il y a évidemment un problème car après quelques jours, je ne reçois pas les stats à travers!
Toutes les idées que j'ai besoin de changer?
Grâce,
Neil
EDIT: Ok... Après certains commentaires ci-dessous, je vais ajouter la nouveau contenu actuel de mon .fichier js. Je vais le garder à jour, de sorte que si/quand cela se résolu, il sera, nous l'espérons aider d'autres personnes qui essaient de faire des choses similaires.
var _gaq = _gaq || [];
function loadtracking() {
window._gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
window._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);
})();
}
loadtracking();
- Est-ce possible pour résoudre votre problème? Je suis en cours d'exécution dans la même question, bien que j'ai eu mon var _gaq défini à l'échelle mondiale dans le .fichier js. Merci.
- Aussi loin que je me souvienne, oui il l'a fait. Pour être honnête, pour la plupart des applications, je vous suggère de suivre les conseils ci-dessous et de mettre le code directement dans le document... C'est une exigence pour ce projet spécifique qu'il était dans un fichier séparé, qui peut ou peut ne pas être le cas avec vous.
- J'ai lu beaucoup de semblables discussions sur et avoir vu des gens dire il n'y a pas de problème avec elle d'autre qu'une possibilité d'un léger retard dans le chargement du script, tandis que d'autres ont dit que cela va ruiner ma vie et de me condamner à l'enfer. J'en ai besoin pour passer dif valeurs en fonction de la page affichée, et que vous souhaitez conserver les modifications de code dans un seul fichier plutôt que sur chaque page du site. Il semble fonctionner très bien, mais si vous pouvez vous souvenir de tous les problèmes que vous avez couru dans, laissez-moi savoir. L'apprécier.
Vous devez vous connecter pour publier un commentaire.
Votre définition de la variable
var _gaq
est à l'intérieur d'une fonction. Cela signifie qu'il est configuré localement à l'intérieur de cette fonction et de ne pas exister à l'échelle mondiale. Google Analytics dépend de la variable globale_gaq
. Si vous voulez le garder à l'intérieur d'une fonction comme ça, de référence commewindow._gaq
.Vous complètement à côté de la question de l'asynchrone code de suivi. Ne pas le placer dans un fichier externe, parce que c'est exactement comme y compris le vieux synchrone GA.
Et surtout ne pas reporter le code de suivi à
window.onload
comme il peut le feu trop tard.Si vous utilisez le asynchrones GA juste le mettre dans le haut de votre document dans un script en ligne de la balise. C'est le recommandation sur Google Analytics site web ainsi.
Honnêtement, je n'ai pas lu tous ces messages, car ils sont assez vieux. Cependant, j'ai récemment eu le besoin d'ajouter Gtag (google gestionnaire de balises de suivi google analytics) à un vieux site web qui a été un 1000 des fichiers HTML statiques et (HEUREUSEMENT) un les fichiers html ont une seule inclure fichier js pour le widget de la barre de menu, comme je l'ai dit très ancien site! Pour ma part je n'étais pas inquiet au sujet de la performance mais la mesure de la circulation, de sorte que nous pouvons migrer. votre cas peut être différent mais le code ci-dessous va travailler pour js externe comprend de Gtag.
J'ai utilisé ce fichier pour charger le code ci-dessous depuis le code ci-dessus est pour l'héritage ga.js