FencedFrameConfig: Methode setSharedStorageContext()
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 vor der Verwendung auf produktiven Webseiten.
Die setSharedStorageContext()
-Methode der FencedFrameConfig
-Schnittstelle übergibt kontextuelle Daten vom einbettenden Dokument an den geteilten Speicher des <fencedframe>
.
Syntax
setSharedStorageContext(context)
Parameter
context
-
Ein String, der die kontextuellen Daten repräsentiert, die in den geteilten Speicher übergeben werden sollen. Sobald festgelegt, wird dies in der internen Konfiguration der
FencedFrameConfig
-Instanz gespeichert.
Rückgabewert
Keiner (Undefined
).
Beispiele
Kontextuelle Daten via setSharedStorageContext()
übergeben
Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Ereignis-Level-Daten in eingeschlossenen Frames mit kontextuellen Daten des einbettenden Dokuments kombinieren. setSharedStorageContext()
kann verwendet werden, um kontextuelle Daten vom Einbettungsdokument an die von der Protected Audience API initiierte geteilte Speicher-Worklets zu übergeben.
Im folgenden Beispiel speichern wir Daten sowohl von der einbettenden Seite als auch vom eingeschlossenen Frame im geteilten Speicher.
Auf der einbettenden Seite setzen wir eine simulierte Ereignis-ID als Kontext des geteilten Speichers mithilfe von setSharedStorageContext()
:
const frameConfig = await navigator.runAdAuction({ resolveToConfig: true });
// Data from the embedder that you want to pass to the shared storage worklet
frameConfig.setSharedStorageContext("some-event-id");
const frame = document.createElement("fencedframe");
frame.config = frameConfig;
Im eingeschlossenen Frame fügen wir das Worklet-Modul mit window.sharedStorage.worklet.addModule()
hinzu und senden dann die Ereignis-Level-Daten in das geteilte Speicher-Worklet mithilfe von window.sharedStorage.run()
(dies ist nicht verwandt mit den kontextuellen Daten des einbettenden Dokuments):
const frameData = {
// Data available only inside the fenced frame
};
await window.sharedStorage.worklet.addModule("reporting-worklet.js");
await window.sharedStorage.run("send-report", {
data: {
frameData,
},
});
Im reporting-worklet.js
-Worklet lesen wir die Ereignis-ID des Einbettungsdokuments aus sharedStorage.context
und die Ereignis-Level-Daten des Frames aus dem Datenobjekt, und berichten diese dann durch Private Aggregation:
class ReportingOperation {
convertEventIdToBucket(eventId) {
// …
}
convertEventPayloadToValue(info) {
// …
}
async run(data) {
// Data from the embedder
const eventId = sharedStorage.context;
// Data from the fenced frame
const eventPayload = data.frameData;
privateAggregation.sendHistogramReport({
bucket: convertEventIdToBucket(eventId),
value: convertEventPayloadToValue(eventPayload),
});
}
}
register("send-report", ReportingOperation);
Spezifikationen
Specification |
---|
Fenced Frame # dom-fencedframeconfig-setsharedstoragecontext |
Browser-Kompatibilität
Siehe auch
- Eingeschlossene Frames auf privacysandbox.google.com
- Das Privacy Sandbox auf privacysandbox.google.com