User-Agent a toujours été inclus dans les demandes d'enchères afin de fournir des données de ciblage telles que le navigateur et la plate-forme de l'appareil de lancement. Toutefois, les navigateurs masquent souvent considérablement l'user-agent en raison de sa difficulté d'utilisation et pour mieux protéger la confidentialité des utilisateurs. C'est pourquoi Google accepte User-Agent Client Hints, qui sont incluses dans les demandes d'enchères, le cas échéant, afin de compléter l'en-tête user-agent. Ces indicateurs client (en abrégé) peuvent provenir des en-têtes Sec-Ch-UA* ou à partir de l'API JavaScript Client Hints.
Selon le protocole utilisé, l'en-tête user-agent est exposé avec l'un des les champs de chaîne suivants:
- OpenRTB:
BidRequest.device.ua
- RTB Google (obsolète):
BidRequest.user_agent
Un message UserAgent
est renseigné avec des hints client lorsqu'ils sont
disponibles, mais elles seront renseignées en fonction des valeurs analysées à partir du
En-tête user-agent. Selon le protocole utilisé, il est exposé
des champs suivants:
- OpenRTB:
BidRequest.device.sua
- RTB Google (obsolète):
BidRequest.user_agent_data
Nous recommandons vivement aux enchérisseurs d'utiliser le message UserAgent
plutôt que le
Chaîne user-agent.
Comment le champ UserAgent
est-il renseigné ?
Contrairement à l'en-tête user-agent, le message UserAgent
représente le user-agent.
les informations réparties en plusieurs
champs pour des informations spécifiques.
Selon que les hints client sont ou non disponibles dans la demande d'annonce, le
Le message UserAgent
peut être renseigné comme suit:
- Si la requête contient au moins
faible entropie
Hints client : le
UserAgent
est renseigné en fonction de leur contenu. - Si la requête ne contient que l'en-tête user-agent,
UserAgent
est remplis en fonction de ce qui peut être analysé à partir de l’en-tête.
Exemple: renseigner UserAgent
en fonction de l'en-tête user-agent
Supposons qu'il existe une demande d'annonce pour laquelle le navigateur envoie les en-têtes suivants:
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
rempli uniquement en fonction de l'en-tête user-agent peut se présenter comme suit :
les éléments suivants:
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
Exemple: renseigner UserAgent
en fonction des indications client
Supposons qu'il existe une demande d'annonce pour laquelle le navigateur envoie les en-têtes suivants:
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
Si des indicateurs client d'entropie faibles sont inclus, le UserAgent
sera renseigné en fonction du contenu de ces en-têtes, même si le user-agent
si des en-têtes sont présents. Il doit se présenter comme suit:
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
Insertion en fonction de l'en-tête user-agent et des indications client
Certains champs sont renseignés différemment selon qu'ils sont basés ou non sur l'en-tête user-agent ou les hints client. Voici un résumé de ces différences:
- Pour les navigateurs et les plates-formes identiques,
UserAgent.browsers.brand
etUserAgent.platform.brand
est souvent différent d'unUserAgent
en raison de l'en-tête user-agent ou les hints client. Par exemple :UserAgent.platform.brand
peut apparaître sous la forme "Windows NT" s'il est basé sur l'en-tête user-agent, ou "Windows" s'il est basé sur les hints client. - Certaines entrées
UserAgent.browsers
sont uniques à l'en-tête user-agent ou aux hints client. Par exemple, "AppleWebKit" apparaîtra siUserAgent
étaient basées sur l'en-tête user-agent, alors que "Chromium" n'apparaissait si elles étaient basées sur les hints client. - Seul un
UserAgent
basé sur l'en-tête user-agent peut contenir des valeurs figées. Par exemple, si la plateforme était Windows 11 22H2,UserAgent.platform.brand
serait défini sur "Windows NT".UserAgent.platform.version
serait défini sur[“10”, “0”]
, car il s'agit la valeur figée pour toute version de Windows supérieure ou égale à 10.
Normalement, les données dans UserAgent
basées sur les hints client ne sont pas des
le remplacement inexact des informations
gelées ou masquées. S'il y a des
incohérence entre l'en-tête user-agent et une UserAgent
basée sur le client
Remarques : il est préférable d'utiliser les informations provenant de UserAgent
.
Champs de l'objet User-Agent
Cette section résume chaque champ, en mettant l'accent sur les spécificités des enchères en temps réel Google et les bonnes pratiques d'utilisation.
Navigateurs
Contient une liste de
BrandVersion
entrées généralement classées par spécificité (par exemple, si vous souhaitez
lister le contenu de browsers
, le brand
de chaque entrée peut s'afficher
dans l'ordre suivant:
Marque | Signification |
Mozilla | Compatible avec Mozilla |
AppleWebKit | Basé sur AppleWebKit, un sous-ensemble de Mozilla. |
Chrome | Navigateur Chrome, un sous-ensemble de navigateurs compatibles avec AppleWebKit |
Safari | Version classique, par opposition à la version mobile. |
UserAgent
ne liste pas toujours les navigateurs dans un ordre spécifique, surtout
si elles sont basées sur les hints client. Vous trouverez ci-dessous les autres différences
que vous pouvez vous attendre à voir en fonction de la valeur de source
:
USER_AGENT
: le champversion
peut être réduit à une version majeure ou est figée (dépend de la règle spécifique à l'agent). Notez qu'il n'y aura aucun indique que la valeur est figée.CLIENT_HINTS_LOW_ENTROPY
etCLIENT_HINTS_HIGH_ENTROPY
: les entrées sont ne sont classées selon aucun critère ; Ainsi, le même navigateur peut envoyer ces les entrées dans des ordres différents dans chaque requête. Ils peuvent également contenir L'entrée GREASE, qui : doit être ignoré.CLIENT_HINTS_HIGH_ENTROPY
: tous les champsversion
trouvés dans les navigateurs peuvent être définies sur "Versions complètes".
Plate-forme
Une BrandVersion
qui décrit la plate-forme. Il est possible qu'elle ne soit pas compatible avec l'user-agent
l'en-tête et les hints client. Par conséquent, le ciblage de certaines plates-formes peut nécessiter des tests
deux noms. Par exemple, le système d'exploitation Macintosh d'Apple est associé à la marque
"Macintosh" dans l'en-tête User-Agent, mais "macOS" dans Client Hints.
Vous trouverez ci-dessous d'autres différences que vous pouvez constater en fonction du
la valeur de source
:
USER_AGENT
: le champversion
peut être réduit à une version majeure ou est figée. Notez qu'il n'y aura aucune indication que la valeur est figée.CLIENT_HINTS_LOW_ENTROPY
: le champversion
n'est pas renseigné.CLIENT_HINTS_HIGH_ENTROPY
: le champversion
peut être défini sur la valeur complète version.
Mobile
Indique si le contenu tel que les annonces doit être optimisé pour les petits écrans et/ou la saisie tactile. Notez qu'il ne s'agit pas nécessairement d'un indicateur du type d'appareil, les navigateurs mobiles peuvent être configurés pour demander un "site pour ordinateur".
Architecture
Identifie l'architecture de la plate-forme (par exemple, "x86" ou "arm").
Pour une UserAgent
basée sur les hints client, notez que cette information ne sera renseignée
lorsque source
est défini sur CLIENT_HINTS_HIGH_ENTROPY
.
Nombre de bits
Identifie le nombre de bits de la plate-forme (par exemple, si la version du réseau est 32 bits ou 64 bits). CPU Ce champ est une chaîne d'entiers qui fournit des informations supplémentaires sur son architecture ; par exemple, une architecture "x86" peut avoir une valeur de bitness définie sur "32" ou "64".
Pour une UserAgent
basée sur les hints client, notez que cette information ne sera renseignée
lorsque source
est défini sur CLIENT_HINTS_HIGH_ENTROPY
.
Modèle
Identifie le modèle de l'appareil. Pour les appareils mobiles, c'est-à-dire pas pour les ordinateurs portables ou ordinateurs, il sera renseigné avec un nom de modèle comme "Pixel 6 Pro".
Vous trouverez ci-dessous les différences que vous pouvez constater en fonction du
Valeur de source
:
USER_AGENT
- Appareils non mobiles: le champ
model
contient souvent une combinaison et la valeur de bit, comme "x64" pour Windows. Cette valeur est et non multiplate-forme. par exemple, Linux peut utiliser "x86_64" pour matériel. - Appareils mobiles: ce champ n'inclut pas l'architecture ni le nombre de bits.
Si ces valeurs vous intéressent, consultez
UserAgent.architecture
etUserAgent.bitness
- Appareils non mobiles: le champ
CLIENT_HINTS_LOW_ENTROPY
: le champmodel
n'est pas renseigné.CLIENT_HINTS_HIGH_ENTROPY
: le champmodel
n'est renseigné que pour le modèle des appareils mobiles. Aucune valeur n'est définie pour les plates-formes de bureau.
Source
Identifie les en-têtes utilisés pour créer l'UserAgent
. Pour les hints client,
cela fait également la distinction entre les deux cas suivants:
CLIENT_HINTS_LOW_ENTROPY
: seuls les indicateurs client de base sont disponibles.CLIENT_HINTS_HIGH_ENTROPY
: des indicateurs client sont disponibles. Ils incluent au moins un champ classé comme étant à entropie élevée.