Visão geral do armazenamento compartilhado

Permita acesso de gravação ilimitado ao armazenamento entre sites com acesso de leitura que preserva a privacidade.

Status da implementação

Neste documento, descrevemos uma proposta de armazenamento não particionado entre sites: a API Shared Storage.

Proposta Status
Relatórios no nível do evento para a seleção de conteúdo (selectURL()) Disponível pelo menos até 2026
Orçamento por local
Explicação
Disponível na versão M119
Permitir gravação usando cabeçalhos de resposta
Explicação
Problema no GitHub (link em inglês)
Disponível na versão M124. Pode ser ativado manualmente na versão M119-M123
Tempo limite da contribuição da agregação particular
Explicação
Disponível na versão M119
Como depurar os worklets de armazenamento compartilhado com o DevTools
Seção
Disponível na versão M120
Atualização do limite de armazenamento de dados do armazenamento compartilhado para 5 MB
Explicação
Disponível na versão M124

Por que precisamos dessa API?

Para evitar o rastreamento de usuários entre sites, os navegadores particionam todas as formas de armazenamento (cookies, localStorage, caches etc.). No entanto, há vários casos de uso legítimos que dependem de armazenamento não particionado, o que seria impossível sem a ajuda das novas APIs da Web. Por exemplo, um produtor de conteúdo pode querer medir o alcance em diferentes sites, sem depender de identificadores entre sites.

A API Shared Storage permite que os sites armazenem e acessem dados entre sites não particionados. Esses dados precisam ser lidos em um ambiente seguro para evitar vazamentos.

É possível usar dados do armazenamento compartilhado de duas maneiras:

A quem se destina?

Há muitos tipos diferentes de empresas que podem se beneficiar do uso da API de armazenamento compartilhado. Exemplo:

  • As adtechs podem medir o alcance da campanha, definir limites de frequência e alternar criativos, tudo isso usando cookies de terceiros.
  • Os provedores de pagamentos podem determinar se um usuário já é cliente e personalizar a experiência de finalização de compra.
  • As empresas de segurança da Web podem criar uma lógica personalizada para sinalizar comportamentos suspeitos ou perigosos.

Sua empresa está procurando soluções de armazenamento entre sites que ainda não foram abordadas? Compartilhe seu caso de uso.

Casos de uso

A API Shared Storage pretende oferecer suporte a muitos casos de uso, substituindo vários usos atuais de cookies de terceiros. Isso inclui:

Caso de uso Descrição Porta de saída
Alternar criativos de anúncios É possível armazenar dados, como ID do criativo, contagens de visualizações e interações do usuário, para determinar quais criativos os usuários veem em diferentes sites. Isso permite equilibrar as visualizações e evitar a saturação excessiva de determinados conteúdos, o que pode ajudar a evitar uma experiência do usuário negativa. Seleção de URL
Fazer testes A/B É possível atribuir um usuário a um grupo experimental e armazenar esse grupo no armazenamento compartilhado para acesso entre sites. Seleção de URL
Personalizar a experiência do usuário para clientes conhecidos Você pode compartilhar conteúdo personalizado e calls-to-action com base no status de registro ou em outros estados de um usuário. Seleção de URL
Mitigações antiabuso As organizações antiabuso, antifraude e de segurança da Web costumam usar técnicas próprias para detectar usuários maliciosos, sejam bots automatizados ou pessoas reais tentando causar danos. É possível testar muitas estratégias diferentes aqui, seja usando o portão de saída da seleção de URL para codificar uma classificação de confiabilidade do usuário ou o portão de saída da agregação privada para criar conjuntos de dados para detecção de anomalias. Seleção de URL, API Private Aggregate
Medir o alcance único Muitos produtores de conteúdo e anunciantes geralmente querem saber quantas pessoas únicas viram o conteúdo deles. É possível usar o armazenamento compartilhado para gerar relatórios sobre a primeira vez que um usuário viu seu anúncio, vídeo incorporado e publicação. Além disso, você pode evitar a contagem duplicada desse usuário em outro site, gerando um relatório de ruído agregado do seu alcance único aproximado. API Private Aggregation
Medir as informações demográficas dos usuários Os produtores de conteúdo geralmente querem entender as informações demográficas do público. É possível usar o armazenamento compartilhado para registrar dados demográficos do usuário no contexto em que você os tiver, como seu site próprio, e usar relatórios agregados para gerar relatórios sobre eles em muitos outros sites, como conteúdo incorporado. API Private Aggregation
Meça o alcance da frequência K+ À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). É possível usar o armazenamento compartilhado para criar relatórios de usuários únicos que viram um conteúdo pelo menos K vezes. API Private Aggregation

