Targeting dello user agent

Lo User-Agent storicamente è stata inclusa nelle richieste di offerta per fornire utili Dati di targeting come il browser e la piattaforma del dispositivo avviato. Tuttavia, spesso i browser oscurano in modo eccessivo lo user agent a causa della sua difficoltà di utilizzo e per proteggere meglio la privacy degli utenti. In risposta a ciò, Google supporta Client hint dello user agent, che sono incluse nelle richieste di offerta, se disponibili, per integrare l'intestazione User-Agent. Questi client hint possono essere ricavati dalle intestazioni Sec-Ch-UA* o dell'API JavaScript Client Hints.

A seconda del protocollo utilizzato, l'intestazione User-Agent viene esposta con uno dei i seguenti campi di stringhe:

  • OpenRTB: BidRequest.device.ua
  • RTB Google (deprecato): BidRequest.user_agent

Un messaggio UserAgent verrà compilato con i client hint quando vengono visualizzati disponibile, ma in caso contrario verrà compilato in base ai valori analizzati Intestazione user agent. A seconda del protocollo utilizzato, verrà esposto come uno dei seguenti campi:

  • OpenRTB: BidRequest.device.sua
  • RTB Google (deprecato): BidRequest.user_agent_data

Gli offerenti sono vivamente invitati a utilizzare il messaggio UserAgent anziché il Stringa dello user agent.

Come viene compilato UserAgent

A differenza dell'intestazione User-Agent, il messaggio UserAgent rappresenta lo user agent informazioni suddivise in più campi per ottenere informazioni specifiche.

A seconda della disponibilità dei client hint nella richiesta di annuncio, UserAgent messaggio può essere compilato nei seguenti modi:

  • Se la richiesta contiene almeno entropia bassa client hint: il campo UserAgent viene compilato in base ai relativi contenuti.
  • Se la richiesta contiene solo l'intestazione User-Agent, UserAgent è vengono compilati in base a ciò che può essere analizzato dall'intestazione.
di Gemini Advanced.

Esempio: completamento di UserAgent in base all'intestazione User-Agent

Supponiamo che esista una richiesta di annuncio in cui il browser invia le seguenti intestazioni:

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 compilato esclusivamente in base all'intestazione User-Agent potrebbe avere il seguente aspetto le seguenti:

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

Esempio: completamento di UserAgent in base ai client hint

Supponiamo che esista una richiesta di annuncio in cui il browser invia le seguenti intestazioni:

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

Nei casi in cui sono inclusi almeno client hint a bassa entropia, UserAgent verrà compilato in base ai contenuti di tali intestazioni anche se User-Agent intestazioni. L'URL avrà il seguente aspetto:

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

Completamento in base all'intestazione User-Agent e ai client hint

Alcuni campi vengono compilati in modo diverso a seconda che siano basati o meno su l'intestazione User-Agent o i Client Hints. Di seguito è riportato un riepilogo differenze:

  • Per browser e piattaforme identici, UserAgent.browsers.brand e UserAgent.platform.brand sarà spesso diverso da UserAgent in base a l'intestazione User-Agent o i Client Hints. Ad esempio: UserAgent.platform.brand potrebbe essere visualizzato come "Windows NT" se si basava su l'intestazione User-Agent o "Windows" se erano basate su Client Hints.
  • Alcune voci UserAgent.browsers sono univoche per l'intestazione User-Agent o ai client hint. Ad esempio, "AppleWebKit" verrà visualizzato se UserAgent si basano sull'intestazione User-Agent, mentre "Chromium" veniva visualizzato se si basavano su Client Hints.
  • Solo un valore UserAgent basato sull'intestazione User-Agent può contenere valori bloccati. Ad esempio, se la piattaforma era Windows 11 22H2, UserAgent.platform.brand verrà impostato su "Windows NT" e UserAgent.platform.version verrà impostato su [“10”, “0”] perché è il valore bloccato per qualsiasi versione di Windows uguale o superiore a 10.

I dati di UserAgent che si basano sui client hint in genere non saranno sostituzione imprecisa di informazioni bloccate o oscurate. Se sono presenti incoerenza tra l'intestazione User-Agent e un UserAgent in base al client Suggerimenti: è preferibile utilizzare le informazioni fornite da UserAgent.

Campi oggetto UserAgent

Questa sezione riassume ogni campo, con particolare attenzione alle offerte in tempo reale di Google comportamento e best practice per l'utilizzo.

Browser

