Medição do Unique Reach

Muitos produtores de conteúdo e anunciantes querem saber quantas pessoas únicas viram o conteúdo deles. Use o armazenamento compartilhado para registrar a primeira vez que um usuário viu seu anúncio, vídeo incorporado ou publicação e evite a contagem duplicada desse mesmo usuário em sites diferentes. Depois, você pode usar a API Private Aggregate para gerar um relatório de resumo do seu alcance.

A API Shared Storage é um modelo Proposta de sandbox para uso geral, armazenamento entre sites, compatível com muitas possíveis casos de uso. A API Private Aggregate é uma saída disponível no Armazenamento compartilhado que permite agregar dados entre sites. Para saber mais sobre os métodos de implementação dessas medições, confira nosso artigo de alcance.

Teste a medição do alcance único

Para testar a medição de alcance único 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

Talvez você queira acompanhar quantos usuários únicos viram seu conteúdo em diferentes sites. Neste exemplo, a dimensão do ID do conteúdo é codificada na chave de agregação (bucket), e a contagem é usada como o valor agregável. O relatório de resumo vai conter informações como "Aproximadamente 391 usuários viram o Content ID 123".

Neste exemplo: * unique-reach-measurement.js é carregado por um frame e é responsável por carregar o worklet de armazenamento compartilhado. * unique-reach-measurement-worklet.js é o worklet de armazenamento compartilhado que verifica a flag nesse armazenamento e envia um relatório pela API Private Aggregate.

reach-measurement.js

async function measureUniqueReach() {
  // Load the Shared Storage worklet
  await window.sharedStorage.worklet.addModule('reach-measurement-worklet.js');

  // Run the reach measurement operation
  await window.sharedStorage.run('reach-measurement', { data: { contentId: '1234' } });
}

measureUniqueReach();

reach-measurement-worklet.js

// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
const SCALE_FACTOR = 65536;

function convertContentIdToBucket(contentId) {
  return BigInt(contentId);
}

class ReachMeasurementOperation {
  async run(data) {
    const { contentId } = data;

    // Read from Shared Storage
    const key = 'has-reported-content';
    const hasReportedContent = (await sharedStorage.get(key)) === 'true';

    // Do not report if a report has been sent already
    if (hasReportedContent) {
      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(key, true);
  }
}

// Register the operation
register('reach-measurement', ReachMeasurementOperation);

Engage and share feedback

The Shared Storage proposal is under active discussion and subject to change in the future. If you try this API and have feedback, we'd love to hear it.