Às vezes descrito como "frequência efetiva", geralmente há um número mínimo de visualizações antes que um usuário reconheça ou se lembre de determinado conteúdo (geralmente no contexto de visualizações de anúncios). Use o armazenamento compartilhado para criar relatórios de usuários únicos que viram um conteúdo pelo menos K vezes.
A API Shared Storage é uma proposta do Sandbox de privacidade para armazenamento entre sites e de uso geral, que oferece suporte a muitos casos de uso possíveis. A API Private Aggregate é uma saída disponível no Armazenamento compartilhado que permite agregar dados entre sites.
Teste a medição de frequência K+
Para testar a medição de frequência K+ com o armazenamento compartilhado e a agregação privada, confirme se você está usando o Chrome M107 ou mais recente. Ative todas as APIs de privacidade de anúncios em chrome://settings/adPrivacy
.
Também é possível ativar o armazenamento compartilhado com a sinalização --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
na linha de comando.
Teste exemplos de código
Você pode querer medir o número de usuários que acessaram seu conteúdo K ou mais vezes para determinado cliente em sites diferentes. Nesse exemplo, a contagem de impressões é adicionada ao armazenamento compartilhado, onde aumenta em 1 sempre que o conteúdo é carregado. Quando a contagem de impressões atingir três, a API Private Aggregate será chamada. A dimensão do ID do conteúdo é codificada como chave de agregação, e a contagem é usada como o valor agregável. O relatório de resumo fornecerá informações como "Aproximadamente 391 usuários viram o ID da campanha publicitária 123 pelo menos três vezes".
Neste exemplo:
- O
k-frequency-measurement.js
é carregado por um frame e é responsável por carregar o worklet de armazenamento compartilhado. - O
k-frequency-measurement-worklet.js
é o worklet de armazenamento compartilhado que lê a contagem de impressões nesse armazenamento e envia um relatório pela API Private Aggregate.
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.contributeToHistogram({ bucket, value });
// Set the report submission status flag
await this.sharedStorage.set(hasReportedContentKey, 'true');
}
}
// Register the operation
register('k-freq-measurement', KFreqMeasurementOperation); \
Interaja e compartilhe feedback
A proposta de armazenamento compartilhado está em discussão ativa e sujeita a alterações. no futuro. Se você testar essa API e tiver algum feedback, conte para nós.
- GitHub: leia proposta, artigo sobre contato, fazer perguntas e participar de discussões.
- Comunicados da API Shared Storage: participe ou veja comunicados anteriores na nossa lista de e-mails.
- Suporte ao desenvolvedor: faça perguntas e participe de discussões no Repositório de suporte ao desenvolvedor do Sandbox de privacidade.