Segmentación de usuario-agente

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 y UserAgent.platform.brand a menudo diferirá entre una UserAgent 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 si UserAgent 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” y UserAgent.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 campo version 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 y CLIENT_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 de version 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 campo version 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 campo version.
  • CLIENT_HINTS_HIGH_ENTROPY: el campo version 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 y UserAgent.bitness
  • CLIENT_HINTS_LOW_ENTROPY: No se propagará el campo model.
  • CLIENT_HINTS_HIGH_ENTROPY: El campo model 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.