El usuario-agente se ha incluido históricamente en las solicitudes de oferta para brindar datos de segmentación, como el navegador y la plataforma del dispositivo iniciador. Sin embargo, los navegadores a menudo ocultan en gran medida el usuario-agente debido a su dificultad de uso y para proteger mejor la privacidad del usuario. En respuesta a esto, Google apoya User-Agent Client Hints, que son se incluyen en las solicitudes de oferta cuando están disponibles para complementar el encabezado del usuario-agente. Estas sugerencias de clientes (para abreviar) se pueden obtener de los encabezados Sec-Ch-UA* o de la API de JavaScript Client Hints.
Según el protocolo utilizado, el encabezado del usuario-agente se expone con uno de los los siguientes campos de cadena:
- OpenRTB:
BidRequest.device.ua
- RTB de Google (obsoleta):
BidRequest.user_agent
Se propagará un mensaje de UserAgent
con Client Hints cuando estén
disponible, pero se completarán según los valores analizados desde
Encabezado de usuario-agente. Según el protocolo que se use, se expondrá
de los siguientes campos:
- OpenRTB:
BidRequest.device.sua
- RTB de Google (obsoleta):
BidRequest.user_agent_data
Se recomienda a los ofertantes que usen el mensaje UserAgent
en lugar del
String usuario-agente.
Cómo se propaga UserAgent
A diferencia del encabezado Usuario-agente, el mensaje UserAgent
representa al usuario-agente
información desglosada en varios campos para obtener información específica.
Según si las Sugerencias de clientes están disponibles en la solicitud de anuncio,
El mensaje UserAgent
se puede propagar de las siguientes maneras:
- Si la solicitud contiene al menos
entropía baja
Client Hints,
UserAgent
se propaga en función de su contenido. - Si la solicitud contiene solo el encabezado Usuario-agente, se establece
UserAgent
propagado en función de lo que se puede analizar en el encabezado.
Ejemplo: Propaga UserAgent
en función del encabezado del usuario-agente
Supongamos que hay una solicitud de anuncio en la que el navegador envía los siguientes encabezados:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Un UserAgent
propagado solo en función del encabezado Usuario-agente podría verse de esta manera:
lo siguiente:
browsers: [{ brand: "Mozilla", version: ["5", "0"] },
{ brand: "AppleWebKit", version: ["537", "36"] },
{ brand: "Chrome", version: ["103", "0", "0", "0"] },
{ brand: "Safari", version: ["537", "36"] }],
platform: { brand: "Windows NT", version: ["10", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
model: "x64",
source: USER_AGENT_STRING
Ejemplo: Propaga UserAgent
según las sugerencias del cliente
Supongamos que hay una solicitud de anuncio en la que el navegador envía los siguientes encabezados:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Sec-Ch-Ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"
Sec-Ch-Ua-Arch: x86
Sec-Ch-Ua-Full-Version: 103.0.5060.134
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: Windows
Sec-Ch-Ua-Platform-Version: 15.0.0
En los casos en que se incluyan al menos Client Hints de entropía baja, UserAgent
se completará en función del contenido de esos encabezados, incluso si el usuario-agente
encabezados están presentes. Se vería de la siguiente manera:
browsers: [{ brand: ".Not/A)Brand", version: ["99", "0", "0", "0"] },
{ brand: "Google Chrome", version: ["103", "0", "5060", "134"] },
{ brand: "Chromium", version: ["103", "0", "5060", "134"] }],
platform: { brand: "Windows", version: ["15", "0", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
source: CLIENT_HINTS_HIGH_ENTROPY
Propagación en función del encabezado de usuario-agente en comparación con las sugerencias de clientes
Algunos campos se propagan de forma diferente en función de si se basan en el encabezado de usuario-agente o de Client Hints. El siguiente es un resumen de estas diferencias:
- En el caso de navegadores y plataformas idénticos,
UserAgent.browsers.brand
yUserAgent.platform.brand
a menudo diferirá entre unaUserAgent
basada en el encabezado de usuario-agente o de Client Hints. Por ejemplo:UserAgent.platform.brand
podría aparecer como “Windows NT” si se basara en el encabezado de usuario-agente, o “Windows” si se basara en Client Hints. - Algunas entradas de
UserAgent.browsers
son exclusivas del encabezado de usuario-agente o a Client Hints. Por ejemplo, “AppleWebKit” aparecería siUserAgent
se basaban en el encabezado de usuario-agente, mientras que "Chromium" solo se mostraba si se basara en Client Hints. - Solo un
UserAgent
basado en el encabezado de usuario-agente puede contener valores inmovilizados. Por ejemplo, si la plataforma fuera Windows 11 22H2,UserAgent.platform.brand
se configuraría como “Windows NT” yUserAgent.platform.version
se configuraría como[“10”, “0”]
porque es el valor sin actualizar para cualquier versión de Windows 10 o posterior.
Los datos de UserAgent
basados en Client Hints, por lo general, no serán un
reemplazo inexacto de información oculta o congelada. Si hay alguna
incoherencia entre el encabezado del usuario-agente y un UserAgent
basado en el cliente
Sugerencias: Se debería preferir la información de UserAgent
.
Campos del objeto UserAgent
En esta sección, se resume cada campo, con un enfoque en las RTB y las prácticas recomendadas de uso.
Navegadores
Contiene una lista de
BrandVersion
entradas que generalmente se ordenan por especificidad, por ejemplo, si quisieras
muestra el contenido de browsers
, puede aparecer el brand
de cada entrada
en el siguiente orden:
Marca | Significado |
Mozilla | Compatible con Mozilla |
AppleWebKit | Basado en AppleWebKit, un subconjunto de Mozilla. |
Chrome | Navegador Chrome, un subconjunto de navegadores compatibles con AppleWebKit |
Safari | Variante de escritorio, a diferencia del dispositivo móvil. |
UserAgent
no siempre mostrará los navegadores en un orden específico, en especial
si se basa en Client Hints. A continuación, se describen otras diferencias
que puedes esperar según el valor de source
:
USER_AGENT
: El campoversion
puede reducirse a una versión principal. inmovilizado (depende de la política específica del agente) Ten en cuenta que no habrá que indica que el valor está inmovilizado.CLIENT_HINTS_LOW_ENTROPY
yCLIENT_HINTS_HIGH_ENTROPY
: Las entradas son no está ordenada según ningún criterio; por ejemplo, el mismo navegador puede enviar estas en un orden diferente en cada solicitud. También pueden contener un GREASE, que se deben ignorar.CLIENT_HINTS_HIGH_ENTROPY
: Todos los campos deversion
que se encuentran en los navegadores pueden ser configurados en versiones completas.
Plataforma
Una BrandVersion
entrada que describe la plataforma. Es posible que esto no sea compatible con el servicio de usuario-agente
encabezado y Client Hints, por lo que la segmentación de algunas plataformas puede requerir pruebas
dos nombres. Por ejemplo, el sistema operativo Macintosh de Apple tiene la marca
“Macintosh” en el encabezado de usuario-agente, pero “macOS” en Client Hints.
A continuación, se describen otras diferencias que puedes esperar según lo siguiente:
el valor de source
:
USER_AGENT
: El campoversion
puede reducirse a una versión principal. sin congelar. Ten en cuenta que no habrá ninguna indicación de que el valor esté congelado.CLIENT_HINTS_LOW_ENTROPY
: No se propagará el campoversion
.CLIENT_HINTS_HIGH_ENTROPY
: el campoversion
se puede establecer como completo versión.
Dispositivos móviles
Indica si se debe optimizar el contenido, como los anuncios, para pantallas pequeñas. entrada táctil. Ten en cuenta que esto no es necesariamente un indicador del tipo de dispositivo, ya que Los navegadores móviles pueden configurarse para solicitar un “sitio de escritorio”.
Arquitectura
Identifica la arquitectura de la plataforma, como “x86” o “arm”.
Para un UserAgent
basado en Client Hints, ten en cuenta que solo se propagará
cuando source
se configura como CLIENT_HINTS_HIGH_ENTROPY
.
Valor de bits
Identifica el valor de bits de la plataforma; por ejemplo, si tiene una arquitectura de 32 o 64 bits CPU. El campo es una cadena de número entero que proporciona información adicional sobre su arquitectura; Por ejemplo, una arquitectura “x86” puede tener un valor de bits establecido para ya sea “32” o “64”.
Para un UserAgent
basado en Client Hints, ten en cuenta que solo se propagará
cuando source
se configura como CLIENT_HINTS_HIGH_ENTROPY
.
Modelo
Identifica el modelo del dispositivo. Para dispositivos móviles, es decir, no para laptops ni computadoras de escritorio, se propagará con un nombre de modelo, como "Pixel 6 Pro".
A continuación, se describen las diferencias que puedes esperar según el
valor de source
:
USER_AGENT
- Dispositivos que no son móviles: el campo
model
a menudo contendrá una combinación arquitectura y valor de bits como “x64” para Windows. Este valor es de y no multiplataforma, por ejemplo, Linux podría usar “x86_64” para el mismo hardware. - Dispositivos móviles: Este campo no incluirá la arquitectura ni la tasa de bits.
Si te interesan estos valores, consulta
UserAgent.architecture
yUserAgent.bitness
- Dispositivos que no son móviles: el campo
CLIENT_HINTS_LOW_ENTROPY
: No se propagará el campomodel
.CLIENT_HINTS_HIGH_ENTROPY
: El campomodel
solo se completará para el modelo de dispositivo de los dispositivos móviles. No se estableció ningún valor para las plataformas de computadoras de escritorio.
Fuente
Identifica qué encabezados se usaron para crear el UserAgent
. Para Client Hints,
esto también distingue entre los dos casos siguientes:
CLIENT_HINTS_LOW_ENTROPY
: Solo están disponibles las Sugerencias de clientes básicas.CLIENT_HINTS_HIGH_ENTROPY
: Client Hints están disponibles, incluidas, al menos, un campo clasificado como de alta entropía.