1. Introduction
[INTRODUCTION GOES HERE]
1.1. Examples
Reporting-Endpoints: default="https://example.com/reports"
2. Concepts
2.1. Intervention
Interventions are discussed in https://github.com/WICG/interventions.
3. Intervention Reports
Intervention reports indicate that a user agent has decided not to honor a request made by the application (e.g. for security, performance or user annoyance reasons).
Intervention reports are a type of report.
Intervention reports have the report type "intervention".
Intervention reports are visible to ReportingObservers.
[Exposed =(Window ,Worker )]interface :InterventionReportBody ReportBody { [Default ]object ();toJSON readonly attribute DOMString ;id readonly attribute DOMString ;message readonly attribute DOMString ?;sourceFile readonly attribute unsigned long ?;lineNumber readonly attribute unsigned long ?; };columnNumber 
An intervention report’s body, represented in JavaScript by InterventionReportBody, contains the following fields:
- 
      id: an implementation-defined string identifying the specific intervention that occurred. This string can be used for grouping and counting related reports. 
- 
      message: A human-readable string with details typically matching what would be displayed on the developer console. The message is not guaranteed to be unique for a given id (e.g. it may contain additional context on what led to the intervention). 
- 
      sourceFile: If known, the file which first used the indicated API, or null otherwise. 
- 
      lineNumber: If known, the line number in sourceFile of the offending behavior (which prompted the intervention), or null otherwise. 
- 
      columnNumber: If known, the column number in sourceFile of the offending behavior (which prompted the intervention), or null otherwise. 
Note: Intervention reports are always delivered to the endpoint named default; there is currently no way to override this.  If you want
  to receive other kinds of reports, but not intervention reports, make sure to
  use a different name for the endpoint that you choose for those reports.
4. Sample Reports
    POST /reports HTTP/1.1
    Host: example.com
    ...
    Content-Type: application/reports+json
    [{
      "type": "intervention",
      "age": 27,
      "url": "https://example.com/",
      "user_agent": "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0",
      "body": {
        "id": "audio-no-gesture",
        "message": "A request to play audio was blocked because it was not triggered by user activation (such as a click).",
        "sourceFile": "https://example.com/index.js",
        "lineNumber": 1234,
        "columnNumber": 42
      }
    }]
}
    5. Security Considerations
For a discussion of security considerations surrounding out-of-band reporting in general, see Reporting API §9 Security Considerations.
The remainder of this section discusses security considerations for intervention reporting specifically.
6. Privacy Considerations
For a discussion of privacy considerations surrounding out-of-band reporting in general, see Reporting API §10 Privacy Considerations.
The remainder of this section discusses privacy considerations for intervention reporting specifically.