différence: visiteurs uniques et visites

différence: visiteurs uniques et visites - PHP - Programmation

Marsh Posté le 22-01-2006 à 15:24:33    

bonjour a tous, je poste dans cette catégorie parce que je pense que c'est une affaire prog  :)  
 
Pour un site je sais déjà ce qu'est un visiteur unique. Mais comment distingue-t-on les visites uniques des visites normales? parce qu'il me semble qu'un visiteur unique dans une journée peut faire l'objet de plusieurs visites dans cette journée non?
 
merci


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 22-01-2006 à 15:24:33   

Reply

Marsh Posté le 22-01-2006 à 15:29:19    

Par l'ip, mais le problême c'est que dans ce cas des visiteurs avec des ip dynamiques qui se reconnectent sont vus comme des visiteurs différents.
 
Sur xiti pro par exemple, il y à en plus la notion de visiteur "distinct", qui sont controlés par cookie donc dans ce ca son peux parler de vrai visiteurs "distinct", sachant qu'il y à une marge d'erreur d'environ 10% de visiteurs ayant bloqué les cookiies.

Message cité 1 fois
Message édité par Paul JR le 22-01-2006 à 15:30:02
Reply

Marsh Posté le 22-01-2006 à 15:34:31    

Paul JR a écrit :

Par l'ip, mais le problême c'est que dans ce cas des visiteurs avec des ip dynamiques qui se reconnectent sont vus comme des visiteurs différents.


bah normalement c'est le FAI qui attribue l'ip non? donc on est pas censé pouvoir changer d'ip comme on veut  :heink:  


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 22-01-2006 à 16:50:06    

Quand tu te déconnecte / reconnectes, il te génère une nouvelle ip :)

Reply

Marsh Posté le 23-01-2006 à 09:05:03    

et comment tu fais ca? :heink:  Moi, perso, d'un jour au lendemain, j'ai toujours la même IP. Rarement changé d'ip jusqu'à maintenant, 3 ou 4 fois je crois.
 
 
Mais sinon même avec le système de cookie, il me semble qu'un visiteur unique peut tout de même faire plusieurs visites par jour, il me semble. On va dire si il surfe le matin, et puis qu'il y retourne le soir, c'est pas comptabilisé en tant que 2 visites ca?


Message édité par welcominh le 23-01-2006 à 09:07:05

---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 23-01-2006 à 09:25:53    

Si tu es en ip dynamique, celle-ci peut changer d'une connexion à une autre. Mais tes chances sont enormes d'avoir à chaque fois la meme ip.


---------------
MZP est de retour
Reply

Marsh Posté le 23-01-2006 à 10:28:44    

cinocks a écrit :

Si tu es en ip dynamique, celle-ci peut changer d'une connexion à une autre. Mais tes chances sont enormes d'avoir à chaque fois la meme ip.

Pour les "chances énormes", ca dépend du type de connection et du FAI.
Pour les conections RTC (modem standard) tu n'as quasiment aucune chance d'avoir la même adresse IP même en se reconectant dans les secondes qui suivent la déconection.
 
Pour l'adsl, certains FAI proposent des IP fixe et avec eux, tu peux passer 15 jours sans être déconecté, quand tu te reconecteras, t'auras à nouveau la même adresse IP. Pour les autres, t'es susceptible de changer d'adresse IP à chaque déconection même si, en france, ils te redonnent généralement la même si tu te reconectes assez rapidement.

Reply

Marsh Posté le 23-01-2006 à 10:33:59    

pardon, j'ai involontairement exclu les RTC. :D
 
Pour l'adsl, je fais constat de mon experience où j'ai toujours eu la meme p en dynamique car connecté presque 24h/24h.


---------------
MZP est de retour
Reply

Marsh Posté le 24-01-2006 à 09:36:31    

pour ma question, même avec une même ip, il est possible de faire plusieurs visites comptabilisées comme visites disctintes dans une même journée non?


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 24-01-2006 à 10:18:09    

bah ca depend de ta methode. Si c'est une visite par ip maxi par 24h, non.  Si tu mets ca par 6 heures, il peut en faire 4.
 
Maintenant, comment faire pour les gens derriere un proxy? Ils peuvent etre plusieurs à venir, et n'etre considéré que comme une personne.  
 
Tu peux te servir de cookie, mixer les 2, etc...


---------------
MZP est de retour
Reply

Marsh Posté le 24-01-2006 à 10:18:09   

Reply

Marsh Posté le 24-01-2006 à 10:28:02    

Arrêtez votre délire sur "une personne avec deux IP". C'est possible mais ça reste marginal.
 
Ce qui est certain et plus problématique, c'est le contraire : une IP pour plusieurs visiteurs.
 
Une IP n'est *pas* un identifiant valable (du point de vue du site, pas du FAI; sans doute la confusion vient de là).
 
