Back to Content

XMLHttpRequest: setAttributionReporting() method

files/en-us/web/api/xmlhttprequest/setattributionreporting/index.md

latest2.6 KB
Original Source

{{APIRef("Attribution Reporting API")}}{{securecontext_header}}{{deprecated_header}}

The setAttributionReporting() method of the {{domxref("XMLHttpRequest")}} interface indicates that you want the request's response to be able to register a JavaScript-based attribution source or attribution trigger.

See the Attribution Reporting API for more details.

Syntax

js-nolint
setAttributionReporting(options)

Parameters

  • options
    • : An object providing attribution reporting options, which includes the following properties:
      • eventSourceEligible
        • : A boolean. If set to true, the request's response is eligible to register an attribution source. If set to false, it isn't.
      • triggerEligible
        • : A boolean. If set to true, the request's response is eligible to register an attribution trigger. If set to false, it isn't.

Return value

None (undefined).

Exceptions

  • InvalidStateError {{domxref("DOMException")}}
    • : Thrown if the associated {{domxref("XMLHttpRequest")}} has not yet been {{domxref("XMLHttpRequest.open", "opened", "", "nocode")}}, or has already been {{domxref("XMLHttpRequest.send", "sent", "", "nocode")}}.
  • TypeError {{domxref("DOMException")}}

Examples

js
const attributionReporting = {
  eventSourceEligible: true,
  triggerEligible: false,
};

function triggerSourceInteraction() {
  const req = new XMLHttpRequest();
  req.open("GET", "https://shop.example/endpoint");
  // Check availability of setAttributionReporting() before calling
  if (typeof req.setAttributionReporting === "function") {
    req.setAttributionReporting(attributionReporting);
    req.send();
  } else {
    throw new Error("Attribution reporting not available");
    // Include recovery code here as appropriate
  }
}

// Associate the interaction trigger with whatever
// element and event makes sense for your code
elem.addEventListener("click", triggerSourceInteraction);

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also