O User-Agent foi incluído historicamente em solicitações de lance para fornecer dados de segmentação, como o navegador e a plataforma do dispositivo inicial. No entanto, os navegadores costumam encobrir muito o user agent devido à dificuldade de uso e para proteger melhor a privacidade do usuário. Em resposta a isso, o Google apoia Dicas de cliente HTTP do user agent, que são incluídas nas solicitações de lance quando disponíveis para complementar o cabeçalho User-Agent. Essas dicas de cliente podem ser extraídas de cabeçalhos Sec-Ch-UA* ou da API JavaScript Client Hints.
Dependendo do protocolo usado, o cabeçalho User-Agent é exposto com um dos seguintes campos de string:
- OpenRTB:
BidRequest.device.ua
- RTB do Google (descontinuado):
BidRequest.user_agent
Uma mensagem UserAgent
será preenchida com dicas de cliente quando elas forem
disponíveis, mas serão preenchidos com base em valores analisados no
Cabeçalho do user agent. Dependendo do protocolo usado, ela será exposta como um
dos seguintes campos:
- OpenRTB:
BidRequest.device.sua
- RTB do Google (descontinuado):
BidRequest.user_agent_data
É altamente recomendável que os bidders usem a mensagem UserAgent
em vez do
string do user agent.
Como o UserAgent
é preenchido
Ao contrário do cabeçalho User-Agent, a mensagem UserAgent
representa o user agent
informações divididas em vários campos para informações específicas.
Dependendo da disponibilidade das dicas do cliente na solicitação de anúncio, o
A mensagem UserAgent
pode ser preenchida das seguintes maneiras:
- Se a solicitação tiver pelo menos
baixa entropia
Dicas do cliente, o
UserAgent
é preenchido com base no conteúdo. - Se a solicitação contiver apenas o cabeçalho User-Agent,
UserAgent
será preenchidos com base no que pode ser analisado no cabeçalho.
Exemplo: preencher UserAgent
com base no cabeçalho User-Agent
Suponha que há uma solicitação de anúncio em que o navegador envia os seguintes cabeçalhos:
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
Um UserAgent
preenchido exclusivamente com base no cabeçalho do user agent pode ser semelhante a
o seguinte:
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
Exemplo: preencher UserAgent
com base em dicas de cliente
Suponha que há uma solicitação de anúncio em que o navegador envia os seguintes cabeçalhos:
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
Nos casos em que são incluídas pelo menos dicas de cliente com baixa entropia, o UserAgent
será preenchida com base no conteúdo desses cabeçalhos, mesmo se o user agent
estão presentes. Ela será semelhante a esta:
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
Preencher com base no cabeçalho do user agent em comparação com as dicas de cliente
Alguns campos são preenchidos de forma diferente dependendo se são baseados no cabeçalho user agent ou nas dicas de cliente. Confira a seguir um resumo diferenças:
- Para navegadores e plataformas idênticos,
UserAgent.browsers.brand
e OUserAgent.platform.brand
geralmente será diferente entre umaUserAgent
com base na no cabeçalho user agent ou nas dicas de cliente. Por exemplo:UserAgent.platform.brand
aparecerá como “Windows NT” se for baseado em o cabeçalho User-Agent, ou “Windows” se for baseado em dicas de cliente. - Algumas entradas
UserAgent.browsers
são exclusivas do cabeçalho do user agent ou a dicas de cliente. Por exemplo, "AppleWebKit" apareceria seUserAgent
foram baseadas no cabeçalho User-Agent, enquanto o "Chromium" só apareceria se ela tivesse como base as dicas do cliente. - Apenas um
UserAgent
baseado no cabeçalho do user agent pode conter valores congelados. Por exemplo, se a plataforma fosse Windows 11 22H2,UserAgent.platform.brand
seria definido como “Windows NT” eUserAgent.platform.version
seria definido como[“10”, “0”]
porque esse é o valor congelado de qualquer versão do Windows igual ou superior a 10.
Dados em UserAgent
baseados em dicas de cliente normalmente não serão uma
substituto imprecisa de informações congeladas ou editadas. Se houver
inconsistência entre o cabeçalho do user agent e uma UserAgent
com base nas informações
Dicas: as informações do UserAgent
devem ter preferência.
Campos do objeto UserAgent
Esta seção resume cada campo, com foco nos detalhes específicos de RTB do Google e práticas recomendadas de uso.
Navegadores
Contém uma lista de
BrandVersion
entradas que geralmente são ordenadas por especificidade, por exemplo,
listar o conteúdo de browsers
, o brand
de cada entrada pode aparecer
na seguinte ordem:
Brand | Significado |
Mozilla | Compatível com Mozilla |
AppleWebKit | Baseado em AppleWebKit, um subconjunto do Mozilla. |
Chrome | Navegador Chrome, um subconjunto de navegadores compatíveis com o AppleWebKit |
Safari | É uma variante para computador, e não para dispositivos móveis. |
O UserAgent
nem sempre lista os navegadores em uma ordem específica, especialmente
se ela for baseada em dicas de cliente. Confira a seguir outras diferenças
que você pode esperar ver com base no valor de source
:
USER_AGENT
: o campoversion
pode ser reduzido para uma versão principal ou congelado (depende da política específica do agente). Não haverá é uma indicação de que o valor está congelado.CLIENT_HINTS_LOW_ENTROPY
eCLIENT_HINTS_HIGH_ENTROPY
: as entradas são não ordenados por nenhum critério; por exemplo, o mesmo navegador pode enviar essas entradas em ordens diferentes em cada solicitação. Eles também podem conter um GREASE, que deve ser ignorada.CLIENT_HINTS_HIGH_ENTROPY
: todos os camposversion
encontrados nos navegadores podem ser definida como versões completas.
Plataforma
uma BrandVersion
entrada descrevendo a plataforma. Talvez ele não seja compatível com o user agent
cabeçalho e dicas de cliente. Assim, a segmentação de algumas plataformas pode exigir testes
dois nomes. Por exemplo, o sistema operacional Macintosh da Apple é identificado como
“Macintosh” no cabeçalho “User-Agent”, mas “macOS” em “Dicas de cliente”.
Veja a seguir outras diferenças que podem ser esperadas com base nas
o valor de source
:
USER_AGENT
: o campoversion
pode ser reduzido para uma versão principal ou congelados. Não haverá indicação de que o valor está congelado.CLIENT_HINTS_LOW_ENTROPY
: o campoversion
não será preenchido.CLIENT_HINTS_HIGH_ENTROPY
: o campoversion
pode ser definido como o para a versão anterior.
Dispositivo móvel
Indica se conteúdo, como anúncios, precisa ser otimizado para telas pequenas e/ou entrada por toque. Esse não é necessariamente um indicador do tipo de dispositivo, pois navegadores de dispositivos móveis podem ser configurados para solicitar um "site para computador".
Arquitetura
Identifica a arquitetura da plataforma, como “x86” ou “arm”.
No caso de uma UserAgent
com base em dicas de cliente, ela só será preenchida.
quando source
for definido como CLIENT_HINTS_HIGH_ENTROPY
.
Número de bits
Identifica a quantidade de bits da plataforma, por exemplo, se ela tem 32 ou 64 bits CPU. O campo é uma string inteira que fornece informações adicionais sobre a arquitetura por exemplo, uma arquitetura “x86” pode ter um bitness definido como "32" ou "64".
No caso de uma UserAgent
com base em dicas de cliente, ela só será preenchida.
quando source
for definido como CLIENT_HINTS_HIGH_ENTROPY
.
Modelo
Identifica o modelo do dispositivo. Para dispositivos móveis, ou seja, não são laptops ou computadores. Ele será preenchido com um nome de modelo, como “Pixel 6 Pro”.
Veja a seguir as diferenças que você pode esperar ver com base nas
de source
:
USER_AGENT
- Dispositivos não móveis: o campo
model
geralmente conterá uma string arquitetura e valor de bits como “x64” para Windows. Esse valor é e não multiplataforma. por exemplo, o Linux pode usar “x86_64” para os mesmos ao hardware. - Dispositivos móveis: este campo não incluirá a arquitetura e a quantidade de bits.
Se você tiver interesse nesses valores, consulte
UserAgent.architecture
eUserAgent.bitness
.
- Dispositivos não móveis: o campo
CLIENT_HINTS_LOW_ENTROPY
: o campomodel
não será preenchido.CLIENT_HINTS_HIGH_ENTROPY
: o campomodel
será preenchido apenas para o modelo de dispositivos móveis. Nenhum valor é definido para plataformas de computador.
Origem
Identifica quais cabeçalhos foram usados para criar o UserAgent
. Para dicas de cliente,
isso também distingue entre os dois casos a seguir:
CLIENT_HINTS_LOW_ENTROPY
: apenas dicas de cliente básicas estão disponíveis.CLIENT_HINTS_HIGH_ENTROPY
: dicas de cliente estão disponíveis, incluindo pelo menos um campo classificado como de alta entropia.