De toute façon, on peut accepter une certaine imprécision sur les compteurs de visites. Ce qui compte, c'est l'ordre de grandeur.
 
Ensuite, le cookie : libre à vous d'en faire ce que vous voulez pour compatibiliser les visites (visite le soir et le matin = 1 ou 2 visites).
 
Finalement, le fin du fin : mixer IP et cookie dans un savant calcul... sans doute inutile.
 
[:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 24-01-2006 à 11:04:11    

et pourquoi inutile???? Si tu cherches à faire qq chose de precis, tu vas chercher vers le cookie. Si la personne refuse les cookies, tu peux soit l'ignorer, soit la compter à chaque appel de page, soit la compter une fois par session, ou gerer ca par l'IP. Y'a pas de savant calcul, juste de la methode.
 
Je ne vois pas ce qu'il y a d'inutile.
 
Idem que de savoir qu'une meme personne peut avoir plusieurs IP. Tu as ça pour les RTC, et aussi pour les grosses entreprises où l'on ne sort pas toujours par le meme point.


---------------
MZP est de retour
Reply

Marsh Posté le 24-01-2006 à 11:07:05    

cinocks > Ou pour les abonés aol qui ont plusieurs sorties en fonction de critéres aussi bizare qu'inconus (la charge ponctuelle des différentes sorties étant l'un des plus probable) ce qui entraine des changements d'IP apparant pour ainsi dire à chaque demande de fichier.

Reply

Marsh Posté le 24-01-2006 à 11:10:01    

pas mal. C'est pas un peu le bordel pour les sites fonctionnant par session?


---------------
MZP est de retour
Reply

Marsh Posté le 26-01-2006 à 08:48:52    

J'ai un ptit probleme. J'arrive à déterminer le nombre de visiteurs uniques dans une journée en récupérant l'ip de chaque visiteur et leur dernière date de visite. (encore que....je dis "visiteurs uniques ajourd'hui" mais c'est plutot dans les précédentes 24h car je compte les visiteurs ayant un timestamp qui date de moins de 24h), mais je ne vois pas comment faire pour compter le nombre de visites. On va dire que je considère qu'une même ip venant 2 fois à 4h d'intervalle est considéré comme 2 visites.  
 
Pourrait-on m'aider en m'indiquant une méthode efficace pr faire ca? (que ce soit cookie ou base de données)


Message édité par welcominh le 26-01-2006 à 08:49:54

---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 26-01-2006 à 09:29:39    

un table de visite avec le timestamp, ce que tu as dejà. A l'appel de page tu compares la date de sa dernier visite enregistrée en base avec le timestamp actuel. Si plus de 4 h, ajoute un nouvel enregistrement. Par contre, c'est basique. Tu peux aussi en cookie stocker l'heure de la derniere page appelée. Au nouveau chargement de page, compare le cookie avec le timestamp actuel. Du nouveau si plus de 4h, alors nouvel enregistrement en base.


---------------
MZP est de retour
Reply

Marsh Posté le 31-01-2006 à 13:09:43    

Voila j'ai utilisé ton idée en stockant l'heure en cookie:  

Citation :

Au nouveau chargement de page, je compare le cookie avec le timestamp actuel. Du nouveau si plus de 4h, alors nouvel enregistrement en base.


 
Mais voila, parfois (même souvent je dirais) je m'apercois qu'il y a plusieurs lignes d'affilée avec la même ip alors qu'il n'y a pas 4h entre les 2 visites. Voila ce que je vois par exemple dans ma section Admin

Citation :

ip                         heure denière entrée                       page visitée  
 
194.214.119.50         31/01/2006 à 12:26                       pages/videos.php  
82.254.125.41           31/01/2006 à 12:23                       pages/news.php  
172.211.4.201           31/01/2006 à 10:26                        pages/news.php  
81.22.80.28              31/01/2006 à 10:02                        pages/utilitaires.php  
193.50.196.223         31/01/2006 à 09:57                       pages/galerie.php  
193.52.2.163            31/01/2006 à 09:11                       pages/galerie.php  
87.231.73.17            31/01/2006 à 09:10                       pages/videos.php  
194.206.163.34         31/01/2006 à 08:45                      pages/affichage_galerie.php  
134.214.112.187       31/01/2006 à 08:30                      pages/affichage_galerie.php  
66.249.66.138          31/01/2006 à 08:30                       pages/partenaires.php  
66.249.66.138          31/01/2006 à 08:29                       pages/affichage_galerie.php  
66.249.66.138          31/01/2006 à 08:28                       pages/affichage_galerie.php
 
82.121.161.101         31/01/2006 à 08:21                        pages/utilitaires.php  
194.206.163.34         31/01/2006 à 07:57                       pages/affichage_galerie.php


On voit qu'il n'y a même pas 5 min entre chaque visite. Je pourrais me dire que ce visiteur supprime ses cookies a chaque fois qu'il charge une page mais c'est peu probable  :heink:  l'idée que je me suis trompé dans mon code est quand même plus probable  :D  
 
Voici mon script php qui gère cela:

Code :
  1. <?
  2.    //--------------------------définition du cookie
  3. $cookie_name="trouvailles_net";
  4. $expire= 60*60*4;
  5. $cookie_value= time()+$expire;
  6. //---------------------------------si le cookie absent ou expiré
  7. if( !isset($_COOKIE["$cookie_name"]) || (time()>$_COOKIE["$cookie_name"]) )
  8. {
  9. setcookie($cookie_name,$cookie_value,time()+$expire);
  10. $cookie= "nouveau_visiteur";
  11. }
  12. else
  13. $cookie= "deja_visiteur";
  14. //-------indique la page consultée (récupéré préalablement dans $page)-----------
  15. $consult_page= $page;
  16. //----------------------------------------------------------------------------
  17. if($cookie=="nouveau_visiteur" )  //----------nouveau visiteur
  18. {
  19. $heure= time();
  20. mysql_query("insert into visite(ip,timestamp,page)
  21.    values('$_SERVER[REMOTE_ADDR]','$heure','$consult_page')" )
  22.  or die("erreur d'insertion dans la BDD".mysql_error());
  23. }
  24. else     //-----déjà connecté: update de la page et du timestamp
  25. {
  26. $heure= time();
  27. mysql_query("update visite set timestamp='$heure',page='$consult_page'
  28.        where ip='$_SERVER[REMOTE_ADDR]' and timestamp>$heure-14400" )
  29. or die("erreur maj de la BDD ".mysql_error());
  30. }
  31. ?>


 
Voyez-vous un problème? pliz help  :)


Message édité par welcominh le 31-01-2006 à 13:13:11

---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 31-01-2006 à 13:35:05    

et si il a desactivé les cookie ?  


---------------

Reply

Marsh Posté le 31-01-2006 à 14:00:01    

c'est possible mais la part de visiteur désactivant les cookies n'est pas très élevée (12% pour le 30/01/06). Et j'ai l'impression en regardant mon tableau des visites que ca fait plus que ca.  
 
Impression seulement? peut être parce que toutes les autres ip n'ont qu'une seule ligne puisqu'elles ne font qu'une visite dans la journée...
Mais sinon mon code a l'air bon non?


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 31-01-2006 à 14:24:06    

peux-tu commencer par faire du code propre??
 

Code :
  1. <?
  2.    //--------------------------définition du cookie
  3. $cookie_name="trouvailles_net";
  4. $expire= 60*60*4;
  5. $cookie_value= time()+$expire;
  6. //---------------------------------si le cookie absent ou expiré
  7. if( !isset($_COOKIE[$cookie_name]) || (time()>$_COOKIE[$cookie_name]) )
  8. {
  9. setcookie($cookie_name, $cookie_value, time()+$expire);
  10. $cookie= true;
  11. }
  12. else {
  13. $cookie= false;
  14. }
  15. //-------indique la page consultée (récupéré préalablement dans $page)-----------
  16. $consult_page= $page;
  17. //----------------------------------------------------------------------------
  18. $heure= time();
  19. if($cookie)  //----------nouveau visiteur
  20. {
  21. mysql_query('insert into visite(ip, timestamp,page) values("' . $_SERVER['REMOTE_ADDR'] . '","' . $heure . '","' . $consult_page . '" )')
  22.  or die("erreur d'insertion dans la BDD" . mysql_error());
  23. }
  24. else     //-----déjà connecté: update de la page et du timestamp
  25. {
  26. mysql_query('update visite set timestamp="' . $heure . '",page="' . $consult_page . '" where ip="' . $_SERVER['REMOTE_ADDR'] .  '" and timestamp> "' . ($heure-14400) . '"')
  27. or die("erreur maj de la BDD " . mysql_error());
  28. }
  29. ?>


 
PHP est tres permissif mais quand meme. Bon je suppose que ton 'timpestamp' est une chaine de caracteres. Bon c'est pas tres judicieux de donner pour ton d'un champ un type exisxtant. Et Ce serait mieux de le mettre en int(10) tant qu'à faire.
 
En corrigeant, vois ce que ca donne par la suite.

Message cité 1 fois
Message édité par cinocks le 31-01-2006 à 14:26:12

---------------
MZP est de retour
Reply

Marsh Posté le 31-01-2006 à 14:27:08    

cinocks a écrit :

et pourquoi inutile???? Je ne vois pas ce qu'il y a d'inutile.


Parce que pour les statistiques de fréquentation, un ordre de grandeur est amplement suffisant.
 
Quelle est la valeur ajoutée à savoir qu'il y a eu "1022 visteurs à 13 visteurs près" plutôt que de savoir qu'un millier de visiteurs sont passés par là ?
 
Plutôt que de chercher une précision de maniaque, je me pencherais plutôt sur les patterns de navigation des visiteurs.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 31-01-2006 à 15:00:50    

Oui mais ce n'est plus la question posée. Il veut compter les visiteurs uniques. Celà depend de lui pour la précision qu'il veut. Peut-etre qu'il veut connaitre tres precisement le nombre de visiteurs. ;)


---------------
MZP est de retour
Reply

Marsh Posté le 31-01-2006 à 15:17:55    

cinocks a écrit :

Oui mais ce n'est plus la question posée. Il veut compter les visiteurs uniques. Celà depend de lui pour la précision qu'il veut. Peut-etre qu'il veut connaitre tres precisement le nombre de visiteurs. ;)


[:kiki] Et c'est bien ce que je dis : c'est sans doute vain et inutile. Il restera toujours une marge d'erreur, et je doute que se compliquer la tâche pour tenter de la réduire à sa plus simple expression soit utile ou intéressant.
 
Maintenant, certaines personnes aiment se délecter de chiffres, chacun son truc.    [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 31-01-2006 à 15:29:31    

mais que ce soit vain et inutile n'est que ton propre jugement. Il fait ce qu'il veut. Il demande comment. Et on lui propose des solutions. S'il souhaite y passer des heures, libre à lui de le faire.


---------------
MZP est de retour
Reply

Marsh Posté le 01-02-2006 à 10:06:35    

sircam a écrit :

[:kiki] Et c'est bien ce que je dis : c'est sans doute vain et inutile. Il restera toujours une marge d'erreur, et je doute que se compliquer la tâche pour tenter de la réduire à sa plus simple expression soit utile ou intéressant.
 
Maintenant, certaines personnes aiment se délecter de chiffres, chacun son truc.    [:pingouino]


A vrai dire je n'ai pas énormément de visites, très peu pour l'instant je dirais même.  :sarcastic: Donc je préfère connaitre le nombre exact. Si je dois avoir 10 visites érronées sur 20 visites par jour, c'est quand même énorme  :sweat:  


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 01-02-2006 à 10:22:00    

tu t'embetes avec les cookies...
tu peux faire une routine php qui va integrer le type d'OS, l'adresse IP et le langage du navigateur + le navigateur.
 
exemple
Marcel  se connecte awec windows xp - francais - internet explorer 6.1 - ip 111.222.333.444 (lol)
Marcel2 se connecte avec windows 98 - francais - firefox - ip 000.111.222.333
 
quelles sont les chances que tu aies 2 types differents ayant :
a/ le même OS
b/ le même navigateur
c/ le même langage
d/ le même IP
?
 
http://erwann.conan.free.fr/codes.php  
pour des exemples


---------------
http://www.ypikay.com
Reply

Marsh Posté le 01-02-2006 à 10:25:16    

c'est quoi le petit "-->" caché en haut à gauche de ta page ?
ressemble à du PHP qui marche pas bien ça...


---------------
http://www.ypikay.com
Reply

Marsh Posté le 01-02-2006 à 11:47:14    

erwan83 a écrit :

tu t'embetes avec les cookies...
tu peux faire une routine php qui va integrer le type d'OS, l'adresse IP et le langage du navigateur + le navigateur.
 
exemple
Marcel  se connecte awec windows xp - francais - internet explorer 6.1 - ip 111.222.333.444 (lol)
Marcel2 se connecte avec windows 98 - francais - firefox - ip 000.111.222.333
 
quelles sont les chances que tu aies 2 types differents ayant :
a/ le même OS
b/ le même navigateur
c/ le même langage
d/ le même IP
?
 
http://erwann.conan.free.fr/codes.php  
pour des exemples


 
 
Je dirais un lot de personnes bossant dans la meme entreprise et etant derriere un proxy. Donc meme ip, meme os, meme explorateur et meme langue.  C'est generalement homogene en entreprise.


---------------
MZP est de retour
Reply

Marsh Posté le 01-02-2006 à 11:49:36    

oui effectivement... je n'y avais pas pensé


---------------
http://www.ypikay.com
Reply

Marsh Posté le 02-02-2006 à 17:20:23    

cinocks a écrit :

En corrigeant, vois ce que ca donne par la suite.


Voila j'ai modifié, apparemment ca marche. En fait, il y a toujours quelques ip qui reviennent avec plusieurs lignes mais ce sont les mêmes. Un coup de tracert et j'ai remarqué que c'était des robots de moteur de recherche  :)  
Donc voila je pense que ca marchait deja avant la modif, mais que je m'inquiétais trop. Merci quand même, ca m'a quand même permis de remettre à neuf ma syntaxe php. :)


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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