Istotne zachowania użytkowników

Jedną z metod poprawy użyteczności istniejących już serwisów internetowych jest analiza zachowania użytkowników tychże serwisów. Mając dostęp do logów serwera WWW lub systemu statystyk, do którego włączona jest witryna, można szukać często powtarzających się, a istotnych z jakiegoś punktu widzenia wzorców zachowań użytkowników. Takie próby są częścią dziedziny zwanej Web Mining. Moja praca magisterska dotyczyć będzie właśnie tego tematu.

Analiza zachowania użytkowników może też oczywiście służyć celom innym niż tylko poprawa użyteczności witryny, np. celom marketingowym.

Ogólnie rzecz biorąc, zakładamy, że mamy dostępne dane w postaci zbioru wizyt użytkowników, gdzie każda wizyta to uporządkowany ciąg nazw (np. identyfikatorów) oglądanych podstron wraz z długością trwania tej odsłony. Przykładowo, jedna z takich wizyt może być następująca:

strona główna (15 sekund) -> oferta (10 sekund) -> aparaty cyfrowe (8 sekund) -> Canon (5 sekund) -> Canon Powershot A85 (25 sekund)

Lista kilku czy kilkunastu tysięcy wizyt z okresu dwóch tygodni jest potencjalnie bardzo cennym źródłem danych. Pytanie tylko, jakich zależności i wzorców szukać?

Oto przykładowe wzorce, które mogą zasługiwać na uwagę (tzn. ich wystąpienia mogą być z jakiegoś punktu widzenia istotne dla właścicieli witryny):

  1. wszystkie wizyty składające się z tylko jednej odsłony (np. wejście na stronę główną i natychmiastowa ucieczka z niej) - jeśli jest ich relatywnie dużo w porównaniu do wszystkich odsłon, na przykład 10%, zwłaszcza w dużym serwisie, wypada sprawdzić, co odstrasza użytkowników
  2. ścieżka kilkukrotnie powtarzająca się w ramach jednej wizyty, np. A->B->C->D->A->B->C. W przypadku strony interaktywnej, np. aplikacji webowej, może to być po prostu użycie jakiejś funkcji wymagającej wykonania kilku odsłon (czy można to usprawnić?), ale może jest inna przyczyna takiego zachowania użytkownika?
  3. szczególny przypadek powyższego wzorca, czyli kilkukrotny cykl, np. A->B->A->B->A, mogący np. sugerować niezrozumienie działania jakiejś opcji lub błąd systemu (użytkownik ponawia próbę mając nadzieję, że to chwilowa awaria uniemożliwiła realizację jego ostatniego żądania)
  4. zbiory stron często odwiedzanych w ramach jednej wizyty. Wyszukiwanie takich zbiorów to jeden z głównych tematów w Web Mining i główna metoda generowania tzw. reguł asocjacyjnych (ang. association rules). W tym miejscu nie wchodzę w szczegóły, zainteresowanym polecam pracę Agrawala “Fast algorithms for mining association rules” i jej liczne kontynuacje i rozszerzenia
  5. strony, które są przeglądane znacząco dłużej lub znacząco krócej niż przeciętny czas trwania jednej odsłony. Te pierwsze to zapewne najczęściej strony z interesującą treścią (lub cechujące się długim czasem pobierania ;), te drugie to pewnie strony nie mające w danej chwili żadnej wartości dla użytkownika, który natychmiast po ich zobaczeniu ucieka z nich
  6. strony będące częścią naturalnej sekwencji (odpowiadającej zadaniu wykonywanemu przez użytkownika) i na których użytkownicy często przerywają tę właśnie sekwencję akcji, mimo że do pełnego jej zakończenia brakuje jeszcze co najmniej jednej strony. Przykładowo, w sklepach internetowych procedura zakupu zazwyczaj rozbita jest na kilka etapów typu zgromadzenie towarów w koszyku, weryfikacja jego zawartości, podanie adresu dostawy, wybór sposobu płatności i potwierdzenie realizacji zamówienia. Jeśli duża część klientów rozpoczynających proces zakupu przerywa na przedostatniej stronie tej ścieżki, należy się bliżej przyjrzeć tej właśnie stronie

Jakie inne wzorce dostępu do witryny internetowej mogą wg Was być pomocne w poprawie serwisu? Czego Wy byście szukali w opisanych wyżej danych wizyt użytkowników i dlaczego?

A może uważacie, że takie podejście nie ma wiele związanego z interakcją, za bardzo abstrahuje od zawartości stron i zachowania użytkownika podczas przeglądania pojedynczej strony?

