Compteur de clic sur lien en dur

  • Auteur de la discussion Auteur de la discussion Helldream
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

J'aimerais compter les clics sur les liens sortants de mon site tout en gardant des liens en durs pour ne pas pénaliser leur référencement. Pour le moment j'utilisais une redirection en javascript de ce genre :
Code:
<a href="http://www.site.com" onclick="javascript:location.href='comptage.php?url="http://www.site.com"'; return false;">Lien</a>
Bien sûr la page comptage.php incrémentait un compteur et redirigeait le visiteur sur la page demandée. Cependant, je me suis rendu compte que Google suivait la redirection javascript, et indexait la page comptage.php au lieu de la cible du lien...

Existe-t'il d'autres techniques qui permettrait de faire ce comptage sans gêner le pénaliser le référencement des sites que je pointe ? Est-ce qu'en utilisant de l'Ajax, cela résoudrait le problème? Utiliser Google analytics ne m'intéresse pas puisque je voudrais afficher ces statistiques sur mon site afin qu'elles soient consultables par des membres.

Merci d'avance!
 
Nouveau WRInaute
1-sponsor > Merci de ta réponse, mais je pense que tu n'as pas bien saisi le sens de ma questions : Je ne demande pas "comment faire un compteur de clic en javascript" (d'ailleurs mon message ne serait pas dans cette section dans ce cas), mais EST-CE QUE un compteur en Ajax permettrait de faire un compte sans gêner le référencement de mes liens sortants. Car comme manifestement Google suit les liens du genre "javascript:location.href=", je me demandais si le fait de faire un compteur en Ajax, utilisant donc du javascript, changerait quelque chose à mon problème ;)
 
WRInaute passionné
Ha :-) effectivement j'avais compris que tu cherchais une autre technique...

Bah moi je te conseil de faire un fichier
Code:
monCompteur.js
inclus dans ta page avec une fonction
Code:
compterLeClic(lien) { ... }
, donc, bien dans un fichier externe... et dans ton lien mettre
Code:
<a href="http://dudule.com" onclick="compterLeClic(dudule);">dudule</a>
... c'est la technique qui me semble la plus sûr niveau référencement ;)

si tu ne vois pas comment procéder, la je te renvoi à mon lien précédent ;)
 
Nouveau WRInaute
OK je vais essayer ça, pas de soucis pour la réalisation :)

Par contre est-il utile d'interdire l'accès au fichier .js à Google au niveau du robots.txt?
 
WRInaute accro
Ptite question complementaire :

j'ai ca dans mon code :

Code:
<a href="http://<?=$url?>" onclick="javascript:location.href='xxx_comptage_clic.php?url=http://<?=$url?>&amp;url_id=<?=$id?>'; return false;" target="_blank" title="<?=$tab_traduction[4]?>">

Sauf que mon target blank il en veux plus depuis que y a le on clic ...

Y a une syntaxe particuliere pour que le onclick soit en target blank ?

Pour info si ca aide, dans xxx-comptage, la page est appelée par un header ()
 
WRInaute passionné
Bah ouai parce que tu fais location.href... qui veut dire "changer l'adresse de la page", regarde plutôt du coté de "window.open" qui signifie "ouvrir fenêtre" *

* bilingue ici ^^ 'tention !
 
WRInaute accro
heu ...

1 _ on le met ou ce window open ?

2 - mais du coup la page affichée va pas declencher les foudres anti pop up des navigateurs ?
 
WRInaute passionné
Les anti-popup sont malins pour ce coup et détecter que l'action "open" est déclenchée par un clic "onclick" ;) mais c une bonne question ! :)
 
WRInaute accro
a la place du location.href ;)

Code:
<a href="http://<?=$url?>" onclick="javascript:window.open('http://




Helldream a dit:
Cependant, je me suis rendu compte que Google suivait la redirection javascript, et indexait la page comptage.php au lieu de la cible du lien...


>>> "à la place de..." ??? Pas du tout d'accord.
 
