Parfois décrit comme "fréquence effective", un utilisateur voit souvent un nombre minimal de vues avant de reconnaître ou de se souvenir de certains contenus (souvent dans le contexte des vues d'annonces). Vous pouvez utiliser le stockage partagé pour créer des rapports concernant les utilisateurs uniques ayant vu un contenu au moins K fois.
L'API Shared Storage est une proposition de la Privacy Sandbox destinée au stockage intersites à usage général, qui prend en charge de nombreux cas d'utilisation possibles. L'API Private Aggregation est une sortie disponible dans le stockage partagé qui vous permet d'agréger des données intersites.
Essayer la mesure de 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 ensuite l'indicateur Test des API Privacy Sandbox Ads dans chrome://flags/#privacy-sandbox-ads-apis
.
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 évaluer le nombre d'utilisateurs ayant vu votre contenu K fois ou plus d'un 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é de 1 à 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, tandis que le nombre est utilisé comme valeur agrégable. Le rapport récapitulatif fournira 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 chargé du worklet de stockage partagé.k-frequency-measurement-worklet.js
est le worklet de stockage partagé qui lit le nombre d'impressions dans l'espace de 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 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); \
Interagir et partager des commentaires
La proposition de stockage partagé fait l'objet d'une discussion active 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.
- GitHub: consultez la proposition, posez des questions et participez à la discussion.
- Annonces concernant l'API Shared Storage: rejoignez ou consultez les annonces précédentes sur notre liste de diffusion.
- Assistance aux développeurs: posez des questions et participez à des discussions sur le dépôt d'assistance Privacy Sandbox pour les développeurs.