Nhắm mục tiêu tác nhân người dùng

User-Agent trước đây được bao gồm trong yêu cầu giá thầu để cung cấp thông tin hữu ích dữ liệu nhắm mục tiêu, chẳng hạn như trình duyệt và nền tảng của thiết bị khởi tạo. Tuy nhiên, các trình duyệt thường loại bỏ rất nhiều Tác nhân người dùng do khó sử dụng và để bảo vệ quyền riêng tư của người dùng một cách hiệu quả hơn. Để trả lời câu hỏi này, Google hỗ trợ Gợi ý ứng dụng tác nhân người dùng, trong đó được bao gồm trong yêu cầu giá thầu nếu có để bổ sung cho tiêu đề User-Agent. Các Gợi ý về ứng dụng này (gọi ngắn gọn) có thể được lấy từ các tiêu đề Sec-Ch-UA* hoặc từ API Gợi ý ứng dụng JavaScript.

Tuỳ thuộc vào giao thức được sử dụng, tiêu đề Tác nhân người dùng sẽ hiển thị cùng với một trong các các trường chuỗi sau:

  • OpenRTB: BidRequest.device.ua
  • Google RTB (Không dùng nữa): BidRequest.user_agent

Thông báo UserAgent sẽ được điền sẵn Gợi ý ứng dụng khi có sẵn, nhưng sẽ được điền sẵn dựa trên các giá trị được phân tích cú pháp từ Tiêu đề Tác nhân người dùng. Tuỳ thuộc vào giao thức được sử dụng, thông số này sẽ hiển thị dưới dạng một trong các trường sau:

  • OpenRTB: BidRequest.device.sua
  • Google RTB (Không dùng nữa): BidRequest.user_agent_data

Bên đặt giá thầu nên sử dụng thông báo UserAgent thay vì Chuỗi tác nhân người dùng.

Cách hệ thống điền UserAgent

Không giống như tiêu đề Tác nhân người dùng, thông báo UserAgent đại diện cho tác nhân người dùng thông tin được chia nhỏ thành nhiều trường để có thông tin cụ thể.

Tuỳ thuộc vào việc Gợi ý về ứng dụng có xuất hiện trong yêu cầu quảng cáo hay không, Bạn có thể điền UserAgent thông báo theo các cách sau:

  • Nếu yêu cầu chứa ít nhất entropy thấp Gợi ý ứng dụng, UserAgent được điền dựa trên nội dung của ứng dụng.
  • Nếu yêu cầu chỉ chứa tiêu đề Tác nhân người dùng, UserAgent sẽ được điền dựa trên thông tin có thể phân tích cú pháp được từ tiêu đề.

Ví dụ: Điền UserAgent dựa trên tiêu đề Tác nhân người dùng

Giả sử có một yêu cầu quảng cáo mà trình duyệt gửi các tiêu đề sau:

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

Một UserAgent được điền sẵn chỉ dựa trên tiêu đề Tác nhân người dùng có thể có dạng như sau như sau:

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

Ví dụ: Điền UserAgent dựa trên Gợi ý ứng dụng

Giả sử có một yêu cầu quảng cáo mà trình duyệt gửi các tiêu đề sau:

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

Trong trường hợp có ít nhất Gợi ý ứng dụng có entropy thấp, thì UserAgent sẽ được điền dựa trên nội dung của các tiêu đề đó ngay cả khi User-Agent có tiêu đề. Mã sẽ có dạng như sau:

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

Điền dựa trên tiêu đề Tác nhân người dùng và Gợi ý ứng dụng

Một số trường được điền sẵn theo cách khác nhau tuỳ thuộc vào việc các trường đó có dựa trên tiêu đề Tác nhân người dùng hoặc Gợi ý về ứng dụng. Sau đây là tóm tắt về khác biệt:

  • Đối với các trình duyệt và nền tảng giống nhau, UserAgent.browsers.brandUserAgent.platform.brand thường sẽ khác nhau giữa một UserAgent dựa trên tiêu đề Tác nhân người dùng hoặc Gợi ý về ứng dụng. Ví dụ: UserAgent.platform.brand có thể xuất hiện dưới dạng "Windows NT" nếu nền tảng này dựa trên tiêu đề Tác nhân người dùng hoặc "Windows" nếu dựa trên Gợi ý ứng dụng.
  • Một số mục nhập UserAgent.browsers là duy nhất đối với tiêu đề Tác nhân người dùng hoặc cho Gợi ý về ứng dụng. Ví dụ: "AppleWebKit" sẽ xuất hiện nếu UserAgent dựa trên tiêu đề Tác nhân người dùng, trong khi “Chromium” sẽ chỉ xuất hiện nếu dựa trên Gợi ý của ứng dụng.
  • Chỉ UserAgent dựa trên tiêu đề Tác nhân người dùng mới có thể chứa các giá trị cố định. Ví dụ: nếu nền tảng là Windows 11 22H2, UserAgent.platform.brand sẽ được đặt thành "Windows NT" và UserAgent.platform.version sẽ được thiết lập thành [“10”, “0”] vì đó giá trị cố định cho bất kỳ phiên bản Windows nào từ 10 trở lên.

Dữ liệu trong UserAgent dựa trên Gợi ý ứng dụng thường sẽ không phải là thay thế không chính xác đối với thông tin bị cố định hoặc bị che khuất. Nếu có sự không nhất quán giữa tiêu đề Tác nhân người dùng và UserAgent dựa trên Ứng dụng Gợi ý, thông tin từ UserAgent sẽ được ưu tiên.

Trường đối tượng UserAgent

Phần này tóm tắt từng trường, tập trung vào RTB Google và các phương pháp sử dụng hay nhất.

Trình duyệt

