Selecionar um criativo por frequência

Execute um worklet de Armazenamento compartilhado para selecionar um URL e renderizá-lo em um frame isolado.

A API Shared Storage é um modelo Proposta de sandbox para uso geral, armazenamento entre sites, compatível com muitas possíveis casos de uso. Um exemplo é o controle de frequência, que está disponível para teste no Chrome Beta 104.0.5086.0 e posterior.

Execute um script de worklet para selecionar um URL de uma lista fornecida, com base nos e processar esse URL em um frame isolado. Isso pode ser usado para selecionar novos anúncios ou outro conteúdo quando o limite de frequência for atingido.

Testar a seleção de criativos por frequência

Para testar a seleção de criativos por frequência com Armazenamento compartilhado e Fenced Frames, confirme se usando o Chrome 104.0.5086.0 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

Para selecionar e criar um URL opaco, registre um módulo de worklet para ler os dados dados de armazenamento. A classe de worklet recebe uma lista de até oito URLs e retorna o índice do URL escolhido.

Quando o cliente chama sharedStorage.selectURL(), o worklet é executado e retorna um URL opaco para ser renderizado em um frame isolado.

Digamos que você queira selecionar um anúncio ou conteúdo diferente para renderizar com base na frequência de quantas vezes um usuário o viu antes. É possível contar quantas vezes um usuário acessou um conteúdo e armazenar esse valor no armazenamento compartilhado. Depois de armazenado, o valor no armazenamento compartilhado fica disponível em diferentes origens.

Em seguida, o worklet de armazenamento compartilhado lê os valores no armazenamento compartilhado e incrementa o contador a cada visualização adicional. Se a contagem não atingir o limite predefinido, o conteúdo que você quer renderizar vai ser retornado (índice 1). Caso contrário, será retornado o URL padrão (índice 0).

Neste exemplo:

  • creative-selection-by-frequencyjs é carregado por meio do iframe do produtor de conteúdo ou do anunciante e é responsável para carregar o worklet de armazenamento compartilhado e renderizar a imagem opaca retornada em um frame isolado.
  • creative-selection-by-frequency-worklet.js é a worklet de armazenamento compartilhado que lê o contagem de frequência para determinar qual URL é retornado para um conteúdo ou criativo de anúncio.

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

Casos de uso

Esses são apenas alguns dos possíveis casos de uso do armazenamento compartilhado. Vamos continuamos adicionando exemplos à medida que receber feedback e descobrir novos casos de uso.

Seleção de conteúdo

Selecionar e exibir conteúdos diferentes em sites diferentes da frames isolados com base em informações no armazenamento compartilhado. A porta de saída para esses casos de uso é a seleção de URL.

  • Rotação de criativos: Armazenar dados, como ID do criativo, contagens de visualizações e interação do usuário, para determinar quais usuários podem ser vistos em sites diferentes.
  • Teste A/B: É possível atribuir um usuário a um grupo experimental e, em seguida, armazenar esse grupo no armazenamento compartilhado para ser acessado entre sites.
  • Experiências do usuário personalizadas: Compartilhe conteúdo personalizado e calls-to-action com base no status de registro ou em outros estados do usuário.

Gerar relatórios resumidos

Coletar informações com o armazenamento compartilhado e gerar um relatório de resumo agregado e barulhento. A porta de saída para esses casos de uso é API Private Aggregate.

  • Medição do alcance único: Muitos produtores de conteúdo e anunciantes querem saber quantos as pessoas viram seu conteúdo. Use o armazenamento compartilhado para gravar a primeira vez que um usuário viram seu anúncio, vídeo incorporado ou publicação. Assim, você evita duplicações contando o mesmo usuário em sites diferentes. Depois, você pode usar a API Private Aggregate para gerar um relatório de resumo do seu alcance.
  • Medição demográfica: Os produtores de conteúdo geralmente querem entender as informações demográficas público-alvo. Você pode usar o Armazenamento compartilhado para registrar dados demográficos de usuários em um o contexto em que você os tem, como seu site primário, e usar para gerar relatórios em vários outros sites, como em conteúdo incorporado.
  • Medição de frequência de K+: Às vezes, descrita como "frequência efetiva", muitas vezes há um número mínimo visualizações antes de um usuário reconhecer ou lembrar de determinado conteúdo (geralmente em contexto das visualizações de anúncios). Você pode usar o armazenamento compartilhado para criar relatórios de usuários únicos que viram um conteúdo pelo menos K vezes.

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.