Visão geral do armazenamento compartilhado

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

Status da implementação

Neste documento, descrevemos uma proposta de armazenamento não particionado e em vários 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 estão particionando todas as formas de armazenamento (cookies, localStorage, caches etc.). No entanto, há vários casos de uso legítimos que dependem do armazenamento não particionado, o que seria impossível sem a ajuda de novas APIs da Web. Por exemplo, um produtor de conteúdo pode querer medir o alcance em sites diferentes, sem depender de identificadores entre sites.

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

É possível usar os 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 Shared Storage. Exemplo:

  • Elas podem medir o alcance da campanha, definir limites de frequência e alternar os criativos, e tudo isso depende de cookies de terceiros.
  • Os provedores de pagamento podem determinar se um usuário é um cliente atual 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 locais que ainda não foram resolvidas? 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 por 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ção do usuário para determinar quais criativos os usuários veem em diferentes sites. Isso permite que você equilibre as visualizações e evite o excesso de saturação 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 Você pode 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 do usuário. Seleção de URL
Mitigações de combate ao abuso As organizações antiabuso, antifraude e de segurança da Web geralmente usam técnicas próprias para detectar usuários mal-intencionados, sejam eles 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 particular 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. É 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, publicação e evitar a contagem duplicada desse mesmo usuário em outro site. Isso gera um relatório com ruído agregado do seu alcance único aproximado. API Private Aggregation
Medir as informações demográficas do usuário 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 em um contexto em que eles estão disponíveis, 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
Medir o alcance da frequência K+ Às vezes descrito como "frequência efetiva", geralmente há um número mínimo de visualizações para 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. API Private Aggregation

A proposta pretende criar uma API de uso geral compatível com muitos casos de uso futuros possíveis. Isso permite que mais experimentações e mudanças possam crescer junto com o ecossistema da Web.

Como funciona o armazenamento compartilhado?

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

É possível gravar no armazenamento compartilhado a qualquer momento, como em outras APIs de armazenamento JavaScript, como localStorage ou IndexingDB. Ao contrário de outras APIs de armazenamento, só é possível ler os valores de 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 da worklet, é possível ler e processar um valor do armazenamento compartilhado, mas não é possível retornar diretamente o valor exato ao autor da chamada da worklet. Um conjunto de "portas" está disponível para extrair informações úteis da worklet. Há duas portas disponíveis, mas outras podem ser adicionadas no futuro.

Os portões de saída da API Shared Storage disponíveis são:

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

Teste a API Shared Storage

A API Shared Storage para o portão de saída da seleção de URL e a porta de saída da agregação particular 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 teste no Chrome M107 e versões mais recentes Canary e Dev. Para testar a API, ative a flag Experimento das APIs de anúncios do Sandbox de privacidade em chrome://flags/#privacy-sandbox-ads-apis.

Ative o experimento das APIs de anúncios do Sandbox de privacidade para usar essas APIs.

Usar a demonstração

Há uma demonstração disponível e você pode revisar o código no GitHub (link em inglês).

Esta demonstração foi criada da perspectiva de um anunciante, adtech, distribuidor de conteúdo ou outro serviço de terceiros que quer armazenar informações em sites de diferentes editores. Na demonstração, o mesmo código de terceiro será executado nos sites do Editor A e do Editor B para cada caso de uso. Acesse as páginas do editor para conferir 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 particular.

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

Para a demonstração da agregação privada, você pode conferir as opções únicas Medir o alcance único e Medir o alcance da frequência K+. Medir as informações demográficas do usuário e

Depurar os worklets de armazenamento compartilhado com o DevTools

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

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

Além disso, a página chrome://inspect/#shared-storage-worklets mostra todos os worklets ativos de armazenamento compartilhado 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.