Chứa danh sách BrandVersion các mục nhập thường được sắp xếp theo tính cụ thể (ví dụ: nếu bạn muốn liệt kê nội dung của browsers, brand cho mỗi mục có thể xuất hiện theo thứ tự sau:

Thương hiệu Ý nghĩa
Mozilla Tương thích với Mozilla
AppleWebKit Dựa trên AppleWebKit, một tập hợp con của Mozilla.
Chrome Trình duyệt Chrome, một nhóm nhỏ các trình duyệt tương thích với AppleWebKit
Safari Biến thể dành cho máy tính, thay vì thiết bị di động.

UserAgent không phải lúc nào cũng liệt kê các trình duyệt theo bất kỳ thứ tự cụ thể nào, đặc biệt nếu dựa trên Gợi ý của ứng dụng. Phần sau đây mô tả những điểm khác biệt khác mà bạn có thể thấy dựa trên giá trị của source:

  • USER_AGENT: Trường version có thể bị giảm thành phiên bản lớn hoặc bị treo (tuỳ thuộc vào chính sách của từng tác nhân cụ thể). Xin lưu ý rằng sẽ không có cho biết giá trị này bị cố định.
  • CLIENT_HINTS_LOW_ENTROPYCLIENT_HINTS_HIGH_ENTROPY: Các mục nhập là không được sắp xếp theo bất kỳ tiêu chí nào; Ví dụ: cùng một trình duyệt có thể gửi các mục nhập theo các đơn đặt hàng khác nhau trong mỗi yêu cầu. Chúng cũng có thể chứa Mục GREASE, tức là sẽ bị bỏ qua.
  • CLIENT_HINTS_HIGH_ENTROPY: Tất cả version trường có trong trình duyệt có thể thành phiên bản đầy đủ.

Nền tảng

BrandVersion (Phiên bản thương hiệu) mục nhập mô tả nền tảng. Tính năng này có thể không tương thích giữa Tác nhân người dùng tiêu đề và Gợi ý ứng dụng khách, vì vậy việc nhắm mục tiêu một số nền tảng có thể yêu cầu kiểm tra 2 tên. Ví dụ: hệ điều hành Macintosh của Apple được gắn thương hiệu là "Macintosh" trong tiêu đề User-Agent nhưng lại là "macOS" trong phần Client Hints. Phần sau đây mô tả những điểm khác biệt khác mà bạn có thể thấy dựa trên giá trị của source:

  • USER_AGENT: Trường version có thể bị giảm thành phiên bản lớn hoặc bị treo. Lưu ý rằng sẽ không có chỉ báo cho biết giá trị này bị cố định.
  • CLIENT_HINTS_LOW_ENTROPY: Trường version sẽ không được điền sẵn.
  • CLIENT_HINTS_HIGH_ENTROPY: Trường version có thể được đặt thành đầy đủ .

Di động

Cho biết liệu nội dung như quảng cáo có được tối ưu hoá cho màn hình nhỏ và/hoặc không nhập bằng cách chạm. Xin lưu ý rằng đây không nhất thiết là một chỉ báo về loại thiết bị, trình duyệt di động có thể được định cấu hình để yêu cầu "trang web dành cho máy tính".

Kiến trúc

Xác định cấu trúc của nền tảng, chẳng hạn như "x86" hoặc "arm".

Đối với UserAgent dựa trên Gợi ý ứng dụng, xin lưu ý rằng giá trị này sẽ chỉ được điền sẵn khi bạn đặt source thành CLIENT_HINTS_HIGH_ENTROPY.

Bit

Xác định bit của nền tảng, chẳng hạn như nó có 32 bit hay 64 bit CPU. Trường này là một chuỗi số nguyên cung cấp thông tin bổ sung về kiến trúc của nó; ví dụ: cấu trúc "x86" có thể có bit bit được đặt thành "32" hoặc "64".

Đối với UserAgent dựa trên Gợi ý ứng dụng, xin lưu ý rằng giá trị này sẽ chỉ được điền sẵn khi bạn đặt source thành CLIENT_HINTS_HIGH_ENTROPY.

Mẫu

Xác định mẫu thiết bị. Dành cho thiết bị di động – có nghĩa là không phải máy tính xách tay hoặc máy tính để bàn – tên này sẽ được điền sẵn bằng tên mẫu, chẳng hạn như "Pixel 6 Pro".

Phần sau đây mô tả những khác biệt mà bạn có thể thấy dựa trên giá trị của source:

  • USER_AGENT
    • Thiết bị không phải thiết bị di động: Trường model thường sẽ chứa mã kết hợp kiến trúc và bit bit như “x64” đối với Windows. Giá trị này là không đa nền tảng; ví dụ: Linux có thể sử dụng “x86_64” cho cùng một phần cứng.
    • Thiết bị di động: Trường này sẽ không bao gồm cấu trúc và bit. Nếu bạn quan tâm đến những giá trị này, hãy xem UserAgent.architectureUserAgent.bitness
  • CLIENT_HINTS_LOW_ENTROPY: Trường model sẽ không được điền sẵn.
  • CLIENT_HINTS_HIGH_ENTROPY: Trường model sẽ chỉ được điền cho mẫu thiết bị của thiết bị di động. Không có giá trị nào được đặt cho nền tảng máy tính.

Nguồn

Xác định tiêu đề dùng để tạo UserAgent. Đối với Gợi ý về ứng dụng, điều này cũng phân biệt giữa hai trường hợp sau:

  • CLIENT_HINTS_LOW_ENTROPY: Chỉ có các Gợi ý ứng dụng cơ bản.
  • CLIENT_HINTS_HIGH_ENTROPY: Có sẵn Gợi ý ứng dụng, bao gồm ít nhất một trường được phân loại là có entropy cao.