Dies wird manchmal als „effektive Häufigkeit“ bezeichnet. Es gibt oft eine Mindestanzahl von Aufrufen, bevor ein Nutzer bestimmte Inhalte erkennt oder sich an diese erinnert (oft im Zusammenhang mit Anzeigenaufrufen). Mit dem freigegebenen Speicher können Sie Berichte zu einzelnen Nutzern erstellen, die einen Inhalt mindestens K Mal angesehen haben.
Die Shared Storage API ist eine Privacy Sandbox-Lösung für die allgemeine, websiteübergreifende Speicherung, die viele mögliche Anwendungsfälle unterstützt. Die Private Aggregation API ist eine im freigegebenen Speicher verfügbare Ausgabe, mit der Sie websiteübergreifende Daten aggregieren können.
K+ Frequenzmessung ausprobieren
Wenn Sie die K+-Häufigkeitsmessung mit gemeinsam genutztem Speicher und privater Aggregation testen möchten, müssen Sie Chrome M107 oder höher verwenden. Aktivieren Sie dann unter chrome://flags/#privacy-sandbox-ads-apis
das Flag für den Test der Privacy Sandbox Ads APIs.
Sie können den freigegebenen Speicher auch mit dem Flag --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
in der Befehlszeile aktivieren.
Mit Codebeispielen experimentieren
Sie können die Anzahl der Nutzer messen, die Ihren Content mindestens K-Mal für einen bestimmten Client auf verschiedenen Websites angesehen haben. In diesem Beispiel wird die Anzahl an Impressionen dem freigegebenen Speicher hinzugefügt. Hier wird sie beim Laden des Contents um 1 erhöht. Wenn die Anzahl an Impressionen 3 erreicht hat, wird die Private Aggregation API aufgerufen. Die Content ID-Dimension wird als Aggregationsschlüssel codiert und die Anzahl wird als aggregierter Wert verwendet. Der zusammenfassende Bericht enthält Informationen wie „Ungefähr 391 Nutzer haben die Werbekampagnen-ID 123 mindestens 3 Mal gesehen.“
In diesem Fall gilt Folgendes:
k-frequency-measurement.js
wird über einen Frame geladen und ist für das Laden des Worklets mit dem freigegebenen Speicher verantwortlich.k-frequency-measurement-worklet.js
ist das Worklet des freigegebenen Speichers, das die Anzahl der Impressionen im freigegebenen Speicher liest und einen Bericht über die Private Aggregation API sendet.
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();
k-frequency-measurement-worklet.js
// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
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);
// 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); \
Reagieren und Feedback geben
Das Angebot für den freigegebenen Speicher wird derzeit diskutiert und kann sich in Zukunft ändern. Wenn Sie diese API testen und Feedback haben, freuen wir uns darauf, von Ihnen zu hören.
- GitHub Lesen Sie den Vorschlag, stellen Sie Fragen und nehmen Sie an Diskussionen teil.
- Ankündigungen zur Shared Storage API: Sehen Sie sich frühere Ankündigungen in unserer Mailingliste an.
- Entwicklersupport: Hier kannst du Fragen stellen und an Diskussionen zum Privacy Sandbox-Entwicklersupport-Repository teilnehmen.