Mesurer la couverture par fréquence de K+

Parfois décrit comme « fréquence effective », Il existe souvent un nombre minimal de vues avant qu'un utilisateur ne reconnaisse un contenu spécifique ou ne s'en souvienne (souvent dans le contexte des vues d'annonces). Vous pouvez utiliser Shared Storage pour créer des rapports sur les utilisateurs uniques ayant consulté un contenu au moins K fois.

L'API Shared Storage est un service Proposition de bac à sable pour le stockage intersites à usage général, cas d'utilisation possibles. L'API Private Aggregation est une sortie disponible dans Shared Storage qui vous permet d'agréger des données intersites.

Essayer la mesure de la fréquence K+

Pour tester la mesure de la fréquence K+ avec le stockage partagé et l'agrégation privée, vérifiez que vous utilisez Chrome M107 ou une version ultérieure. Activez toutes les API Ad Privacy sous chrome://settings/adPrivacy.

Vous pouvez également activer le stockage partagé à l'aide de l'option --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames dans la ligne de commande.

Tester des exemples de code

Vous pouvez mesurer le nombre d'utilisateurs qui ont vu votre contenu au moins k fois par client donné sur différents sites. Dans cet exemple, le nombre d'impressions est ajouté à l'espace de stockage partagé, où il est incrémenté d'une unité à chaque chargement du contenu. Lorsque le nombre d'impressions atteint 3, l'API Private Aggregation est appelée. La dimension Content ID est encodée en tant que clé d'agrégation, et le nombre est utilisé comme valeur agrégable. Le rapport récapitulatif inclura des informations telles que "Environ 391 utilisateurs ont vu l'ID de campagne publicitaire 123 au moins trois fois".

Dans cet exemple :

  • k-frequency-measurement.js est chargé via un frame et est responsable du chargement du Worklet de stockage partagé.
  • k-frequency-measurement-worklet.js est le Worklet de stockage partagé qui lit le nombre d'impressions dans le stockage partagé et envoie un rapport via l'API Private Aggregation.

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 sharedStorage.get(hasReportedContentKey)) === 'true';
    const impressionCount = parseInt((await 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 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.contributeToHistogram({ bucket, value });

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

// Register the operation

register('k-freq-measurement', KFreqMeasurementOperation); \

Interagir et partager des commentaires

La proposition de stockage partagé est en cours de discussion et est susceptible d'être modifiée. à l'avenir. Si vous essayez cette API et que vous avez des commentaires, n'hésitez pas à nous en faire part.