Warstwa rage klików
≥3 kliknięcia w 500 ms w promieniu 48 px — wykrywane po stronie klienta, liczone po stronie serwera. Sygnatura frustracji, zwizualizowana tam, gdzie się dzieje.
Mapy ciepła
Mapy ciepła kliknięć, scrolli, rage i martwych kliknięć, przechowywane jako zagregowane, znormalizowane do dokumentu dane na siatce 1% szerokości × 0.1% wysokości — rysowane na żywej stronie albo zapisanej migawce, z presetami klas urządzeń 375/768/1280. Do kliknięcia nie da się przypiąć żadnego identyfikatora użytkownika: w tym jest sens siatki.
Siatka
Współrzędne kliknięć są zapisywane znormalizowane do dokumentu i agregowane do komórek siatki 1% szerokości dokumentu × 0.1% wysokości, wraz z wymiarami klasy urządzenia i viewportu. Gęstość rysuje się jako przejście niebieski→czerwień na żywej stronie (podgląd w iframe) albo na zapisanej migawce — per klasa urządzenia.
Komórki to procenty dokumentu, nie piksele — strony o każdej długości i układzie pozostają porównywalne, a wymiary klasy urządzenia i viewportu jadą z każdą komórką.
Rysuj na żywej stronie w podglądzie iframe albo na zapisanej migawce, przełączając się między presetami klas urządzeń 375 / 768 / 1280.
Komórka trzyma liczbę, nie odwiedzającego. Do kliknięcia nie da się przypiąć identyfikatora użytkownika — w tym jest sens siatki.
Warstwy
≥3 kliknięcia w 500 ms w promieniu 48 px — wykrywane po stronie klienta, liczone po stronie serwera. Sygnatura frustracji, zwizualizowana tam, gdzie się dzieje.
Kliknięcia w nieinteraktywne elementy, oznaczane per element — najszybszy sposób, by znaleźć przyciski, które wyglądają na klikalne, a nie są.
Dosięgnięto-% w pasmach głębokości, zasilana zdarzeniami progów 25 / 50 / 75 / 100 — w parze z raportowaniem głębokości scrolla per strona.
Każda warstwa rysuje się na żywej stronie (podgląd w iframe) albo na zapisanej migawce — ta sama siatka, to samo przejście barw, per klasa urządzenia.
Głębokość scrolla
Cztery zdarzenia progów — 25 / 50 / 75 / 100% — zasilają mapę ciepła dosięgnięto-% w pasmach głębokości, więc długa strona przestaje ukrywać swoje urwisko.
| Pasmo głębokości | Dosięgnięto | |
|---|---|---|
| 25% | 84% | |
| 50% | 63% | |
| 75% | 41% | |
| 100% | 22% |
Ranking elementów
Najczęściej klikane elementy są szeregowane po stabilnym data-obs-id — a tam, gdzie go nie dodasz, po hashowanych selektorach pod dziennym kluczem elementów, więc nawet struktura DOM jest pseudonimizowana w T0. Udziały rage i martwych kliknięć są trzymane per element.
| Element | Kliknięcia | Udział rage | Udział martwych |
|---|---|---|---|
| [data-obs-id="cta-primary"] | 412 | 2% | 1% |
| a.nav-pricing hashed | 297 | 0% | 4% |
| [data-obs-id="hero-demo"] | 244 | 1% | 0% |
| .plan-card button hashed | 188 | 6% | 9% |
Kontrakt DOM: data-obs-id nazywa element na potrzeby rankingu, data-obs-interactive oznacza interaktywne cele dla wykrywania martwych kliknięć, a data-obs-ignore wyłącza element z map ciepła i formularzy.
Z konstrukcji
W Observerze nie ma mapy ciepła ruchu myszy. Ślady ruchu to najmniej przyjazny prywatności sygnał w tej kategorii — najmniej wglądu na jednostkę inwigilacji — a postawa bez banera stoi na tym, czego odmawiamy, nie na tym, co obiecujemy.
Zero fingerprintingu, zero tożsamości między witrynami, zero integracji z platformami reklamowymi — odmowy to powód, dla którego tryb domyślny nie potrzebuje banera zgody.
Warstwy rage i martwych kliknięć odpowiadają na to samo pytanie „gdzie interakcja idzie źle” — bez nagrywania ruchu.
Mapy ciepła wchodzą w tryb domyślny bez banera zgody — zagregowane z konstrukcji, ukrywane poniżej progu k-anonimowości n ≥ 5 w każdym widoku. Dostęp po podpisaniu NDA, a wdrożenie odbywa się razem z Twoim zespołem DevOps.