Skip to content

Improve slow click / multi click capture #8379

Closed
@mydea

Description

@mydea

After some discussion, we landed on implementing the following logic/behavior for slow/rage click detection in Replay:

Screenshot 2023-06-22 at 16 00 26

  • 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!
  • 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 a clickCount 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 the clickCount
    • If only this one click happened, we create no more breadcrumbs

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.

Metadata

Metadata

Assignees

Labels

Package: replayIssues related to the Sentry Replay SDK

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions