O Chrome continua reduzindo as informações compartilhadas na string do user agent para ajudar a proteger a privacidade do usuário.
A partir do Chrome 110 (fevereiro de 2023), vamos introduzir gradualmente um valor fixo para a versão do Android e o modelo do dispositivo. O valor padrão será sempre Android 10
em um modelo K
.
Se você usa o user-agent para detectar a versão do sistema operacional, o modelo do dispositivo Android ou a versão detalhada do navegador de um visitante, talvez seja necessário tomar medidas. Leia mais para saber mais.
O user-agent é uma string que fornece informações sobre o navegador e o ambiente do usuário, como saber que um visitante do seu site está usando o Chrome versão 110 no Android. O navegador envia isso em um cabeçalho HTTP e o disponibiliza por JavaScript.
O problema com a string completa do user agent é que ela compartilha informações detalhadas sobre o navegador por padrão em cada solicitação, o que é um fator importante para permitir o rastreamento entre sites. Nosso objetivo é reduzir as oportunidades de coleta passiva desses dados, além de oferecer APIs para que você possa acessar os dados ativamente quando precisar.
Redução do user agent até agora
Já começamos a remover alguns dos dados de user-agent disponíveis por padrão e a substituí-los por valores fixos.
No Chrome 101, substituímos o número da versão secundária por zeros, por exemplo, Chrome/101.3.2.1 passou a ser Chrome/101.0.0.0.
No Chrome 107, substituímos a versão do sistema operacional para computador e as informações da CPU por um valor fixo para a plataforma.
Mac | ➡ | Macintosh; Intel Mac OS X 10_15_7 |
Windows | ➡ | Windows NT 10.0; Win64; x64 |
ChromeOS | ➡ | X11; CrOS x86_64 14541.0.0 |
Linux | ➡ | X11; Linux x86_64 |
Correção da versão do Android e do modelo do dispositivo a partir do Chrome 110
A partir do Chrome 110, estamos introduzindo gradualmente um valor fixo para a versão do Android e o modelo do dispositivo.
Em vez de algo como Android 13
em Pixel 7
, o valor padrão sempre será Android 10
em um modelo K
.
Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
Nenhuma mudança no formato do agente do usuário
A redução do user-agent muda os valores retornados no user-agent, mas o formato permanece o mesmo. Se você só usa o user-agent para ler o tipo de sistema operacional ou a versão principal do navegador, esses dados vão continuar sendo atualizados como antes, e não é necessário fazer nada.

Alternativas para user-agent
Se você usa dados mais detalhados, é sempre bom verificar se é possível usar o aprimoramento progressivo ou a detecção de recursos.
Lembre-se sempre de que o user-agent é como qualquer outro valor fornecido pelo usuário. Você precisa validar o valor e não presumir que ele é preciso. O valor do user-agent pode ser facilmente alterado pelo usuário, extensões, outros clientes ou simplesmente não ser enviado. Na maioria dos casos, é possível enviar conteúdo funcional aos visitantes sem dados de user-agent.
Solicitar dados detalhados com dicas de cliente HTTP do user agent
Há muitos motivos válidos para acessar dados detalhados do user agent, como fornecer conteúdo específico do dispositivo, funcionalidade antifraude ou registro detalhado. Se você precisar de dados mais detalhados, use a API User-Agent Client Hints (UA-CH) para acessá-los. Assim como o user-agent, o UA-CH está disponível por cabeçalhos HTTP ou JavaScript.
Talvez você já tenha visto os cabeçalhos padrão sendo enviados com o prefixo Sec-CH-UA-
, que informa o navegador, a versão principal, o sistema operacional e se o navegador é um dispositivo móvel.
⏫ Cabeçalhos de solicitação padrão de User-Agent Client Hints do Chrome:
Sec-CH-UA: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"
Você pode usar o cabeçalho Accept-CH
na resposta para solicitar mais dados.
Nesse caso, é possível solicitar Sec-CH-UA-Platform-Version
e Sec-CH-UA-Model
para receber a versão do Android e o tipo de dispositivo em solicitações subsequentes.
⏬ Cabeçalho de resposta do servidor especificando a versão da plataforma e o modelo:
Accept-CH:
Sec-CH-UA-Platform-Version,
Sec-CH-UA-Model
⏫ Cabeçalhos de solicitação de volta do Chrome, incluindo a versão do Android e o nome do modelo:
Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"
Você pode fazer o mesmo em JavaScript chamando getHighEntropyValues()
na API userAgentData
e transmitindo uma matriz dos valores que você quer: platformVersion
e model
.
Isso retorna uma promessa com um objeto que contém os valores específicos.
navigator.userAgentData
.getHighEntropyValues(
['platformVersion', 'model']
).then(ua => { console.log(ua)
});
{
"platformVersion": "13.0.0",
"model": "Pixel 7"
}
Solicitações iniciais ou entre origens
Se você tiver recursos de origem cruzada na sua página que precisam desses valores, poderá permitir o acesso usando o cabeçalho HTTP Permissions-Policy
ou a metatag Delegate-CH
no HTML.
Se for necessário que seu site tenha esses valores sensíveis na primeira solicitação de alto nível, use o cabeçalho HTTP Critical-CH
, que vai instruir o navegador a tentar novamente a solicitação inicial com essas dicas extras.
Isso pode ser útil para sistemas legados difíceis de atualizar, mas o ideal é não depender desses valores sensíveis para veicular o HTML inicial.
Saiba mais
Para conferir a string de user agent reduzida em ação, faça o seguinte:
- Confira a string de user agent reduzida para seu dispositivo em goo.gle/reduced-ua-demo
- Confira todas as dicas de cliente do user-agent do cabeçalho HTTP e do JavaScript para seu dispositivo em goo.gle/ua-ch-demo.
- Envie a string do user agent reduzida no seu navegador ativando a flag do Chrome
#reduce-user-agent
.
Você ainda pode se inscrever no teste de origem de redução do user agent para receber o user agent reduzido no seu site. No entanto, vamos encerrar esse teste no início de março, à medida que continuamos a enviar o user agent reduzido por padrão.
Temos mais recursos na página de destino da redução de user agent, e você também pode enviar problemas no nosso repositório do GitHub dedicado user-agent-reduction.