Tracker une URL contenant une ancre

WRInaute occasionnel
Bonjour,

Est-il possible de tracker une URL contenant une ancre (#) ?
Les résultats sont-ils totalement comptabilisés dans Google Analytics ?

En d'autre terme, une URL comme celle-ci : *www.divosea.com/fr/actualites/bons-plans-divosea-16.html#country3?utm_source=newsletter&utm_medium=bp16&utm_campaign=201202, est-elle correctement construite ?

Merci.
 
WRInaute discret
Bonsoir,

Alors, plusieurs éléments de réponse :

1/ Attention à la fonction attribuée à l'ancre
La présence des tracking codes dans la partie ancre dénature celle-ci de sorte que la fonction de positionnement dans la page (fonction initiale de l'ancre dans une url) ne se réalisera pas, ni possiblement celle de transmettre des paramètres Ajax ou Flash.

Pour obtenir le positionnement souhaité, il faut simplement indiquer au navigateur l'ancre "filtrée" des tracking codes :
Code:
window.location.replace(ancre_filtree);
De ce que j'ai pu tester, cela ne recharge pas la page, mais positionne seulement la page au bon endroit.

Malheureusement, cela court-circuite la reconnaissance des tracking codes par le marqueur, du fait du mode asynchrone de ce dernier. Aussi, dans le cas de son utilisation dans sa définition originelle, il faut envisager de faire scroller la page jusqu'à l'ancre, notamment avec une fonction jquery du type :
Code:
$('html, body').animate({*:*}, 500);
D'autres stratégies sont envisageables, mais sont assez lourdes.

2/ Attention à filtrer manuellement les tracking codes de l'ancre.
L'url virtuelle à transmettre au marqueur doit être celle filtrée des tracking codes présents, grâce à un code du genre :

Code:
var url = document.URL;
url = url.replace(new RegExp("[?&]?utm_source=[^&]*", "g"), "");
url = url.replace(new RegExp("[?&]?utm_medium=[^&]*", "g"), "");
url = url.replace(new RegExp("[?&]?utm_content=[^&]*", "g"), "");
url = url.replace(new RegExp("[?&]?utm_term=[^&]*", "g"), "");
url = url.replace(new RegExp("[?&]?utm_campaign=[^&]*", "g"), "");
...
_gaq.push(['_trackPageview', url]);

Attention :!: : le code proposé dans la référence de "loic" provoque l'enregistrement des tracking codes dans l'ancre qui seront affichés alors dans des rapports. Il faut donc pouvoir les filtrer au préalable. Le marqueur réalise ce filtrage au niveau de l'url de la page quand les tracking codes sont dans les paramètres, et supprime l'ancre qui n'est pas par défaut transmis par le marqueur.
En revanche, le marqueur n'effectue aucun nettoyage de l'url virtuelle explicitement indiquée dans "_trackPageview()".

4/ Attention à la prise en compte des tracking codes dans l'ancre
Evidemment vous avez indiqué au marqueur qu'il fallait récupérer les tacking codes dans la partie "ancre" grâce à l'instruction "_setAllowAnchor()".

5/ Attention à la syntaxe dans l'ancre
Les tracking codes seront reconnus pour cette syntaxe d'url :_www.divosea.com/fr/actualites/bons-plans-divosea-16.html#country3&utm_source=newsletter&utm_medium=bp16&utm_campaign=201202

Celle proposée avec le ? ne le permet pas, elle n'est pas correcte.


Conclusion : chercher à enregistrer une url avec son ancre nettoyée des tracking codes à prendre en compte, avec éventuellement le positionnement de la page par rapport à cette ancre, est un problème à trois faces difficile à résoudre simplement.


Nicolas de Ranking Metrics.
 
Discussions similaires
Haut