Reichweite der Häufigkeit in K+ messen

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.

Privacy Sandbox Ads APIs-Test aktivieren, um diese APIs zu verwenden

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.