---
title: Frustration Signals
description: >-
  Identify user friction points with RUM frustration signals (including rage
  clicks, dead clicks, and error clicks) to improve user experience and reduce
  abandonment.
breadcrumbs: >-
  Docs > RUM & Session Replay > Application Monitoring > RUM Browser Monitoring
  > Frustration Signals
---

# Frustration Signals

## Overview{% #overview %}

Frustration signals help you identify your application's highest points of user friction by surfacing moments when users exhibit frustration.

RUM collects three types of frustration signals:

{% dl %}

{% dt %}
Rage Clicks
{% /dt %}

{% dd %}
A user clicks on an element more than three times in a one-second sliding window.
{% /dd %}

{% dt %}
Dead Clicks
{% /dt %}

{% dd %}
A user clicks on a static element that produces no action on the page.
{% /dd %}

{% dt %}
Error Clicks
{% /dt %}

{% dd %}
A user clicks on an element right before a JavaScript error occurs.
{% /dd %}

{% /dl %}

By enabling frustration signals, Datadog collects all three signal types by default.

## Requirements{% #requirements %}

First, you need the Browser RUM SDK version >= 4.14.0.

To start collecting frustration signals, add the following to your SDK configuration:

{% collapsible-section open=null %}
## Latest version

```javascript
window.DD_RUM.init({
  trackUserInteractions: true,
})
```

{% /collapsible-section %}

{% collapsible-section %}
Before `v5.0.0`
```javascript
window.DD_RUM.init({
  trackUserInteractions: true,
  trackFrustrations: true
})
```

Frustration signals require actions. Enabling `trackFrustrations` automatically enables `trackUserInteractions`.
{% /collapsible-section %}

## Usage{% #usage %}

