J'utilise HTML 5 Historique pour mon site, afin que les utilisateurs dont les navigateurs prennent la soutien, en cliquant sur un lien ne rechargez pas la page entière, mais juste la zone principale. P>
Google Analytics ne suit pas ces charges de page partielle. Comment puis-je l'obtenir pour le suivre comme si cela fait pour les utilisateurs qui n'ont pas de support HTML 5 Historique? P>
3 Réponses :
Vous devez simplement enregistrer les vues complémentaires en appelant la fonction _trackpageview code> à chaque fois que votre nouveau contenu est chargé. Ceci s'appelle une «page virtuelle» mais est enregistrée dans Google Analytics de la même manière qu'un réel. Pour définir le chemin de la page, vous devez ajouter un paramètre supplémentaire à la fonction:
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_trackPageview', '/new/content']);
Comment l'appellerais-je chaque fois que le contenu se charge? Dois-je recharger l'ensemble du script avec la nouvelle URL remplaçant '/ nouveau / contenu' dans ce qui est retourné via Ajax?
Il suffit de l'appeler sur fenêtre.popstate comme décrit ici ici développeur.mozilla.org/ EN-US / DOCS / DOM / WINDOW.ONPOPSTE - Si vous utilisez History.js Github .Com / Balupton / History.js (recommandé) Vous mettez dans votre rappel d'événement «Statechange». Google a mis en place sa propre méthode 'Push' '- qui appelle une page sur Google en arrière-plan pour transmettre vos données personnalisées.
Ceci est pour le nouveau code de suivi universel.
Donc, je devais revisiter ma propre réponse pour un nouveau projet. J'ai remarqué des problèmes que je devrais nettoyer. P>
Envoyer une pageView Programmatiquement, vous souhaitez envoyer uniquement le chemin et la requête, par exemple. Pour Certains spas utilisent des hashbangs ( Le La version antérieure de ma solution était erronée et échouerait pour toutes les URL qui avaient un hachage dans l'URL. Aussi, comme j'utilisais jQuery + History.js Plugin Ma solution était sur l'écoute de Utilisez ce nouveau code pour envoyer une pageView. Il est plus résilient et s'adresse aux hachambnbangs et à l'histoire. P> Si vous n'utilisez pas de hashbangs spécifiquement, changez simplement La deuxième partie de ceci est la détection lorsque l'URL change. Pour cela, vous devrez découvrir des documents de toute la bibliothèque que vous utilisez. P> pour jQuery + historique.js plugin, le code ci-dessous fonctionne p> Plus d'informations Vous trouverez plus d'informations sur https: // développeurs. google.com/analytics/devGuides/collection/analytics/Analyticsjs/single-page-Applications P> http://example.com/path/to/resource?param=1 code> Nous enverrons
/ chemin / à / ressource? param = 1 code>. p>.
#! code>) pour leurs URL. Nous devons donc envoyer n'importe quoi après le hashbang. par exemple.
http: //example.com#! chemin / à / à / ressource code> Nous allons envoyer
/ chemin / à / ressource? param = 1 code>. P>
statechange code> est venu de là. P>
hashbang = "#!", code> pour correspondre par exemple
hashbang = "# @", code> p>
P> $(window).on('statechange', function() {
var loc = window.location,
page = loc.hash ? loc.hash.substring(1) : loc.pathname + loc.search;
ga('send', 'pageview', page);
});
Comme Ewan déjà indiqué, vous devez envoyer la pageView à Analytics dans l'événement Window.Popstate.
Donc, dans JavaScript plain, si vous avez appelé: Vous devez simplement ajouter: p> réellement le nouveau code de suivi universel obtient automatiquement l'URL actuelle, vous n'avez donc pas besoin de passer le paramètre supplémentaire. p> p>
Sauf lorsque vous utilisez des hashbangs.