Execute um worklet do armazenamento compartilhado para selecionar e renderizar um URL em um frame isolado.
A API Shared Storage é uma proposta do Sandbox de privacidade para armazenamento entre sites de uso geral, que oferece suporte a muitos casos de uso possíveis. Um exemplo é o controle de frequência, que está disponível para teste no Chrome Beta 104.0.5086.0 e versões mais recentes.
Execute um script de worklet para selecionar um URL de uma lista fornecida, com base nos dados armazenados, e renderize esse URL em um frame isolado. Isso pode ser usado para selecionar novos anúncios ou outros conteúdos 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 o armazenamento compartilhado e os frames isolados, confirme se você está
usando o Chrome 104.0.5086.0 ou uma versão mais recente. Ative todas as APIs de privacidade de anúncios em chrome://settings/adPrivacy.
Você também pode ativar o armazenamento compartilhado com a flag --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames na linha de comando.
Testar exemplos de código
Para selecionar e criar um URL opaco, registre um módulo worklet para ler dados do armazenamento compartilhado. A classe 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.
Imagine que você queira selecionar um anúncio ou conteúdo diferente para renderizar com base na frequência com que um usuário já o viu. Você pode contar quantas vezes um usuário viu um conteúdo e armazenar esse valor no armazenamento compartilhado. Depois de armazenado, o valor no armazenamento compartilhado fica disponível para você 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 será retornado (índice 1). Caso contrário, o URL padrão será retornado (índice 0).
Neste exemplo:
- O
creative-selection-by-frequencyjsé carregado pelo iframe do produtor de conteúdo ou do anunciante e é responsável por carregar o worklet de armazenamento compartilhado e renderizar a origem opaca retornada em um frame isolado. creative-selection-by-frequency-worklet.jsé o worklet de armazenamento compartilhado que lê a contagem de frequência para determinar qual URL é retornado para um conteúdo ou um 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
Todos os casos de uso disponíveis para a API Select URL podem ser encontrados nesta seção. Vamos continuar adicionando exemplos à medida que recebermos feedback e descobrirmos novos casos de teste.
- Rotecionar criativos de anúncios: armazene dados, como o ID do criativo e a interação do usuário, para determinar quais criativos os usuários veem em diferentes sites.
- Selecionar criativos de anúncio por frequência: use os dados de contagem de visualizações para determinar quais criativos os usuários veem em diferentes sites.
- Executar testes A/B: é possível atribuir um usuário a um grupo de experimentos e armazenar esse grupo na Shared Storage para acesso em vários sites.
- Personalizar a experiência para clientes conhecidos: compartilhe conteúdo e calls-to-action personalizados com base no status de registro ou em outros estados do usuário.
Engajamento e como compartilhar feedback
A proposta da API Select URL está em discussão e desenvolvimento ativos e está sujeita a mudanças.
Queremos saber o que você acha da API Select URL.
- Proposta: revise a proposta detalhada.
- Discussão: participe da discussão em andamento para fazer perguntas e compartilhar suas ideias.