Closed
Description
After some discussion, we landed on implementing the following logic/behavior for slow/rage click detection in Replay:
- Clicks generate
ui.click
breadcrumbs immediately- these are debounced by 1s, so any further click on the same element within 1s does not generate a further
ui.click
breadcrumb!
- these are debounced by 1s, so any further click on the same element within 1s does not generate a further
- Whenever a
ui.click
breadcrumb is captured, we start looking for 7s for a) further clicks on the same element and b) if the click is a slow click - After 7s...
- if no mutation happened in the meanwhile, we create a
ui.slowClickDetected
breadcrumb with aclickCount
counting all clicks on the same element in the last 7s - if a mutation happened and more than 1 click in total happened in the last 7s on the element, we create a
ui.multiClick
breadcrumb with theclickCount
- If only this one click happened, we create no more breadcrumbs
- if no mutation happened in the meanwhile, we create a
This means that:
- We always get slow/multi click breadcrumbs after 7s, never before. This means we may loose some, but this is worth it to us so we have better data.
- We count all clicks that happened in the 7s period. The idea is, that if a slow click happens, then after 3s the user starts rage clicking on the same button - we can detect this by seeing that this slow click had a lot of clicks in this 7s.
- There may still be false positives, think a
continue
button that is clicked a few times in 7s because the user is moving forward fast - but this we can figure out eventually.
One thing to note is that the ui.slowClick
/ ui.multiClick
breadcrumbs will be created with the same timestamp & message as the original ui.click
breadcrumb.