WRInaute accro
HawkEye a dit:
Bé... Testé avec succès depuis la nuit des temps (out.php sur idX) ;)
ben moi quand je lui fait ca le lien ne fait plus rien du tout, il va meme plus sur la page demandée ...

voila le code dans son integralité :

Code:
<a href="http://<?=$url?>" target="_blank" onclick="javascript:location.href='xxx_comptage_clic.php?url=http://<?=$url?>&amp;url_id=<?=$id?>'; return false;" title="<?=$tab_traduction[4]?>">

Il marche tres bien, execute bien comptage, execute bien le header de fin dans comptage mais pas de nouvelle page. Et quand je remplace, ben il fait plus rien du tout !
 
WRInaute accro
Voici la solution que j'utilise. Elle ne compte pas les clics que des robots pourraient générer puisqu'il n'y a aucun lien à suivre.
Code:
function clk(id)
{ 
	(new Image()).src="/includes/count.php?id="+id; return true; 
}
Code:
<a href="http://www.monsite.com/" title="" onclick="return clk('8');">ancre</a>

C'est juste un petit code en javascript qui va simuler la création d'une image mais en fait, va faire appel à un fichier php avec en paramètre l'id du lien en bdd.
 
WRInaute accro
Sur le site en question ,les bots ne sont pas un probleme (ils sont filtrés et identifiés comme tels en amont et donc leurs passages ne sont deja pas decomptés. Mon pb c'ets ce p.... de target blank :mrgreen:
 
WRInaute accro
J'utilise le target blank aussi, je le rajoute comme ça et ca fonctionne ^^

Code:
<a href="http://www.monsite.com/" target="blank_" title="" onclick="return clk('8');">ancre</a>
 
WRInaute accro
C'est a y rien piger ... voila un copier coller du source :

Code:
<a href="http://yagoort.org" target="blank_" onclick="javascript:location.href='xxx_comptage_clic.php?url=http://yagoort.org&amp;url_id=9'; return false;" title="Visiter le site">

et pas de target blank ... ou que soit le _
 
WRInaute accro
C'est normal avec ta technique. location ouvre le lien dans la page courrante, le target est pas pris en compte. Essaie la manière que j'utilise peut-être ?
 
WRInaute accro
j'ai trouvé ... en fait pour etre honnete j'ai pompé !

chez l'ami hawk ...

Code:
<a href="http://yagoort.org" target="blank_" onclick="javascript:window.open('xxx_comptage_clic.php?url=http://yagoort.org&amp;url_id=9'); return false;" title="Visiter le site">

et ca marche ... il manquait les ( ) apres window.open ... manifestement le = marche avec location mais pas avec window ...
 
WRInaute accro
voir plus haut ... bien sur que le target sert plus a rien c est un reliquat de avant le on click
 
WRInaute accro
YoyoS a dit:
Voici la solution que j'utilise. Elle ne compte pas les clics que des robots pourraient générer puisqu'il n'y a aucun lien à suivre.
Code:
function clk(id)
{ 
	(new Image()).src="/includes/count.php?id="+id; return true; 
}
Code:
<a href="http://www.monsite.com/" title="" onclick="return clk('8');">ancre</a>

C'est juste un petit code en javascript qui va simuler la création d'une image mais en fait, va faire appel à un fichier php avec en paramètre l'id du lien en bdd.

Ca m'plaît ton truc... vais creuser !
 
WRInaute passionné
Technique que je connaissais et que j'avais vu pour le comptage sur le bon vieux dinosaure : Categorizator. :)
 
WRInaute accro
Et oue comme quoi faut pas réinventer la roue :P
En plus méthode fonctionnelle à 100% avec tous les navigateurs principaux :)
 
WRInaute accro
Waip mais c'est peut-être plus léger que le chargement d'un "out.php" + SQL + 301.
Vais tester et probablement t'en demander plus par MP (mais pas à 1h du matin)
 
Discussions similaires
Haut