Contiene un elenco di BrandVersion articoli generalmente ordinati per specificità, ad esempio se elenca i contenuti di browsers, il brand per ogni voce potrebbe essere nel seguente ordine:

Brand Significato
Mozilla Compatibile con Mozilla
AppleWebKit basato su AppleWebKit, un sottoinsieme di Mozilla.
Chrome Browser Chrome, un sottoinsieme di browser compatibili con AppleWebKit
Safari Variante su computer, anziché su dispositivo mobile.

UserAgent non elenca sempre i browser in un ordine specifico, in particolare se è basato sui client hint. Di seguito vengono descritte altre differenze che puoi aspettarti di vedere in base al valore di source:

  • USER_AGENT: il campo version potrebbe essere ridotto a una versione principale oppure bloccato (dipende dal criterio specifico dell'agente). Tieni presente che non ci saranno un'indicazione che il valore è bloccato.
  • CLIENT_HINTS_LOW_ENTROPY e CLIENT_HINTS_HIGH_ENTROPY: i dati inseriti sono non ordinati in base a nessun criterio; ad esempio, lo stesso browser potrebbe inviare in ordini diversi in ogni richiesta. Potrebbero contenere anche un GREASE, che deve essere ignorato.
  • CLIENT_HINTS_HIGH_ENTROPY: tutti i campi version trovati nei browser potrebbero essere impostato sulle versioni complete.

Piattaforma

Una BrandVersion che descrive la piattaforma. Potrebbe non essere compatibile con lo user agent intestazione e client hint, quindi il targeting di alcune piattaforme potrebbe richiedere test due nomi. Ad esempio, il sistema operativo Macintosh di Apple ha il nome "Macintosh" nell'intestazione User-Agent, ma "macOS" in Client Hints. Di seguito vengono descritte altre differenze che puoi aspettarti di notare in base ai il valore di source:

  • USER_AGENT: il campo version potrebbe essere ridotto a una versione principale oppure bloccato. Tieni presente che non ci sarà alcuna indicazione del fatto che il valore sia bloccato.
  • CLIENT_HINTS_LOW_ENTROPY: il campo version non verrà compilato.
  • CLIENT_HINTS_HIGH_ENTROPY: il campo version può essere impostato completamente completamente gestita.

Dispositivi mobili

Indica se i contenuti come gli annunci devono essere ottimizzati per gli schermi piccoli e/o input tocco. Tieni presente che questo non è necessariamente un indicatore del tipo di dispositivo, perché i browser mobile possono essere configurati in modo da richiedere un "sito desktop".

Architettura

Identifica l'architettura della piattaforma, ad esempio "x86" o "arm".

Per un valore UserAgent basato sui client hint, tieni presente che verrà compilato solo quando source è impostato su CLIENT_HINTS_HIGH_ENTROPY.

A bit

Identifica la bit della piattaforma, ad esempio se ha un bit a 32 o 64 bit per la CPU. Il campo è una stringa in numero intero che fornisce informazioni aggiuntive su la sua architettura; Ad esempio, un'architettura "x86" può avere una quantità di bit impostata "32" o "64".

Per un valore UserAgent basato sui client hint, tieni presente che verrà compilato solo quando source è impostato su CLIENT_HINTS_HIGH_ENTROPY.

Modello

Identifica il modello del dispositivo. Per i dispositivi mobili, cioè non i laptop desktop, verrà compilato con il nome del modello, ad esempio "Pixel 6 Pro".

Di seguito vengono descritte le differenze che puoi aspettarti di notare in base al valore di source:

  • USER_AGENT
    • Dispositivi non mobili: il campo model spesso contiene una combinazione come "x64" per Windows. Questo valore è non multipiattaforma. ad esempio, Linux potrebbe usare “x86_64” per la stessa hardware.
    • Dispositivi mobili: questo campo non includerà architettura e bit. Se ti interessano questi valori, consulta UserAgent.architecture e UserAgent.bitness.
  • CLIENT_HINTS_LOW_ENTROPY: il campo model non verrà compilato.
  • CLIENT_HINTS_HIGH_ENTROPY: il campo model verrà compilato solo per il modello del dispositivo mobile. Nessun valore impostato per le piattaforme desktop.

Origine

Identifica le intestazioni utilizzate per creare l'elemento UserAgent. Per i client hint questa opera fa una distinzione anche tra i due casi seguenti:

  • CLIENT_HINTS_LOW_ENTROPY: sono disponibili solo client hint di base.
  • CLIENT_HINTS_HIGH_ENTROPY: sono disponibili client hint e almeno un campo classificato come alta entropia.