SharedStorageRunOperation

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die SharedStorageRunOperation-Schnittstelle der Shared Storage API repräsentiert eine Run output gate Operation.

Instanzmethoden

run() Experimentell

Definiert die Struktur, der die run()-Methode, die innerhalb einer Run output gate Operation definiert ist, entsprechen sollte.

Beispiele

In diesem Beispiel wird eine Klasse namens ReachMeasurementOperation in einem Worklet definiert und mit SharedStorageWorkletGlobalScope.register() unter dem Namen reach-measurement registriert. SharedStorageRunOperation definiert die Struktur, der diese Klasse entsprechen muss, und legt im Wesentlichen die Parameter fest, die für die run()-Methode erforderlich sind. Abgesehen von dieser Anforderung kann die Funktionalität der Klasse flexibel definiert werden.

js
// reach-measurement-worklet.js
const SCALE_FACTOR = 65536;

function convertContentIdToBucket(contentId) {
  return BigInt(contentId);
}

class ReachMeasurementOperation {
  async run(data) {
    const { contentId } = data;

    // Read from Shared Storage
    const key = "has-reported-content";
    const hasReportedContent = (await this.sharedStorage.get(key)) === "true";

    // Do not report if a report has been sent already
    if (hasReportedContent) {
      return;
    }

    // Generate the aggregation key and the aggregatable value
    const bucket = convertContentIdToBucket(contentId);
    const value = 1 * SCALE_FACTOR;

    // Send an aggregatable report via the Private Aggregation API
    privateAggregation.sendHistogramReport({ bucket, value });

    // Set the report submission status flag
    await this.sharedStorage.set(key, true);
  }
}

// Register the operation
register("reach-measurement", ReachMeasurementOperation);

Hinweis: Es ist möglich, mehrere Operationen im selben Shared Storage Worklet-Modulskript mit unterschiedlichen Namen zu definieren und zu registrieren. Siehe SharedStorageOperation für ein Beispiel.

Im Hauptbrowsing-Kontext wird die reach-measurement-Operation mit der WindowSharedStorage.run() Methode aufgerufen:

js
async function measureUniqueReach() {
  // Load the Shared Storage worklet
  await window.sharedStorage.worklet.addModule("reach-measurement-worklet.js");

  // Run the reach measurement operation
  await window.sharedStorage.run("reach-measurement", {
    data: { contentId: "1234" },
  });
}

measureUniqueReach();

Für weitere Details zu diesem Beispiel siehe Unique reach measurement. Weitere Beispiele finden Sie in der Shared Storage API.

Spezifikationen

Specification
Shared Storage API
# sharedstoragerunoperation

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch