TL;DR, Respuesta rápida
11 min de lecturaLos User-Agent Client Hints son el sustituto de Chromium para la cadena User-Agent completa. Cada petición lleva tres encabezados de baja entropía, Sec-CH-UA, Sec-CH-UA-Mobile y Sec-CH-UA-Platform, con la marca del navegador, la versión principal, un indicador de móvil y el nombre del sistema operativo. Un servidor pide más, como la versión del sistema operativo o el modelo del dispositivo, con un encabezado de respuesta Accept-CH, o un script llama a navigator.userAgentData.getHighEntropyValues(). Desde Chrome 110, la propia cadena UA está congelada en valores de plataforma fijos. Firefox y Safari no admiten client hints.
¿Qué son los user agent client hints?
Los navegadores Chromium envían los user agent client hints como un conjunto de encabezados de petición Sec-CH-UA que llevan los datos del navegador y de la plataforma en campos separados, y solo envían los campos detallados cuando un servidor los pide. La documentación para desarrolladores de Chrome dice que el modelo es uno "where the server must ask the browser for a set of data about the client (the hints) and the browser applies its own policies or user configuration to determine what data is returned." Los hints están activados por defecto desde Chrome 89.
El antiguo encabezado User-Agent metía todo en una sola cadena en cada petición: navegador, versión completa, sistema operativo y su versión, y en Android el modelo del dispositivo. El artículo de Google sobre el cambio dice que esa combinación "could contain enough information to allow individual users to be uniquely identified." Los client hints la dividen para que la petición por defecto lleve menos, y cualquier dato extra haya que pedirlo de una forma que el navegador pueda ver.
Si gestionas la analítica de un sitio web, esto afecta a dos informes: los desgloses por navegador y sistema operativo, y el tipo de dispositivo. Los dos siguen funcionando en Chrome, pero algunos detalles que antes llegaban gratis ahora están detrás de una solicitud explícita.
- Navegador y versión completa
- Sistema operativo y versión
- Modelo del dispositivo en Android
- Todo en cada petición
- Marca del navegador y versión principal
- Indicador de móvil
- Nombre del sistema operativo
- Cualquier otro dato espera a que el servidor lo pida
¿Qué encabezados Sec-CH-UA envía Chrome?
Chrome envía tres encabezados Sec-CH-UA en cada petición HTTPS y retiene el resto hasta que el servidor los pide. La especificación del WICG define once encabezados. Los que importan para la analítica:
| Encabezado | Valor de ejemplo | Entropía | ¿Se envía por defecto? |
|---|---|---|---|
Sec-CH-UA | "Chromium";v="93", "Google Chrome";v="93" | Baja | Sí |
Sec-CH-UA-Mobile | ?0 para escritorio, ?1 para móvil | Baja | Sí |
Sec-CH-UA-Platform | "macOS" | Baja | Sí |
Sec-CH-UA-Platform-Version | "10.0.0" | Alta | No, requiere Accept-CH |
Sec-CH-UA-Full-Version-List | "Google Chrome";v="98.0.4738.0" | Alta | No, requiere Accept-CH |
Sec-CH-UA-Model | "Pixel 3" | Alta | No, requiere Accept-CH |
Sec-CH-UA-Arch | "arm" | Alta | No, requiere Accept-CH |
Sec-CH-UA-Bitness | "64" | Alta | No, requiere Accept-CH |
La especificación también define Sec-CH-UA-WoW64, Sec-CH-UA-Form-Factors y el obsoleto Sec-CH-UA-Full-Version. Los client hints solo viajan por conexiones seguras, así que una página servida por HTTP sin cifrar no recibe ninguno.
La lista de marcas trae una rareza intencionada. Incluye una marca falsa como " Not;A Brand";v="99", que la documentación de Chrome llama GREASE y que puede aparecer en cualquier posición y con cualquier nombre. MDN explica que existe para evitar que los servidores acaben "rejecting unknown user agents outright." Cualquier parser que escribas tiene que ignorar las marcas que no reconoce en lugar de fiarse de la posición.
¿Qué diferencia hay entre los hints de baja y de alta entropía?
Los hints de baja entropía son los campos que un navegador envía a todos los sitios porque revelan poco más de lo que ya muestran otros encabezados, y los de alta entropía son los campos que acotan un navegador lo suficiente como para ayudar a identificarlo. La especificación del WICG dice que los hints por defecto exponen "only the user agent's branding information, and the significant version number," y que ambos son "fairly clearly sniffable" a partir de otros encabezados y de las funciones que admite el navegador.
"Alta entropía" viene de la teoría de la información. La documentación de Chrome describe el término como una referencia a "the amount of information that these values reveal about the user's browser." Un nombre de modelo como Pixel 3 o una compilación exacta como 98.0.4738.0 divide la población de usuarios de Chrome en grupos mucho más pequeños que "Chrome 98 en Android". La guía de huella digital del navegador explica cómo se suman esos campos al combinarse.