A proposta tem como objetivo criar uma API de uso geral com suporte a muitos casos de uso futuros possíveis. Isso permite mais experimentação e mudança, para crescer junto com o ecossistema da Web.

Como funciona o armazenamento compartilhado?

O armazenamento compartilhado permite que você tome decisões informadas com base em dados entre sites, sem compartilhar informações do usuário (como histórico do navegador ou outros detalhes pessoais) com um site de incorporação ou exfiltrar dados para seus próprios servidores.

Você pode gravar no armazenamento compartilhado a qualquer momento, assim como outras APIs de armazenamento JavaScript, como localStorage ou indexesDB. Ao contrário das outras APIs de armazenamento, só é possível ler os valores do armazenamento compartilhado em um ambiente seguro, conhecido como worklet de armazenamento compartilhado.

Os worklets são onde você adiciona sua lógica de negócios. Dentro do worklet, é permitido ler e processar um valor do armazenamento compartilhado, mas não é possível retornar diretamente o valor exato para o autor da chamada do worklet. Para extrair informações úteis do worklet, há um conjunto de "portões" disponível. Há dois portões disponíveis, mas outros podem ser adicionados no futuro.

As portas de saída da API Shared Storage disponíveis são:

  • Seleção de URL entre sites: é possível executar um script de worklet para selecionar um URL de uma lista fornecida, com base nos dados armazenados, e renderizar esse conteúdo em um frame isolado.
  • Agregação com ruído com a API Private Aggregate: é possível executar um worklet para enviar dados entre sites usando essa API e retornar um relatório de resumo.

Testar a API Shared Storage

A API Shared Storage para o portão de saída da seleção de URL e o portão de saída da agregação privada estão disponíveis para teste. A seleção de conteúdo pode ser testada no Chrome Canary/Dev/Beta M105+, e a API Private Aggregate está disponível para testes no Chrome M107+ Canary e Dev. A API pode ser testada ativando todas as APIs de privacidade de anúncios em chrome://settings/adPrivacy.

Usar a demonstração

Uma demonstração está disponível, e você pode revisar o código no GitHub.

Esta demonstração foi criada com base na perspectiva de um anunciante, adtech, distribuidor de conteúdo ou outro serviço terceirizado que queira armazenar informações nos sites de diferentes editores. Na demonstração, o mesmo código de terceiros será executado nos sites do editor A e do editor B para cada caso de uso. Acesse as páginas do editor para saber como os dados são compartilhados em um contexto entre sites.

A demonstração contém casos de uso para seleção de conteúdo e agregação privada.

Para a demonstração da seleção de conteúdo, estão disponíveis os casos de uso Alternar criativos de anúncios, Personalizar a experiência de uso para clientes conhecidos e Executar testes A/B.

Para a demonstração da agregação particular, é possível visualizar Medir o alcance único e Medir o alcance da frequência K+. Meça as informações demográficas dos usuários.

Depurar worklets de armazenamento compartilhado com o DevTools

Para inspecionar os worklets do Armazenamento compartilhado iniciados pela página em que você está, acesse a guia "Sources" no painel DevTools e adicione o ponto de interrupção do listener do evento "Worklet de armazenamento compartilhado / Primeira instrução do script". Esse ponto de interrupção pausará a execução do script do módulo inicial ou os worklets de curta duração na inicialização.

Depurar um worklet de armazenamento compartilhado adicionando um listener no nível do evento.
Um ponto de interrupção pode ser adicionado a um worklet de armazenamento compartilhado.

Além disso, a página chrome://inspect/#shared-storage-worklets mostra todos os worklets de armazenamento compartilhado ativos de todas as páginas.

Interaja e compartilhe feedback

A proposta de armazenamento compartilhado está em discussão e sujeita a mudanças no futuro. Se você testar essa API e quiser enviar seu feedback, adoraríamos ouvir.