InterventionReportBody
======================

**Experimental:** **This is an experimental technology**  
Check the Browser compatibility table carefully before using this in production.

The `InterventionReportBody` interface of the Reporting API represents the body of an intervention report.

An intervention report is generated when usage of a feature in a web document has been blocked by the browser for reasons such as security, performance, or user annoyance. So for example, a script was been stopped because it was significantly slowing down the browser, or the browser's autoplay policy blocked audio from playing without a user gesture to trigger it.

A deprecation report is generated when a deprecated feature (for example a deprecated API method) is used on a document being observed by a `ReportingObserver`. In addition to the support of this API, receiving useful intervention warnings relies on browser vendors adding these warnings for the relevant features.

ReportBody

InterventionReportBodyConstructor
-----------

An instance of `InterventionReportBody` is returned as the value of `Report.body` when `Report.Type` is `intervention`. The interface has no constructor.

Instance properties
-------------------

This interface also inherits properties from `ReportBody`.

`InterventionReportBody.id` 
Experimental
 Read only 

A string representing the intervention that generated the report. This can be used to group reports.

`InterventionReportBody.message` 
Experimental
 Read only 

A string containing a human-readable description of the intervention, including information such how the intervention could be avoided. This typically matches the message a browser will display in its DevTools console when an intervention is imposed, if one is available.

`InterventionReportBody.sourceFile` 
Experimental
 Read only 

A string containing the path to the source file where the intervention occurred, if known, or `null` otherwise.

`InterventionReportBody.lineNumber` 
Experimental
 Read only 

A string representing the line in the source file in which the intervention occurred, if known, or `null` otherwise.

`InterventionReportBody.columnNumber` 
Experimental
 Read only 

A string representing the column in the source file in which the intervention occurred, if known, or `null` otherwise.

Instance methods
----------------

This interface also inherits methods from `ReportBody`.

`InterventionReportBody.toJSON()` 
Experimental

A *serializer* which returns a JSON representation of the `InterventionReportBody` object.

Examples
--------

In this example we create a new `ReportingObserver` to observe intervention reports, then print details of each property of the first report to the console.


```js
const options = {
  types: ["intervention"],
  buffered: true,
};

const observer = new ReportingObserver((reports, observer) => {
  const firstReport = reports[0];
  console.log(firstReport.type); // intervention
  console.log(firstReport.body.id);
  console.log(firstReport.body.message);
  console.log(firstReport.body.sourceFile);
  console.log(firstReport.body.lineNumber);
  console.log(firstReport.body.columnNumber);
}, options);
```

Specifications
--------------

| Specification |
| --- |
| Intervention Reporting # intervention-report |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Reporting API
* The Reporting API