WorkletSharedStorage: get() Methode
Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.
Die get() Methode der WorkletSharedStorage Schnittstelle ruft einen Wert aus dem Shared Storage ab.
Syntax
get(key)
Parameter
key-
Ein String, der den Schlüssel des Schlüssel-Wert-Paares darstellt, das Sie abrufen möchten.
Rückgabewert
Ein Promise, das entweder mit einem String erfüllt wird, der dem Wert des abgerufenen Schlüssel-Wert-Paares entspricht, oder mit undefined, wenn der angegebene key im Shared Storage nicht gefunden wird.
Ausnahmen
TypeError-
Wird ausgelöst, wenn:
- Das Worklet-Modul noch nicht mit
addModule()hinzugefügt wurde. keydie vom Browser definierte maximale Länge überschreitet.- Die aufrufende Stelle nicht den Shared Storage API in einem erfolgreichen Einschreibungsprozess in die Privacy Sandbox enthalten hat.
- Das Worklet-Modul noch nicht mit
Beispiele
>Messung der K+ Frequenz
Das folgende Beispiel misst die K+ Frequenz von Inhaltsaufrufen. Manchmal als "effektive Frequenz" bezeichnet, bezieht sich die K-Frequenz auf die Mindestanzahl von Aufrufen, bevor ein Benutzer bestimmte Inhalte erkennen oder sich an sie erinnern wird (häufig im Kontext von Anzeigenaufrufen verwendet).
Das Hauptseite-Skript:
// k-frequency-measurement.js
async function injectContent() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule("k-freq-measurement-worklet.js");
// Run the K-frequency measurement operation
await window.sharedStorage.run("k-freq-measurement", {
data: { kFreq: 3, contentId: 123 },
});
}
injectContent();
Das Worklet-Modul wird unten gezeigt:
// k-frequency-measurement-worklet.js
// Scale factor for handling noise added to data
const SCALE_FACTOR = 65536;
/**
* The bucket key must be a number, and in this case, it is simply the content
* ID itself. For more complex bucket key construction, see other use cases in
* this demo.
*/
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class KFreqMeasurementOperation {
async run(data) {
const { kFreq, contentId } = data;
// Read from Shared Storage
const hasReportedContentKey = "has-reported-content";
const impressionCountKey = "impression-count";
const hasReportedContent =
(await this.sharedStorage.get(hasReportedContentKey)) === "true";
const impressionCount = parseInt(
(await this.sharedStorage.get(impressionCountKey)) || 0,
10,
);
// Do not report if a report has been sent already
if (hasReportedContent) {
return;
}
// Check impression count against frequency limit
if (impressionCount < kFreq) {
await this.sharedStorage.set(impressionCountKey, impressionCount + 1);
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(hasReportedContentKey, "true");
}
}
// Register the operation
register("k-freq-measurement", KFreqMeasurementOperation);
Weitere Details zu diesem Beispiel finden Sie unter K+ Frequenzmessung. Siehe die Shared Storage API Hauptseite für Links zu weiteren Beispielen.
Spezifikationen
This feature does not appear to be defined in any specification.>Browser-Kompatibilität
Siehe auch
- Shared Storage API
- Rauschen und Skalierung auf privacysandbox.google.com (2023)