Wątek przeniesiony 2023-12-22 22:22 z Webmastering przez Riddle.

Licznik unikalnych odwiedzin strony

0

Cześć,
czy może ktoś podrzucić jakiś pomysł jak zaimplementować licznik unikalnych wizyt w Wordpress per strona? Wiem, że są pluginy - ja potrzebuję mieć dostęp do tej wartości (unikalnych wizyt) w kodzie PHP. Ktoś coś?

1

Czy treść jest ogólnodostępna czy dla zarejestrowanych użytkowników?

Jeżeli ogólnodostępna i w czystym PHP, to proponuję wysyłać ciastko, które wskazuje, że to odwiedzenie zostało zliczone. Jeżeli to ciasto zostanie odebrane, to odwiedzenie się nie liczy. Oprócz ciastka proponuję też uzyskać adres IP, z którego jest połączenie do serwera, żeby zliczyć wg zasad, które dadzą przybliżoną liczbę użytkowników:

  1. Jedna i ta sama instancja przeglądarki, czyli na ogół jedno urządzenie będzie liczone jeden raz niezależnie od adresu IP, rozpoznaniu urządzenia służy ciastko.
  2. Jeden adres IP będzie liczony jeden raz niezależnie od liczby urządzeń. W wielu przypadkach można posiadać kilka urządzeń łączących się z internetem, ale w większości przypadków wszystkie użytkowane w domu, za pośrednictwem routera mają ten sam IP publiczny.

Oczywiście da się sfałszować takie zliczanie, ale zliczanie jednego urządzenia jeden raz i jednego adresu IP jeden raz to zawsze jakieś utrudnienie, a w szczególności kolejne odświeżenia nie będą liczone jako kolejne wizyty.

W przypadku treści tylko dla zarejestrowanych użytkowników, oprócz powyższych zasad, dodatkowo zliczać danego użytkownika jeden raz niezależnie od urządzenia i adresu IP. Dyskusyjne jest to, czy jak jest kilka kont na tym samym urządzeniu i na tym samym IP, to liczyć jeden raz czy tyle razy, ile jest kont.

https://www.p-programowanie.pl/php/licznik-odwiedzin

1

Wszystko zależy do czego chcesz to użyć i jaki jest cel tego licznika.

@andrzejlisek napisał co trzeba i na drobne potrzeby jest to rozwiązanie ok ale lepiej żeby to strona sama "zgłaszała obecność" do serwera bo samo blokowanie po cookie to za mało i może spowodować niekontrolowane rośnięcie licznika przy każdym odświeżeniu jeśli po stronie zaczną chodzić np. roboty indeksujące albo coś co cookie nie obsługuje.

Można też spróbować bez cookie i posłużyć się parą:

W ogólności identyfikacja użytkownika na stronie WWW to dość skomplikowana sprawa. Rozróżnienia człowieka od robota może być dużym wyzwaniem.
Niektórzy np. zliczają wejście dopiero gdy zostanie wykryta akcja typu click, scroll, mousemove lub inna świadcząca o działaniu prawdziwego człowieka.

Liczenie po IP to dziś już słaby pomysł bo za jednym IP w sieciach komórkowych może być cała dzielnica.

0
4w0rX4t4X napisał(a):

lepiej żeby to strona sama "zgłaszała obecność" do serwera

Poproszę o informacje, jak to działa, jak to się nazywa. O takim czymś nie słyszałem i trudno mi wyobrazić sobie, jak to miałoby działać. To serwer wydaje stronę za żądanie klienta i już w tym momencie ma informację, że jest kolejne połączenie, wg dostępnych danych o informacji można ustalić, czy to połączenie liczy się jako kolejny unikalny użytkownik. Nie rozumiem, co miałby zgłaszać skrypt na stronie i w jakim celu do serwera, który właśnie wydał tą stronę. Chyba, że dodatkowe informacje, jak fingerprint, żeby stwierdzić, czy to połączenie się liczy, a nie jest możliwe przekazanie fingerprint w żądaniu. Jak się szuka liczników, to zdecydowanie częściej są gotowe skrypty i gotowe usługi niż opis sposobów zliczania odwiedzin, a zwłaszcza unikalnych odwiedzin.

0

@4w0rX4t4X , @andrzejlisek dzięki za odpowiedzi

@4w0rX4t4X , to co piszesz ma jak najbardziej sens. Wiesz może czy istnieje jakieś gotowe rozwiązanie w PHP, które integruje się z fingerprintJS?

0
andrzejlisek napisał(a):

Poproszę o informacje, jak to działa, jak to się nazywa. O takim czymś nie słyszałem i trudno mi wyobrazić sobie, jak to miałoby działać.

Np. takie Google Analytics jest odpalane jako JavaScript po stronie klienta i komunikuje się z API Goggle, API TagManagera.

To serwer wydaje stronę za żądanie klienta i już w tym momencie ma informację, że jest kolejne połączenie, wg dostępnych danych o informacji można ustalić, czy to połączenie liczy się jako kolejny unikalny użytkownik.

Tylko, że po stronie klienta w JavaScript tych informacji możesz mieć wiele więcej i lepiej nimi sterować. Po stronie serwera nie wykryjesz nawet czy masz wejście robota czy faktycznego użytkownika.

Nie rozumiem, co miałby zgłaszać skrypt na stronie i w jakim celu do serwera, który właśnie wydał tą stronę.

No to się nad tym zastanów bo w praktyce ma to więcej sensu niż analiza tego co dostaniesz w nagłówku HTTP.

Chyba, że dodatkowe informacje, jak fingerprint, żeby stwierdzić, czy to połączenie się liczy, a nie jest możliwe przekazanie fingerprint w żądaniu. Jak się szuka liczników, to zdecydowanie częściej są gotowe skrypty i gotowe usługi niż opis sposobów zliczania odwiedzin, a zwłaszcza unikalnych odwiedzin.

Tak są. Jedne lepsze drugie gorsze - te po stronie serwera zwykle są tymi gorszymi bo zliczają wszystko jak leci bez szczególnych możliwości odfiltrowania śmieci. Dziś każdy robot skanujący strony potrafi symulować dowolną przeglądarkę a często takie skanowanie odbywa się z wielu adresów IP a w każdym żądaniu przedstawiają się Twojemu serwerowi inaczej - czasem trudno w ogóle wyłapać, że ktoś Cię crawluje a co dopiero budować tak licznik "odwiedzin". Oczywiście - to też są "odwiedziny" ale ja w domyśle mam licznik zliczający użytkowników a nie roboty.

1

Najlepiej ciastko, plus ciastka jest taki że odpada całkowicie problem przechowywania widzianych użytkowników w sensie IP/fingerprintów. Jak strona jest popularna to liczeni wielokrotnie użytkownicy z wyłączonymi cookies których jest bardzo mało nie zaburzą zbyt mocno statystyk. Zresztą można też sprawdzać czy przyjmują jakiekolwiek ciasteczka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1