¿Cómo pide un sitio hints de alta entropía con Accept-CH?
Un sitio pide hints de alta entropía devolviendo un encabezado de respuesta Accept-CH que nombra los hints que quiere, y a partir de ahí el navegador decide si los envía en las peticiones posteriores a ese origen. El intercambio tiene cuatro pasos:
- El navegador pide una página y solo envía
Sec-CH-UA,Sec-CH-UA-MobileySec-CH-UA-Platform. - El servidor responde con un encabezado como
Accept-CH: Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, o la página incluye la misma lista en una etiqueta<meta http-equiv="Accept-CH">. - Las peticiones posteriores a ese origen llevan los hints pedidos, si la política del navegador lo permite.
- Un nuevo encabezado
Accept-CHsustituye por completo el conjunto anterior, y uno vacío lo borra.
Tres reglas de la documentación de Chrome despistan a mucha gente. Los hints pedidos mediante Accept-CH duran "for the duration of the browser session or until a different set of hints are specified." Solo se envían en peticiones del mismo origen, así que una petición a cdn.example.net no recibe nada a menos que la página delegue cada hint con un encabezado Permissions-Policy. Y una primera visita solo lleva los hints por defecto, porque el servidor todavía no los ha pedido. Chromium documenta un mecanismo aparte para los hints que un sitio necesita en la primera petición.
Los scripts tienen una segunda vía. navigator.userAgentData expone los valores de baja entropía como brands, mobile y platform, y navigator.userAgentData.getHighEntropyValues() devuelve una promesa con campos como model, platformVersion y fullVersionList. Igual que con los encabezados, Chrome dice que "it's down to the browser what values, if any, are returned."
¿Qué cambió la reducción del User-Agent en Chrome?
La reducción del User-Agent congeló la mayor parte de la cadena User-Agent de Chrome en valores fijos, así que el antiguo encabezado ahora solo lleva la versión principal del navegador, una cadena de plataforma fija y un marcador de móvil. El proyecto Chromium lo desplegó por fases:
| Versión de Chrome | Lanzamiento | Cambio en la cadena UA |
|---|---|---|
| Chrome 101 | 26 de abril de 2022 | Números menor, de compilación y de parche congelados en 0.0.0 |
| Chrome 107 | 25 de octubre de 2022 | Plataforma y versión del sistema operativo de escritorio sustituidas por valores fijos |
| Chrome 110 | 7 de febrero de 2023 | Versión de Android fijada en 10 y modelo del dispositivo sustituido por K |
| Chrome 113 | 2023 | Fin de la reverse origin trial, así que todas las cargas de página reciben la cadena reducida |
Los valores fijos de plataforma de escritorio son cadenas literales. Chromium los lista como Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7, X11; Linux x86_64 y X11; CrOS x86_64 14541.0.0, y todos los teléfonos Android indican Linux; Android 10; K. Chromium señala que estos valores "will not update even if a user is on an updated operating system or device." La reducción se aplica a Windows, macOS, Linux, ChromeOS y Chrome en Android. Chromium no tiene planes actuales para iOS ni para Android WebView.
La página de Chromium es explícita sobre dónde fue a parar el detalle antiguo: "All of the information that was contained in the User-Agent string prior to reduction is available through the high entropy client hints."
Panel en tiempo real
Seguimiento de objetivos
Rastreo sin cookies
¿Qué navegadores admiten los user agent client hints?
Los navegadores Chromium admiten los user agent client hints, y Firefox y Safari no. Los datos de compatibilidad de navegadores de MDN indican que Sec-CH-UA está admitido en Chrome y Edge desde la versión 89 y en Opera desde la versión 75, y marcan tanto Sec-CH-UA como Accept-CH como no admitidos en Firefox y Safari. navigator.userAgentData sigue el mismo reparto.
Eso deja a la analítica con dos vías de parseo. En Chrome y Edge, la cadena UA reducida más los hints de baja entropía dan el navegador, la versión principal, el nombre del sistema operativo y un indicador de móvil. En Firefox y Safari, el encabezado User-Agent sigue siendo la única fuente, y WebKit también ha congelado su propia cadena. Su página de tracking prevention incluye, entre sus cambios contra el fingerprinting, que WebKit "altered the user agent string to not change with minor software updates."

¿Qué puede seguir leyendo una herramienta de analítica para los informes de navegador, sistema operativo y dispositivo?
Una herramienta de analítica sigue leyendo el nombre del navegador, la versión principal, la familia del sistema operativo y si es móvil o escritorio en cada visita de Chrome sin pedir nada, pero la versión del sistema operativo y el modelo del dispositivo necesitan hints de alta entropía. El desglose práctico para un visitante de Chrome:
| Campo del informe | Desde la cadena UA reducida | Desde los hints de baja entropía por defecto | Necesita un hint de alta entropía |
|---|---|---|---|
| Nombre del navegador | Sí | Sí, Sec-CH-UA | No |
| Versión principal del navegador | Sí | Sí, Sec-CH-UA | No |
| Versión completa del navegador | No, muestra .0.0.0 | No | Sec-CH-UA-Full-Version-List |
| Nombre del sistema operativo | Sí | Sí, Sec-CH-UA-Platform | No |
| Versión del sistema operativo | No, valor fijo | No | Sec-CH-UA-Platform-Version |
| Móvil o escritorio | Sí, token Mobile | Sí, Sec-CH-UA-Mobile | No |
| Modelo del teléfono | No, muestra K | No | Sec-CH-UA-Model |
Todos los visitantes de Windows 11 en Chrome indican Windows NT 10.0 en la cadena UA, así que un reparto entre Windows 10 y 11 basado en la cadena UA es incorrecto. Las visitas de Chrome en Android dicen todas que son la versión 10. Si un gráfico de versiones del sistema operativo en tu analítica muestra una sola versión acaparándolo todo entre finales de 2022 y mediados de 2023, eso es la reducción, no tu audiencia. La detección de bots también se complica, porque un cliente automatizado copia una cadena de Chrome actual con una línea de código; la guía sobre el filtrado de tráfico de bots cubre comprobaciones que no dependen solo del UA.
¿Los user agent client hints reducen el fingerprinting?
Los user agent client hints reducen el fingerprinting pasivo, porque un sitio ya no recibe la versión completa, la versión del sistema operativo y el modelo del dispositivo en cada petición, pero no frenan a un script que pide valores de alta entropía a propósito. La especificación del WICG recoge las dos mitades: el objetivo es "reduce the amount of default entropy exposed to the web at large," y aun así "it will still be possible for some, or all, hints to be requested and used for active fingerprinting purposes."
La diferencia está en la visibilidad. Una petición de Sec-CH-UA-Model aparece en el encabezado Accept-CH del sitio o en una llamada a getHighEntropyValues(), algo que las herramientas de privacidad y los auditores pueden detectar. La cadena antigua entregaba los mismos datos sin que se notara. Para el dueño de un sitio, la regla es sencilla: pide un hint de alta entropía solo cuando una función lo necesite, como elegir la descarga correcta para una arquitectura de CPU, y no para enriquecer perfiles de analítica.
¿Qué informa Flowsery sobre navegadores y dispositivos?
Flowsery informa de datos de dispositivo, navegador y sistema operativo en su analítica, y lo hace sin huella digital del navegador, sin cookies en su modo sin cookies y sin guardar datos personales. La API de Flowsery devuelve desgloses por navegador con el número de visitantes y los ingresos por navegador, filtra por nombre de navegador como Chrome, Safari, Firefox y Edge, con "Safari includes Mobile Safari automatically," y agrupa a los visitantes por dimensiones que incluyen browser_version y os_version. El endpoint de visitante devuelve el tipo de dispositivo, el navegador, el sistema operativo y las dimensiones del viewport de la página vista más reciente. En el modo sin cookies, Flowsery usa un hash de visitante que rota cada día, así que estos campos describen sesiones en tu sitio sin construir un perfil de un dispositivo que dure más de un día, una de las razones por las que los visitantes únicos significan cosas distintas en herramientas distintas. La página de la función de analítica centrada en la privacidad lista lo que recoge el rastreador.
Preguntas frecuentes
¿Los user agent client hints sustituyen al encabezado User-Agent?
No, Chrome sigue enviando el encabezado User-Agent, pero en una forma reducida con la versión menor congelada y valores de plataforma fijos. El detalle que se le quitó está disponible mediante los client hints de alta entropía, que un sitio tiene que pedir.
¿Firefox envía encabezados Sec-CH-UA?
No. Los datos de compatibilidad de MDN marcan Sec-CH-UA y Accept-CH como no admitidos en Firefox y Safari. Esos navegadores siguen describiéndose solo mediante el encabezado User-Agent.
¿Por qué mi analítica muestra a todos los usuarios de Android en Android 10?
Chrome 110 fijó la versión de Android en la cadena UA en 10 y sustituyó el modelo del dispositivo por K. Cualquier herramienta que solo parsee la cadena UA indica Android 10 para cada visita de Chrome en Android. La versión real necesita el hint Sec-CH-UA-Platform-Version.
¿Puede la analítica distinguir Windows 11 de Windows 10 en Chrome?
No a partir de la cadena UA, que indica Windows NT 10.0 para los dos. Un sitio que pide Sec-CH-UA-Platform-Version mediante Accept-CH, o que llama a getHighEntropyValues(), recibe la versión de plataforma que Chrome decida compartir.
¿Necesito HTTPS para los client hints?
Sí. Chrome solo envía client hints por conexiones seguras, así que un sitio con HTTP sin cifrar no recibe ningún encabezado Sec-CH-UA.
¿Los client hints de alta entropía son datos personales?
Por sí solos, un modelo de dispositivo o un número de compilación del sistema operativo no identifican a una persona. Combinados con otras señales en un identificador estable, pasan a formar parte de una huella digital, y una huella digital que distingue a un dispositivo cuenta como dato personal según el RGPD, que es por lo que la analítica centrada en la privacidad evita construir una.
¿Qué es la marca falsa del encabezado Sec-CH-UA?
Es una entrada GREASE como " Not;A Brand";v="99", que puede aparecer en cualquier posición y con cualquier nombre. Existe para evitar que los servidores rechacen sin más los user agents desconocidos. Un parser debe ignorar las marcas que no reconoce en lugar de guiarse por la posición.
Panel en tiempo real
Seguimiento de objetivos
Rastreo sin cookies
¿Cómo obtengo la versión completa de Chrome o el modelo del dispositivo en analítica?
Devuelve un encabezado Accept-CH que nombre los hints que quieres, como Sec-CH-UA-Full-Version-List y Sec-CH-UA-Model. Un script también puede llamar a navigator.userAgentData.getHighEntropyValues(). En ambos casos el navegador decide qué devuelve, si es que devuelve algo.
¿Los client hints llegan a las peticiones a otros dominios?
Los hints pedidos con Accept-CH solo se envían en peticiones del mismo origen. Una petición a cdn.example.net no recibe nada, a menos que la página delegue cada hint con un encabezado Permissions-Policy.
¿Chrome envía hints de alta entropía en la primera visita?
La primera visita lleva solo los tres hints por defecto, porque el servidor aún no ha pedido más. Cuando el servidor envía Accept-CH, las peticiones posteriores incluyen los hints pedidos durante la sesión del navegador o hasta que se especifique otro conjunto. Chromium documenta un mecanismo aparte para los hints que un sitio necesita en la primera petición.
¿Te resultó útil este artículo?
¡Cuéntanos qué opinas!
Vernos más en Google
Un clic marca Flowsery como fuente preferida y nuestros artículos aparecen más arriba en tus Noticias destacadas, el modo IA y los resúmenes con IA.
Antes de irte...
Flowsery
Analítica orientada a ingresos para tu sitio web
Rastrea cada visitante, fuente y conversión en tiempo real. Simple, potente y sin cookies.
Panel en tiempo real
Seguimiento de objetivos
Rastreo sin cookies
Términos relacionados del glosario


Por qué el CNAME cloaking ya no oculta rastreadores a Safari ni a Brave
Los rastreadores usaban el CNAME cloaking para pasar por tu subdominio. Mira el truco DNS, el límite de 7 días de Safari y cómo Brave y uBlock lo destapan.


Cómo la sincronización de cookies empareja IDs publicitarios entre sitios
El ad-tech usa la sincronización de cookies para intercambiar IDs con redirecciones y píxeles. Mira qué hacen Safari, Firefox y Chrome al respecto.


Cómo crear métricas calculadas de GA4 con una cuota de cinco huecos
Google limita las métricas calculadas de GA4 a 5 por propiedad estándar. Aprende la sintaxis, las unidades, dónde aparecen y qué no admite una fórmula.


Cómo configurar la agrupación de contenido de GA4 con un solo parámetro
Configura la agrupación de contenido de GA4 con el parámetro content_group en gtag o Tag Manager, lee la dimensión Content group y evita filas (not set).


Por qué el significado de visitantes únicos cambia según la herramienta
El significado de visitantes únicos depende de la herramienta: GA4 lo estima, Matomo no lo calcula en rangos largos y Adobe deduplica en todo el informe.


Google enumera siete causas distintas de not set en GA4
Google da a not set en GA4 una causa distinta por dimensión, desde un session_start ausente hasta un content_group vacío. Aquí cada causa y su arreglo.
Artículos relacionados


Cómo las cookies particionadas CHIPS dan a cada sitio su propio tarro
Poner cookies particionadas CHIPS exige Secure, SameSite=None y un atributo más, y el navegador guarda una copia separada por sitio de nivel superior.


Bajo el GDPR, la reversibilidad decide seudonimización vs anonimización
La reversibilidad decide seudonimización vs anonimización. Los datos del Article 4(5) siguen siendo personales; los datos anónimos salen del GDPR.
Qué arregla el server-side tracking y qué deja sin tocar
Qué traslada el server-side tracking a tu servidor, qué límites de cookies de Safari evita, cómo deduplicar eventos y por qué el consentimiento se mantiene.

