Na wstępie chcę zaznaczyć, że nie jest to typowa recenzja. Skupiam się przede wszystkim na swoich doświadczeniach oraz przemyśleniach po kilkumiesięcznej przygodzie z Hotjar, w konkretnym kontekście użycia. Uważam, że każde narzędzie trzeba dobierać właśnie pod kątem kontekstu, jednak ze świadomością jego ograniczeń. Dlatego skupiłem się głównie na obszarach, w których Hotjar nie sprostał moim oczekiwaniom.

Lista głównych funcji Hotjar
Lista głównych funcji Hotjar

Co mnie przekonało do spróbowania Hotjar?

  • Pokaźny pakiet narzędzi.
  • Prosta konfiguracja i obsługa.
  • Bogata dokumentacja i świetny support.
  • Agencyjny setup, który pozwala na zarządzanie wieloma stronami.
  • Atrakcyjne warunki finansowe (m.in. dzięki próbkowaniu i zniżkom na dodatkowe strony) oraz elastyczna możliwość zmiany planu.
  • Nagrania sesji użytkowników, które świetnie dopełniają dane ilościowe z Google Analytics oraz heapmapy.

Gdy w kwietniu 2015 roku Hotjar wyszedł z fazy beta postanowiłem przyjrzeć mu się z bliska. Pierwsze wrażenia z testów na stronie naszego studia były na tyle obiecujące, że postanowiłem sprawdzić go w trudniejszym kontekście.

Prawdziwym poligonem doświadczalnym był serwis Castorama.pl

Po dwunastu miesiącach pracy, w maju 2015 roku wystartowała nowa wersja serwisu. W trakcie realizacji byliśmy odpowiedzialni za część wizualną oraz elementy user experience, także przyszła pora na walidację założeń projektowych. Wyzwanie nie małe, bo serwis jest dość złożony, z ogromną ilością nowych funkcji oraz odwiedzinami rzędu 2 miliony użytkowników miesięcznie.

Prostota Hotjar bywa jego piętą achillesową.

Heatmapa nie zawsze opowiada całą historię o kliknięciach użytkownika.

Szczególnie, gdy strona zawiera elementy interaktywne prezentowane dopiero po akcji użytkownika. Komponenty takie jak podpowiedzi wyszukiwarki czy rozwijane menu, mogą generować dużo interakcji. Niestety sposób w jaki Hotjar zbiera i prezentuje dane powoduje, że nie mamy dostępu do danych z tych kliknięć. Nie mamy również wpływu na to jak wygląda screenshot do heatmapy, więc samym testowanie “niewidocznych zakamarków” strony jest często nie możliwe.

Próbkowanie nie zawsze było pomocne.

Gdy chciałem zbadać strony, które są rzadziej odwiedzane, próbkowanie wydłużało czas niezbędny do zebrania wartościowej ilości danych. W przypadku popularnych stron (np. kategorii lub produktów), dostępny limit wyczerpywał się bardzo szybko.

Limit danych do 5.000 sesji na heatmapę bywał ograniczający.

Szczególnie, że rozkłada się na trzy segmenty: desktop, tablet i mobile. W zależność od kontekstu, ilość zebranych danych nie zawsze była wystarczająca, żeby na jej podstawie podejmować decyzje projektowe.

Od niedawna limit wynosi 10.000 sesji w pakiecie biznes, co trochę poprawia sytuację. 

Znalezienie konkretnego zdarzenia w nagraniach było bardzo czasochłonne.

Załóżmy, że oglądając nagranie zobaczyłem błąd systemu lub problem użytkownika. Chcąc sprawdzić czy był to jednorazowy przypadek, mogłem jedynie zawęzić wyniki wyszukiwania do nagrań z odwiedzinami strony, na której wystąpiło dane zdarzenie. Potem trzeba było oglądać je “od deski do deski” lub przewijać w poszukiwaniu feralnego fragmentu. Przy bazie kilku tysięcy nagrań robi się z tego poważne wyzwanie.

Trudno przeskoczyć brak logiki pytań w ankietach.