Frustration signals appear as high-level datapoints representing sources of user frustration on the [**RUM Applications** page](https://app.datadoghq.com/rum/list). To display a list of frustration counts in the [RUM Explorer](https://docs.datadoghq.com/real_user_monitoring/explorer/), click the **Options** button and add a column for `@session.frustration.count`.

### Application list{% #application-list %}

Hover over the list of browser sessions and click on a session to observe a user's frustrated click behavior. Or, click **Frustrated Sessions** to access sessions with a frustration signal.

### Explore the frustration signals dashboard{% #explore-the-frustration-signals-dashboard %}

The **Frustration Signals** dashboard provides an overview of frustration levels across your application, showing you topics like the most frustrated users and pages with the highest number of frustration signals.

You can clone this dashboard and customize it to fit your needs. For more information, see [Frustration Signals Dashboard](https://docs.datadoghq.com/real_user_monitoring/platform/dashboards/usage#frustration-signals).

### Search for frustration signals{% #search-for-frustration-signals %}

Search through all the data collected by RUM in the [RUM Explorer](https://app.datadoghq.com/rum/explorer) to surface trends on frustration signals, analyze patterns with greater context, or export them into [dashboards](https://docs.datadoghq.com/dashboards/) and [monitors](https://docs.datadoghq.com/monitors/).

Enter a facet in the search query to start your search. Available search fields include:

{% dl %}

{% dt %}
Frustration Type
{% /dt %}

{% dd %}
Find actions with frustration signals. For example, if you want to see any actions that had a rage click, add `action.frustration.type:rage_click` to the search query.
{% /dd %}

{% dt %}
Frustration Count
{% /dt %}

{% dd %}
Find sessions and views where any frustration signal occurred. For example, if you want to find any user sessions or views with at least one frustration signal, add `session.frustration.count:>1` or `view.frustration.count:>1` to the search query.
{% /dd %}

{% /dl %}

#### Sessions{% #sessions %}

Click on a session with a value in the **Frustration Count** column to examine the user frustration detected. You can see the type of signal (`rage click`, `dead click`, or `error click`) and the event timeline, which shows what occurred during the session.

#### Views{% #views %}

Click on a view to identify if a user was frustrated on a specific page with the `frustration detected` tag.

{% image
   source="https://datadog-docs.imgix.net/images/real_user_monitoring/frustration_signals/frustration_signals_in_performance_tab.a1db62b277b4f9121eb50ebcc7674aa3.png?auto=format"
   alt="Frustration Signals Actions in the Events dropdown menu in the performance waterfall graph" /%}

The performance waterfall displays actions containing frustration signals.

{% image
   source="https://datadog-docs.imgix.net/images/real_user_monitoring/frustration_signals/actions_frustration_signal.ed8a79318c1302cdbd0fa6daddcfefa7.png?auto=format"
   alt="Frustration signals detected as an action" /%}

#### Actions{% #actions %}

The **Actions** tab displays the `frustration detected` tag if the selected action contains a frustration signal.

If multiple frustration signals occur in an action, they are displayed under **What Happened** in the action panel.

{% image
   source="https://datadog-docs.imgix.net/images/real_user_monitoring/frustration_signals/actions_panel_multiple_frustration_signals.b61363085d225eaecb67c1673665de82.png?auto=format"
   alt="Multiple frustration signal types detected in the action under What Happened" /%}

#### Errors{% #errors %}

Click on an error in the **Errors** tab to open a side panel with error details. You can see if a frustration signal occurred.

{% image
   source="https://datadog-docs.imgix.net/images/real_user_monitoring/frustration_signals/errors_tab.44010aba1a9fc30a5e61585491865499.png?auto=format"
   alt="Errors Tab in the Actions side panel" /%}

## Watch frustration signals in Session Replay{% #watch-frustration-signals-in-session-replay %}

In [Session Replay](https://app.datadoghq.com/rum/replay/sessions/), you can observe a video-like replication of real user activity. Replays provide video evidence of the actions users take when they exhibit signs of frustration.

A session replay's user journey details the events that occur in chronological order. Hover over an event to move to that point in time in the replay: for example, when a dead click occurred.

{% image
   source="https://datadog-docs.imgix.net/images/real_user_monitoring/frustration_signals/session_replay_frustration_signals.8cf407ccb5e875d75cacee51fc1ecbfe.png?auto=format"
   alt="Frustration signals appear in a browser recording" /%}

For more information, see the [Session Replay documentation](https://docs.datadoghq.com/session_replay/browser/).

## Create alerts for frustration signals{% #create-alerts-for-frustration-signals %}

You can create monitors and set alerts on frustration signals to notify you or your team if any frustration signals occur on an important page in your application.

For example, to set an alert that notifies you if any frustration signals occur on a specific page:

{% image
   source="https://datadog-docs.imgix.net/images/real_user_monitoring/frustration_signals/rum_monitor_frustration_count.2c8bf4997c51caaa152a5470baf37973.png?auto=format"
   alt="Create a RUM Monitor that alerts on the count of frustration signals" /%}

For more information, see the [Real User Monitoring Monitor documentation](https://docs.datadoghq.com/monitors/types/real_user_monitoring/).

## Troubleshooting{% #troubleshooting %}

### Rage clicks are not being created when a user presses a key (like Delete) on the keyboard{% #rage-clicks-are-not-being-created-when-a-user-presses-a-key-like-delete-on-the-keyboard %}

Frustration signals are generated from mouse clicks, not keyboard strokes.

### The side panel does not show that a session has a different number of frustration signals than in the event timeline{% #the-side-panel-does-not-show-that-a-session-has-a-different-number-of-frustration-signals-than-in-the-event-timeline %}

If a session is live, it is fetching information and may cause the banners to reflect a different number than those in the timeline.

{% alert level="danger" %}
To provide feedback or submit a feature request, contact [Datadog Support](https://docs.datadoghq.com/help/).
{% /alert %}

## Further Reading{% #further-reading %}

- [Detect user pain points with Datadog Frustration Signals](https://www.datadoghq.com/blog/analyze-user-experience-frustration-signals-with-rum/)
- [Frustration Signals Dashboard](https://docs.datadoghq.com/real_user_monitoring/platform/dashboards/usage#frustration-signals)
- [Learn about the RUM Explorer](https://docs.datadoghq.com/real_user_monitoring/explorer)
- [Learn about Session Replay](https://docs.datadoghq.com/session_replay/)
