Segmentación de usuario-agente

El encabezado Usuario-agente siempre se incluyó en las solicitudes de ofertas para proporcionar datos de segmentación útiles, 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 admite Sugerencias de clientes de usuario-agente, que se incluyen en las solicitudes de ofertas cuando están disponibles para complementar el encabezado de usuario-agente. Estas Client Hints (para abreviar) pueden obtenerse de los encabezados Sec-Ch-UA* o la API de JavaScript Client Hints.

Según el protocolo que se use, el encabezado de usuario-agente se expone con uno de los siguientes campos de string:

  • Google: BidRequest.user_agent
  • OpenRTB: BidRequest.device.ua

Un mensaje UserAgent se propagará con Client Hints cuando estén disponibles, pero, de lo contrario, se propagará según los valores analizados en el encabezado de usuario-agente. Según el protocolo que se use, esto se expondrá como uno de los siguientes campos:

  • Google: BidRequest.user_agent_data
  • OpenRTB: BidRequest.device.sua

Se recomienda que los ofertantes usen el mensaje UserAgent en lugar de la cadena de usuario-agente.

Cómo se propaga UserAgent

A diferencia del encabezado usuario-agente, el mensaje UserAgent representa la información del usuario-agente desglosada en varios campos para información específica.

En función de 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 de usuario-agente, UserAgent se propaga en función de lo que se puede analizar desde el encabezado.

Ejemplo: Propagación de UserAgent según el 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 de usuario-agente podría tener el siguiente aspecto:

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: Propagación de 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 las sugerencias de clientes de entropía baja, UserAgent se propagará en función del contenido de esos encabezados, incluso si los encabezados de usuario-agente 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 según el encabezado de usuario-agente y Client Hints

Algunos campos se propagan de manera diferente en función de si se basan en el encabezado de usuario-agente o en Client Hints. A continuación, se muestra un resumen de estas diferencias:

  • En el caso de navegadores y plataformas idénticos, UserAgent.browsers.brand y UserAgent.platform.brand a menudo diferirán entre un UserAgent según el encabezado de usuario-agente o las Sugerencias de cliente. Por ejemplo, UserAgent.platform.brand podría aparecer como "Windows NT" si se basara en el encabezado de usuario-agente, o como "Windows" si se basara en Client Hints.
  • Algunas entradas UserAgent.browsers son exclusivas del encabezado de usuario-agente o de Client Hints. Por ejemplo, "AppleWebKit" aparecería si UserAgent se basara en el encabezado de usuario-agente, mientras que "Chromium" solo aparecería 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 establecería como "Windows NT" y UserAgent.platform.version se establecería como [“10”, “0”], ya que ese es el valor congelado para cualquier versión de Windows a partir de la versión 10.

Por lo general, los datos en UserAgent que se basan en Client Hints no serán un reemplazo impreciso de la información oculta o congelada. Si hay alguna incoherencia entre el encabezado de usuario-agente y un UserAgent basado en Client Hints, se recomienda usar la información de UserAgent.

Campos del objeto UserAgent

En esta sección, se resume cada campo, con un enfoque en el comportamiento específico de las RTB de Google y las prácticas recomendadas para su uso.

Navegadores

Contiene una lista de entradas BrandVersion que, por lo general, están ordenadas por especificidad, por ejemplo, si enumeraras el contenido de browsers, el brand de cada entrada podría aparecer en el siguiente orden:

Marca Significado
Mozilla Compatible con Mozilla
AppleWebKit Basada en AppleWebKit, un subconjunto de Mozilla
Chrome Navegador Chrome, un subconjunto de navegadores compatibles con AppleWebKit
Safari Variante para computadoras de escritorio, a diferencia de para dispositivos móviles.

El UserAgent no siempre mostrará los navegadores en cualquier 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 campo version puede reducirse a una versión principal o congelarse (depende de la política específica del agente). Ten en cuenta que no habrá ninguna indicación de que el valor se haya bloqueado.
  • CLIENT_HINTS_LOW_ENTROPY y CLIENT_HINTS_HIGH_ENTROPY: Las entradas no se ordenan según ningún criterio; por ejemplo, el mismo navegador puede enviar estas entradas en diferentes órdenes en cada solicitud. También pueden contener una entrada GREASE, que debe ignorarse.
  • CLIENT_HINTS_HIGH_ENTROPY: Es posible que todos los campos version que se encuentran en los navegadores tengan versiones completas.

Plataforma

Una entrada BrandVersion que describe la plataforma Es posible que esto no sea compatible con el encabezado de usuario-agente y las Sugerencias de cliente, por lo que es posible que la segmentación de algunas plataformas requiera probar dos nombres. Por ejemplo, el sistema operativo Macintosh de Apple tiene la marca “Macintosh” en el encabezado de usuario-agente, pero el sistema operativo “macOS” en Client Hints. A continuación, se describen otras diferencias que puedes esperar según el valor de source:

  • USER_AGENT: El campo version puede reducirse a una versión principal o bloquearse. Ten en cuenta que no habrá indicación de que el valor esté bloqueado.
  • CLIENT_HINTS_LOW_ENTROPY: No se propagará el campo version.
  • CLIENT_HINTS_HIGH_ENTROPY: El campo version se puede establecer en la versión completa.

Dispositivos móviles

Indica si se debe optimizar el contenido como los anuncios para pantallas pequeñas o entrada táctil. Ten en cuenta que esto no es necesariamente un indicador del tipo de dispositivo, ya que los navegadores para dispositivos móviles se pueden configurar para solicitar un "sitio de escritorio".

Arquitectura

Identifica la arquitectura de la plataforma, como “x86” o “arm”.

Para UserAgent basado en Client Hints, ten en cuenta que esto solo se propagará cuando source se establezca en CLIENT_HINTS_HIGH_ENTROPY.

Nivel de bits

Identifica el valor de bits de la plataforma, por ejemplo, si tiene una CPU de 32 o 64 bits. El campo es una string de números enteros que proporciona información adicional sobre su arquitectura; por ejemplo, una arquitectura "x86" puede tener un valor de bits establecido en "32" o "64".

Para UserAgent basado en Client Hints, ten en cuenta que esto solo se propagará cuando source se establezca en CLIENT_HINTS_HIGH_ENTROPY.

Modelo

Identifica el modelo del dispositivo. En el caso de dispositivos móviles, es decir, no en 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 arquitectura y un valor de bits combinados, como "x64" para Windows. Este valor no es multiplataforma; por ejemplo, Linux puede usar "x86_64" para el mismo hardware.
    • Dispositivos móviles: este campo no incluirá la arquitectura ni los valores de bits. Si te interesan estos valores, consulta UserAgent.architecture y UserAgent.bitness.
  • CLIENT_HINTS_LOW_ENTROPY: No se propagará el campo model.
  • CLIENT_HINTS_HIGH_ENTROPY: El campo model solo se propagará para el modelo de dispositivo móvil. No se estableció ningún valor para las plataformas de escritorio.

Origen

Identifica qué encabezados se usaron para crear el UserAgent. En el caso de Client Hints, esto también distingue entre los siguientes dos casos:

  • CLIENT_HINTS_LOW_ENTROPY: Solo están disponibles las sugerencias básicas de Client Hints.
  • CLIENT_HINTS_HIGH_ENTROPY: Están disponibles las sugerencias de clientes, incluido al menos un campo clasificado como de alta entropía.