Détecter quand un internaute quitte une page

Détecter quand un internaute quitte une page - PHP - Programmation

Marsh Posté le 24-07-2006 à 17:08:50    

Bonjour à tous,  
voila j'ai un petit soucis que je n'arrive pas à résoudre
Je suis en train d'effectuer un traceur (ou traqueur au choix :) ) pour un site internet assez important.  
Pour le moment tout fonctionne, que ce soit mémorisation de la page visitée, de l'identifiant de l'internaute logué ou non, si logué on remplace la chaine crée aléatoirement par son login, son ip, etc etc etc ...  
 
Cependant j'aimerais mettre en mémoire le temps resté sur une page ...  
J'ai eu l'idée de faire la différence heure d'arrivée, heure de départ sur la page, mais je ne vois pas comment voir l'heure de départ.
 
Il existe pi etre une meilleure solution à ce pb, genre un chronomètre en javascript ou autre, aucune idée, toute les propositions sont bonnes à prendre si vous avez mieux à me proposer :)  
 
En vous remerkiant :)  
Cordialement Michael..  
 
 [:magnasuprema]

Reply

Marsh Posté le 24-07-2006 à 17:08:50   

Reply

Marsh Posté le 24-07-2006 à 17:12:57    

c'est peut etre possible avec un peu d'ajax : toutes les quelques secondes, un XMLHTTPRequest va mettre a jour la durée durant laquelle one est resté sur la page  
mais ca risque d'etre gourmand en bande passante et en ressources serveur

Reply

Marsh Posté le 24-07-2006 à 17:15:19    

je viens de voir pi etre avec un microtime() faut que j'essai
merci quand même je vais regarder de ce coté la également :)

Reply

Marsh Posté le 24-07-2006 à 17:31:00    

Ba si le visiteur reste sur le même site ça ne pose pas de problème.
 
Tu stock le moment ou il arrive sur la page, ensuite quand il va sur une autre page suffit de regarder s'il était déjà sur une page avant et si oui on fait la différence entre maintenant et le moment ou il est arrivé sur la page d'avant et on enregistre ça.
 
En revanche ça pose problème s'il quitte le site.
 
ET là je ne vois qu'ne seule solution c'est un coup d'ajax avec envoit d'une requête de mise à jour du temps passé sur la page toute x secondes par exempples.
 
Mais c'est un peu lourd pour si peu je trouve.

Reply

Marsh Posté le 24-07-2006 à 17:36:18    

Vi je vais essayer de voir à cela, un traitement des pages vues pour faire en sorte de voir si la page précédente fait parti du site, et si je détecte qu'une page n'a pas de temps alors on est sorti du site et je met un texte du style "sortie" .. ça peut plaire au client aussi ^^  
 

Reply

Marsh Posté le 24-07-2006 à 17:39:41    

Ou un texte du genre :
"Bon écoute mon grand la ça doit être une page pourri parce que c'est déjà le 200eme visiteurs qui quitte le site en la visitant!".

Reply

Marsh Posté le 24-07-2006 à 17:42:34    

mdr ... oui on peut voir ça mais sachant que le client est le numéro 1 mondial d'un certain produit je vais ptet pas m'amuser à foutre en l'air un budget assez colossale hein donc on ce limitera à "sortie" ^^  
 
merci à vous en tout cas, si quelqu'un à une autre idée..

Reply

Marsh Posté le 24-07-2006 à 17:51:37    

Non mais j'étais sérieux! Si les gens quittent tous le site après avoir visité la même page c'est qu'il doit y avoir un problème avec et on pourrait donc penser à le signaler.
 
Bien sur ma phrase quant à elle n'était pas spécialement sérieuse.
 
Sinon pour en rajouter un peu, il faudrait peut être que les liens externes renvoient en premier sur un script qui se charge de prendre en compte la sortie du visiteur et qui ensuite renvoit vers le lien voulu.

Message cité 1 fois
Message édité par dwogsi le 24-07-2006 à 17:52:51
Reply

Marsh Posté le 24-07-2006 à 18:06:53    

dwogsi a écrit :

Non mais j'étais sérieux! Si les gens quittent tous le site après avoir visité la même page c'est qu'il doit y avoir un problème avec et on pourrait donc penser à le signaler.

Sauf si c'est une page servant à se déconecter du site. ;)

Reply

Marsh Posté le 24-07-2006 à 18:12:37    

Oui c'est certain ya certaines pages qui sont plus ou moins destinnées à être visitées avant de quitter le site, donc faudrait les référencer comme telles.
 
Mais disons que si beaucoup de visiteurs quittent le site après avoir lu le même article ça peut devennir une infos intéressante.


Message édité par dwogsi le 24-07-2006 à 18:13:20
Reply

Marsh Posté le 24-07-2006 à 18:12:37   

Reply

Marsh Posté le 24-07-2006 à 18:29:05    

c'est pas top de faire ça en js ... Si le mec a pas de js, a peine arriver tu vas le compter comme parti :/ :/
 
Perso, je voterais:
- tu loggues le couple ID/heure d'arrivé sur une page ( dans un bdd)
- une cron lance un script toutes les X minutes, qui constatent si l'heure actuelle moins la dernière heure pour chaque IP est supérieur au temps estimé ( d'absence devant une page).
Bon evidement si le mec s'endort devant ton site, il sera considéré comme déco mais bon [:spamafote]
 
Si tu tiens absolument a faire ça en js, evite de faire un setInterval, tu peux t'en sortir juste en faisant un xmlHttpRequest sur le onBeforeOnload(marche sur IE&FF, opéra pas testé) de ton body.
ça evitera de bourriner ton serveur.

Reply

Marsh Posté le 24-07-2006 à 18:37:15    

Tiens je me suis jamais servi du onBeforeUnLoad... Est-ce vraiment fiable?

Reply

Marsh Posté le 24-07-2006 à 23:27:39    

dwogsi a écrit :

Tiens je me suis jamais servi du onBeforeUnLoad... Est-ce vraiment fiable?


 
Oui couplé a de l'Ajax sa fait très bien l'affaire ;)

Reply

Marsh Posté le 24-07-2006 à 23:41:39    

Même en cas de fermeture du navigateur ça fonctionne bien? C'est surtout de ça que je voulais parler.

Reply

Marsh Posté le 25-07-2006 à 03:52:50    

dans la methode que tu mettras en place, n'oublie pas les internautes qui , comme moi, ouvrent plusieurs pages en //
et ca ,je vois mal comment le gerer cote serveur ;) ( peut etre avec les referer, mais ca va etre chaud)  
 
donc pense a associer un id autre que le session_id  a chacune de tes requetes

Reply

Marsh Posté le 25-07-2006 à 09:15:15    

Ah non lol moi et le javascript on est pas copains loin de la, donc si je peux me débrouiller avec le cron oui ça peut etre une bonne solution..
Je vais passer la matinée à essayer de voir ce que ça donne ...  
 
Merci encore pour toutes vos réponses :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed