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 são particionamento todas as formas de armazenamento (cookies, localStorage, caches etc). No entanto, existem casos de uso legítimos que dependem de armazenamento não particionado, o que poderia seria impossível sem a ajuda das 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.

Com a API Shared Storage, os sites armazenam e acessam arquivos dados entre sites. Esses dados precisam ser lidos em um ambiente seguro para evitar vazamento.

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

A quem se destina?

Há muitos tipos diferentes de empresas que podem se beneficiar com o uso do API Shared Storage. 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á buscando soluções de armazenamento entre sites que ainda não foram abordada? Compartilhe seu caso de uso.

Casos de uso

A API Shared Storage tem como objetivo 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 Você pode armazenar dados, como ID do criativo, contagens de visualização e interação do usuário, para determinar de quais criativos podem ser vistos em sites diferentes. 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, descrita como "frequência efetiva", geralmente há um número mínimo de visualizações para que o 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 pretende criar uma API de uso geral que ofereça suporte a muitas possíveis casos de uso futuros. Isso permite mais experimentação e mudança, cresçam junto com o ecossistema da Web.

Como funciona o armazenamento compartilhado?

Com o armazenamento compartilhado, você toma decisões com base em dados entre sites, sem compartilhar informações do usuário (como histórico do navegador ou outros dados detalhes) com um site de incorporação ou vazamento de 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, tem permissão para ler e processar um valor do armazenamento compartilhado, mas não é retornam diretamente o valor exato para o autor da chamada do worklet. Para extrair valores úteis informações do worklet, um conjunto de "portões" estão disponíveis. Existem duas 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 pela API Private Aggregate e retornar um relatório de resumo.

Testar a API Shared Storage

API Shared Storage para porta de saída de seleção de URL e saída de agregação particular portão 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ão disponíveis para teste no Chrome M107+ Canary e Dev. Para testar a API, ative 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.

Essa demonstração é criada da perspectiva de um anunciante, adtech, distribuidor de conteúdo ou outro serviço de terceiros que queira armazenar informações em diferentes páginas da Web locais Na demonstração, a mesma terceira será executado nos sites do Editor A e do Editor B para para cada caso de uso. Acesse as páginas do editor para saber como os dados são compartilhados em um 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, Alternar criativos de anúncios, Personalizar a experiência de uso para clientes conhecidos Há casos de uso disponíveis para execução de testes A/B.

Para a demonstração da agregação privada, é possível visualizar Meça o alcance único, Meça 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 de armazenamento compartilhado iniciados na página em que você está, acesse a seção "Fontes" no painel DevTools e adicione "Shared Storage Worklet / Script First Statement" ponto de interrupção do listener de eventos. 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 ativa e sujeita a alterações. no futuro. Se você testar essa API e tiver algum feedback, conte para nós.