---
title: Action Name Deobfuscation
description: >-
  Restore readable RUM action names in minified builds by generating a
  build-time privacy dictionary that maps obfuscated values to original text.
breadcrumbs: >-
  Docs > RUM & Session Replay > Application Monitoring > RUM Browser Monitoring
  > Build Plugins > Action Name Deobfuscation
---

# Action Name Deobfuscation

## Overview{% #overview %}

When you enable the [`enablePrivacyForActionName`](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/browser/tracking_user_actions.md#mask-all-action-names) initialization parameter, action names are masked for privacy. In minified builds, action names can also become unreadable because bundlers obfuscate the DOM element text and attributes that RUM uses to generate action names.

The Action Name Deobfuscation build plugin addresses both issues by instrumenting your source code at build time to generate a privacy dictionary that maps obfuscated values back to their original text. The RUM SDK uses this dictionary to resolve readable action names.

## Prerequisites{% #prerequisites %}

- The RUM SDK initialized with `trackUserInteractions: true` and `enablePrivacyForActionName: true`. See [Mask all action names](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/browser/tracking_user_actions.md#mask-all-action-names).
- The Datadog build plugin installed and registered with your bundler. See [Build Plugins](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/browser/build_plugins.md) for installation instructions.

## Configuration{% #configuration %}

Configure the `rum.privacy` object in your build plugin options:

| Parameter             | Type                      | Required | Default                                                      | Description                                             |
| --------------------- | ------------------------- | -------- | ------------------------------------------------------------ | ------------------------------------------------------- |
| `rum.privacy.include` | Array of RegExp or String | No       | JS/TS files (.js, .ts, .jsx, .tsx, .mjs, .cjs, and variants) | File patterns to process for action name deobfuscation. |
| `rum.privacy.exclude` | Array of RegExp or String | No       | `node_modules`, `.preval.` files                             | File patterns to skip.                                  |

## Example{% #example %}

With default settings (processes all JS/TS files, excludes `node_modules`):

```javascript
const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
  plugins: [
    datadogWebpackPlugin({
      rum: {
        privacy: {},
      },
    }),
  ],
};
```

With custom include and exclude patterns:

```javascript
const { datadogWebpackPlugin } = require('@datadog/webpack-plugin');

module.exports = {
  plugins: [
    datadogWebpackPlugin({
      rum: {
        privacy: {
          include: [/\.jsx?$/, /\.tsx?$/],
          exclude: [/\/node_modules\//, /\/test\//],
        },
      },
    }),
  ],
};
```

{% alert level="info" %}
These examples use webpack. The configuration object is identical across all supported bundlers. See [Build Plugins](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/browser/build_plugins.md) for installation instructions.
{% /alert %}

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

- [Tracking User Actions](https://docs.datadoghq.com/real_user_monitoring/application_monitoring/browser/tracking_user_actions.md)
- [RUM Data Security](https://docs.datadoghq.com/data_security/real_user_monitoring.md)
- [Datadog Build Plugins GitHub Repository](https://github.com/DataDog/build-plugins)
