Si un editor o un usuario requieren más protecciones de la privacidad, Google puede reducir la cantidad de información proporcionada en los campos del usuario-agente. Cuando se reduce la información, estas representaciones de usuario-agente se consideran generalizadas.
Las representaciones de usuario-agente generalizadas proporcionan una mayor protección de la privacidad, ya que limitan la información que podría distinguir un navegador o un dispositivo determinado de otros navegadores o dispositivos.
Descripción general
La solicitud de oferta contiene dos representaciones de información de usuario-agente: la string User-Agent
y el objeto UserAgent
(protocolo de Google, OpenRTB).
Ambos campos contienen información proporcionada por los encabezados HTTP de usuario-agente de la solicitud.
Los usuarios-agentes no generalizados pueden contener versiones detalladas del navegador y del sistema operativo, y otros datos detallados que se reducen en la forma generalizada del usuario-agente.
La generalización es retrocompatible para la detección de navegadores y tipos de dispositivos.
Las solicitudes de oferta indican si los campos de usuario-agente se generalizaron en campos PrivacyTreatments
(protocolo de Google, OpenRTB).
Objeto UserAgent generalizado
En el UserAgent
generalizado, los campos version
de todas las entradas browser
y de platform
se reducen para contener solo la versión principal mediante el reemplazo de los componentes de la versión más detallados por ceros. No se quita ninguna otra información del objeto UserAgent
.
En el siguiente ejemplo, se compara el contenido original de UserAgent.browser
con su forma generalizada:
Original
brand: "Chrome" version: ["96", "0", "4664", "92"]
Generalizada
brand: "Chrome" version: ["96", "0", "0", "0"]
Google no siempre generaliza las versiones del navegador y de la plataforma, en especial cuando el navegador bloquea la versión completa. Por ejemplo, el siguiente valor de UserAgent.browser
no se modificará: brand: "AppleWebKit" version: ["537", "36"]
.
Cuando se generaliza el objeto UserAgent
, la solicitud de oferta también contiene el campo user_agent_data
en el objeto PrivacyTreatments
:
Protocolo de Google
BidRequest.privacy_treatments: { user_agent_data: USER_AGENT_DATA_COARSENED }
Protocolo OpenRTB
BidRequest.ext.privacy_treatments: { user_agent_data: USER_AGENT_DATA_COARSENED }
String User-Agent
generalizada
En la string User-Agent
generalizada, los identificadores de navegador y de plataforma se reducen solo a las versiones principales. Por ejemplo, "Chrome/96.0.4664.92"
se convierte en "Chrome/96.0.0.0"
. Los componentes de la versión congelada, como "AppleWebKit/537.36"
, se conservan. Estos cambios son equivalentes a lo que describimos para el objeto UserAgent
.
Es posible que también se oculten algunos detalles o elementos no estándar de la cadena user-Agent
, como la versión de compilación o de firmware del dispositivo, o ciertos datos específicos de la app que se suelen agregar al final de la cadena.
En el siguiente ejemplo, se compara el contenido original de la string User-Agent
con su forma generalizada:
Original
Mozilla/5.0 (Linux; Android 11; M2007J20CG Build/RKQ1.200826.002; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/96.0.4664.92 Mobile Safari/537.36 [MyApp:CustomSignals:ABC123]
Generalizada
Mozilla/5.0 (Linux; Android 11; M2007J20CG; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/96.0.0.0 Mobile Safari/537.36
Cuando se generaliza la cadena User-Agent
, la solicitud de oferta contiene el indicador user_agent
en el objeto PrivacyTreatments
:
Protocolo de Google
BidRequest.privacy_treatments: { user_agent: USER_AGENT_COARSENED }
Protocolo OpenRTB
BidRequest.ext.privacy_treatments: { user_agent: USER_AGENT_COARSENED }
Google usa enfoques similares para generalizar la cadena User-Agent
y el objeto UserAgent
. Como resultado, la string User-Agent
generalizada y el objeto UserAgent
generalizado llevan una cantidad similar de información.