Możliwość definiowania czy dane pytanie pokaże się respondentowi w zależności od odpowiedzi na poprzednie, jest wg mnie jedną z kluczowych funkcji dobrego systemu ankiet. Niestety jej brak ograniczył rodzaje ankiet jakie mogłem przeprowadzić. Częściowo dało się obejść ten problem innym formułowaniem pytań, jednak cierpiały na tym zebrane dane.

Ostatnim akcentem naszego związku była zmiana mechanizmu generowania screenshotów.

Nagle heatmapy zaczęły wyglądać “dziwnie”.

Obecnie, obraz strony jest tworzony na podstawie wizyty pierwszego użytkownika, który wszedł na badaną stronę po rozpoczęciu zbierania danych. Precyzyjnie wyjaśnił mi to Jonathan z obsługi klienta:

Our Heatmapping technology works by sending us the HTML a visitor loaded to our servers which we then take a screenshot of with 3 devices.
The HTML we send to our servers is the HTML the visitor has loaded 1 second after the page finished loading (which is detected through the DOMContentLoaded event). So for instance, if after this time, certain images did not yet load, or the visitor has some plugin which changes the content on the page, Hotjar will send the HTML as it is at that point.

W praktyce oznaczało to, że nie mogłem przewidzieć jak będzie wyglądał obraz strony. Użytkownik miał jedną sekundę, żeby zmienić stan systemu (np. zmieniać stan filtrowania, albo rozwinąć menu). Również dodatki przeglądarki mogły powodować zmiany w wyglądzie.

Tak generowane heatmapy stały się mało powtarzalne.

A tym samym mało użyteczne z uwagi na brak możliwości porównania danych. Sprawdzały się głównie dla stron statycznych. Przy stronach zbiorczych (np. widok stron kategorii), standardem stało się kilkukrotne rozpoczynanie zbierania danych, aby dostać odpowiedni widok strony. Nie wiem czy ten problem nadal występuje ale zmusił mnie on do zmiany.

Przyszedł czas na separację, ale nie skreślam Hotjar zupełnie.

Mimo, że Hotjar nie sprawdził się na dużym serwisie, to pewnie wrócę do niego w przyszłości. Z zainteresowaniem śledzę rozwój aplikacji, a przyszłość wygląda obiecująco. Wróciłem jednak do sprawdzonych narzędzi.

CrazyEgg dał mi większą kontrolę nad zbieraniem i prezentowaniem danych na heatmapach.

Testowałem już różne rozwiązania, jednak to właśnie CrazyEgg spełnia większość moich wymagań. Minusem jest konieczność wykupienia rocznego abonamentu, jednak można zyskać dostęp do:

  • ręcznego wykonywania screenshotów (dodatek do Chrome);
  • danych ze wszystkich kliknięć (w formie listy);
  • kontroli nad poziomem próbkowania (w planach premium można ustawić je jako “śledzenie 1 na X wizyt”);
  • większych limitów odwiedzin na hetmapę (do wykorzystania jest miesięczny limit w ramach wybranego planu, nawet 100k na jedną heatmapę).

Fullstory pozwala mi wyszukiwać nagrania po konkretnych zdarzeniach.

Aplikacja rejestruje wszystkie interakcje użytkownika, po których później można filtrować nagrane sesje. Jeśli chcemy zobaczyć tylko użytkowników, którzy odwiedzili daną stronę lub kliknęli w dany przycisk, to nie musimy nawet oglądać całego nagrania. Fullstory udostępnia nam również krótki klip z interakcją, która nas interesuje.

Screen z filtrowania nagrań Fullstory
Screen z filtrowania nagrań Fullstory

 

Poza tym, narzędzie w graficzny sposób prezentuje dane ilościowe dotyczące danego wyszukiwania.

full story segments
Wizualizacja danych nazywana przez twórców “Searchie”

Poza ogromną oszczędnością czasu, pozwala mi to skupić się na badaniu wybranych elementów user experience. Widzę w tym narzędziu naprawdę duży potencjał ale o tym postaram się napisać innym razem.


Tomasz Maciąg | Managing Partner | Strategy and UX Lead @Fuse Collective