Komentarze (19)

  1. 8.06.2005 o godzinie 15:34

    1. Popularna sekwencja:
    A -> B -> A -> C -> A -> D -> A
    czyli “skakanie” między stroną ogólną (np. wyniki wyszukiwania, lista produktów) i stronami szczegółowymi
    Często może się kończyć opuszczeniem serwisu.

    Zjawisko “pogo sticking”, opisane zostało przez UIE: http://www.uie.com/publications/whitepapers/PogoSticking.pdf

    2. Sekwencje o których piszesz są liniowe, czyli zakładają korzystanie z tego samego okienka.

    problemem będzie analiza zachowań osób, które jednocześnie otwierają wiele zakładek

    A -> (B,C,D,E,F)
    (wyniki wyszukiwania - w zakładkach otwieram wszystko co mi odpowiada).

    Nie wiadomo wtedy np. czy długa odsłona nie dotyczy zakładki otwartej gdzieś w tle, do której ktoś zagląda dopiero po chwili.

  2. Elsindel
    8.06.2005 o godzinie 15:50

    R.D.:

    Ad 1: zgadza się, to dość częsta ścieżka i wcześniej już o niej myślałem - dzieki za przypomnienie.

    Ad 2: robiłem nawet krótkie poszukiwania metod wykrycia takiego zachowania i jakiejś rekonstrukcji działań użytkownika, ale ponieważ zakładki w Firefoksie czy Operze to wciąż jedna i ta sama przeglądarka (również pliki cookie są dzielone, przynajmniej w FF), to w praktyce nie da się stwierdzić, czy odsłony (A,B,C) to odsłony A->B->C, i użytkownik rzeczywiście przejrzał wszystkie trzy strony, czy na przykład (A->(B,C)), czyli otwarcie dwóch zakładek ze strony A, z których co najmniej jedna lub nawet obie mogły nie zostać nigdy odwiedzone.

    Podejrzewam, że - szczęśliwie - w ogóle liczba użytkowników korzystająca z zakładek w intensywny sposób w ramach jednego serwisu jest niewielka (choć ja robię dokładnie tak, jak piszesz: otwieram mnóstwo zakładek i patrzę, która strona zaprowadzi mnie najłatwiej do celu) - i to nie tylko dlatego, że większość użytkowników wciąż używa IE (niech będzie 85-90%), ale też dlatego, że otwieranie dużej liczby zakładek jest typowe właśnie dla stron wyszukiwawczych/katalogowych, a to tylko niewielka liczba stron, którą odwiedzamy.

    Można próbować jakoś rekonstruować rzeczywiste zachowanie użytkownika zakładek, ale podejrzewam, że nawet gdyby to połączyć z analizą połączeń (odnośników) między stronami, to i tak wyszłoby sporo niejednoznaczności…

    Liniowość jest uproszczeniem, które - cóż - ułatwia życie. Sensowność takiego uproszczenia trzeba by zbadać, testując populację użytkowników…

    Zastanawiam się wciąż, w jaki sposób czas (odsłon) można wykorzystać do analizy zachowań użytkowników…

  3. Grzesiek
    9.06.2005 o godzinie 14:48

    Nie musicie korzystać z ciasteczek, by monitorować aktywność w serwisie.

    Antidotum na wspomnianą bolączkę w postaci wielu okienek/zakładek są IMO odpowiednio zaprojektowane sesje. :)

    Pozdrawiam,
    Grzesiek

  4. Elsindel
    9.06.2005 o godzinie 14:53

    Co to znaczy sesje?

    Sesje w PHP lub sesje w module Apache’a mod_usertrack i prawdopodobnie analogiczne rozwiazania w ASP czy innych jezykach wykorzystuja wlasnie cookies.

    Mozna korzystac z identyfikatorow sesji w URL-ach, ale rezygnuje sie z tego rozwiazania i ze wzgledu na brzydote tychze URL-i, jak i mniejsze bezpieczenstwo (przechwytujac jedynie URL dostajemy cala sesje uzytkownika, np. stan zalogowania do serwisu bankowego).

    W jaki sposob chcesz analizowac przegladanie serwisu w wielu oknach lub zakladkach jednoczesnie za pomoca sesji? O jakie sesje Ci chodzi?

  5. Grzesiek
    9.06.2005 o godzinie 17:00

    Miałem na myśli sesje w PHP (z przezroczystym identyfikatorem). :)

    Każda odsłona może być rejestrowana w bazie danych, w jednej sesji.

    Kiedyś się tym bawiłem. Działało to na moim Firefoxie przy kilku zakładkach i okienkach.

    Pomysł nie jest jednak doskonały. Po kliknięciu na odnośnik w pierwszej zakładce nie można (a przynajmniej ja jeszcze nie wymyśliłem jak to zrobić) liczyć czasu wyświetlania innej strony tego samego serwisu w drugiej zakładce.

  6. 9.06.2005 o godzinie 22:45

    Grzesiek: ja też nie rozumiem :) w jaki sposób sesja wie, że korzystamy z zakładek?

    A przezroczyste sesje w PHP to z czego korzystają, jak nie z ciasteczek?

    Elsindel: to, że użytkownik otworzył jednocześnie kilka zakładek (czy okienek w IE, co na jedno wychodzi) można wykryć np. gdy mamy kolejne kliknięcia z tego samego referera w ciągu jakiegoś czasu … ale jakie wnioski wtedy wyciągać? założyć że czas odsłony w przypadku zakładek jest przekłamany i go pomijać w analizach? Kombinowanie :>

  7. Grzesiek
    10.06.2005 o godzinie 7:54

    r.d.: sesja ma w gdzieś, że korzystamy z zakładek, ale interpretuje to wszystko jako jedną wizytę, więc […] a, jeśli chodzi przezroczyste sesje w PHP, to przekazują one SID po stronie serwera.

  8. Elsindel
    10.06.2005 o godzinie 13:50

    Robert - właśnie nie wiem, co w związku z danymi o zakładkach robić, pewnie dałoby się coś wywnioskować, ale moim zdaniem skala zjawiska jest za mała i są ważniejsze rzeczy, na których trzeba się skupić.

  9. grzmot
    12.06.2005 o godzinie 9:59

    Nie ignorowałbym zakładek, tylko z powodu nadal dużej popularności IE. FF i Opera szybko się rozpowszechniają, a i ludzie korzystający z IE często otwierają okienka na zapas (Shift+LMB). Ale czy nie można by w serwisie testowym zamieścić na wszystkich podstronach jakiegoś malutkiego apletu, który przesyłałby czas rozpoczynania i kończenia swojego istnienia na serwer?

  10. Grzesiek
    12.06.2005 o godzinie 19:32

    A co z ludźmi z wyłączoną Javą/JS/…?

  11. grzmot
    14.06.2005 o godzinie 10:25

    No w sumie racja - też takich sporo się znajdzie. Czyli - nie można mieć wszystkiego, zawsze część populacji odpadnie. Z drugiej strony, same informacje o czasie otwierania stron, dostępne bez problemu, wydają się być bardzo użyteczne. Może po prostu podzielić zgrubnie użytkowników na “jednookienkowych” i “wielookienkowych” (i inne grupy) na podstawie tempa i charakteru wysyłania zapytań, a potem robić właściwą analizę.

  12. Elsindel
    14.06.2005 o godzinie 10:46

    Applety Javy to nienajlepszy pomysł - znacząco spowalniają każdą odsłonę; lepiej już zastosować JavaScript do mierzenia czasu.

    Jeśli chodzi o użytkowników nie korzystających z JS lub Javy, to jest to mniej niż 10% użytkowników Sieci. (Podobnie ponad 90% użytkowników ma włączoną obsługę cookies.) Analizy, które mnie interesują, nie staną się z tego powodu znacząco mniej wiarygodne. Nie chodzi o 100% dokładność. Chodzi o sensowne dane i ich interpretację.

    Grzmot napisał także: “same informacje o czasie otwierania stron wydają się być bardzo użyteczne”. Hmm - właśnie nie bardzo wiem, jak można wykorzystać dane o czasie trwania odsłon/chwili otwarcia.

    Jeśli chodzi o analizę użycia zakładek/wielu okien, to powtarzam - jest to mało istotne z mojego punktu widzenia, ponieważ jestem przekonany, że jak dotąd jest to zjawisko raczej marginalne. Jeśli jakieś badania wykażą jednak, że np. 15-20% użytkowników w ten sposób przegląda pojedynczy serwis często, to może zmienię swoje nastawienie. Wiem, że Firefox+Netscape+Mozilla+Opera mają więcej niż 20% rynku, ale to nie znaczy, że duża część ich użytkowników nie przegląda stron po staremu, lub przynajmniej w ramach jednego serwisu nie przegląda stron za pomocą jednej zakładki.

    Nawet jeśli podzielimy wizyty na jedno- i wielookienkowe - jaki to ma mieć wpływ na późniejsze wyszukiwanie wzorców zachowań i dlaczego? :)

    Wracając do czasu - jak można go sensownie uwzględnić w analizie?

    Przykładowo, co to znaczy, że użytkownicy często czytają jakąś stronę przez 40 sekund? Bez zajrzenia do zawartości tej strony jest to informacja mało mówiąca. Jeśli ta strona to fragment forum z kilkudziesiecioma długimi wypowiedziami, wówczas 40 sekund oznacza, że uzytkownicy nie czytają całości. Jeśli natomiast strona ta to krótka podstrona z kilkoma zdaniami tekstu i dwoma linkami, zapewne wiekszość użytkowników spędza na niej zbyt wiele czasu i warto się zastanowić, dlaczego. Dodatkowo dochodzą problemy z opóźnieniami w sieci oraz niemożnością śledzenia zachowania użytkownika poza przegladarką. W przypadku pojedynczej odsłony o czasie 20 minut można się domyślac, że uzytkownik robi inne rzeczy. Co to w ogóle znaczy: odsłona o długości 20 minut? :)

  13. 12.12.2005 o godzinie 23:21

    Do śledzenia zachowania użytkowników nie są potrzebne sesje, ciasteczka itp.
    Wystarczy dobry parser logów.

    A problem otwierania wielu podstron w zakładkach i budowania bewnyk linków skąd-dokąd załatwia nagłówek Referer. Zdecydowana większość przegladarek go wysyła. To też można z logów wyciągnąć. :-)

  14. Mikołaj
    10.02.2006 o godzinie 18:46

    Rozwinięcie Grzeska pomyslu:
    jest sobie strona w php, która ma włączoną sesje - i za kazdym razem (otwarciem strony) zapisuje do bazy ID sesji, znacznik czasu unixa (ew. powiekszony o mikrosekundy), oraz kod strony (jednoznaczny identyfikator).

    Teraz dzieki zapisowi do bazy (zakladamy nieograniczenie kosztów - baza musi byc wydajna - bo zapytanie jest na poczatku strony lub opcja w mysql - insert … delay) mamy niezaleznosc od cookies, itd, itp.

    inna sprawa, ze to o czym pisal Grzesiek jest fajne, tyle ze jak user wylaczy cookies to i tak sessionID jest przekazywany przez url.

  15. Elsindel
    10.02.2006 o godzinie 18:56

    Ale ta metoda jest dziurawa, ponieważ mnóstwo odwołań do stron nie będzie rejestrowanych - przeglądarka ponowne wejścia (przez linki lub ) na te same strony będzie wykonywać na podstawie cache. W zależności od serwisu i sposobu jego wykorzystania może to być od kilku do nawet pewnie 80% odsłon. Tu jest mnóstwo zmiennych.

    Firefox 1.5 (Opera od dłuższego czasu?) przy “fast back” nawet nie wykonuje JavaScript.

  16. KrzyHu
    27.05.2006 o godzinie 0:27

    “strony, które są przeglądane znacząco dłużej lub znacząco krócej niż przeciętny czas trwania jednej odsłony.” - mogą być jeszcze otwarte w zakłdkach w celu ich poźniejszego obejrzenia.

  17. 14.06.2006 o godzinie 16:35

    Z tego co wiem system statystyk neostat prezentuje schematy poruszania się internautów w formie drzewa lub w formie przepływu użtkowników przez konkretny adres URL (ruch wejściowy na URL z wewnątrz i zewnątrz no i ruch wyjściowy + zakończone wizyty na tym URLu) Ciekawa rzecz,
    że ów przepływ wg nich uwzględnia schematy otwierania kilku stron z jednej.

  18. 19.06.2006 o godzinie 15:57

    Obejrzałem demo neostat.pl, sposób prezentacji jest interesujący. Nie znalazłem nic na temat używania zakładek lub wielu okien — jest to jakoś “wbudowane” w prezentowane statystyki?

    Forma “przepływu” przez konkretny adres URL jest zbliżona do tego, co pokazuje Google Analytics. Obie są fajne i sądzę, że to jedna z bardziej wartościowych statystyk na takim poziomie ogólności.

    Nie jestem pewien, czy cały ruch internautów widoczny jest w drzewie, choć na to wygląda; ciekawe, jak to jest przechowywane (struktury danych, sprawny algorytm budowania takiego drzewa). Można by chyba natomiast poprawić przeglądanie drzewa, zwłaszcza w danym węźle, mam wrażenie, że obecnie jest to na tyle skomplikowane, iż mało kto korzysta z tej funkcji inaczej niż na zasadzie ciekawostki.

    Podałeś URL neostat.pl w swoim komentarzu, czy masz jakiś związek z tą firmą, czy po prostu chciałeś go wskazać w ten sposób? W każdym razie dzięki za info.

  19. Adam Firlej
    21.06.2006 o godzinie 10:00

    Jestem ich klientem a link podałem w tym miejscu trochę automatycznie. Z rozmów z obsługą wynika że to drzewo co tam jest opiera się poprostu o kolejne odsłoy i jest to pierwsze 10 kroków, natomiast przepływ przez stronę ponoć uwzględnia zachowania dedukowane z refererów i obejmuje całość ruchu. Więc pewnie żadnych cudów niewidów tam nie ma ale zawsze coś :)

Napisz komentarz

Musisz być zalogowany, aby dodać komentarz.