Nếu bạn từng làm việc với Google Ads (gclid), Facebook Ads (fbclid & _fbp) hay TikTok Ads (ttclid), thì khi bước sang hệ sinh thái ChatGPT Ads, có hai khái niệm kỹ thuật quan trọng bậc nhất quyết định trực tiếp đến Tỷ lệ khớp chuyển đổi (Attribution Match Rate) và hiệu quả tối ưu hóa của thuật toán AI: đó chính là tham số oppref và mã tham chiếu trình duyệt obref (cookie __obref).
Trong bài viết chuyên sâu này, đội ngũ kỹ sư dữ liệu CDUDU sẽ giải mã chi tiết cơ chế hoạt động của oppref và obref, vị trí đặt chúng trong JSON payload của OpenAI Conversions API và quy chuẩn chuẩn hóa dữ liệu khách hàng băm SHA-256 để không bao giờ bị lỗi HTTP 400.
I. Phân biệt toàn diện giữa oppref và obref (__obref)
Rất nhiều lập trình viên khi mới đọc tài liệu OpenAI Ads thường nhầm lẫn vị trí đặt oppref và obref trong request gửi lên Conversions API. Bảng đối chiếu dưới đây sẽ giúp bạn phân biệt rõ ràng 100%:
| Tiêu chí kỹ thuật | Tham số oppref (OpenAI Click Reference) |
Tham số obref (Opaque Browser Reference) |
|---|---|---|
| Bản chất định danh | Mã định danh lượt nhấp chuột vào quảng cáo trong ChatGPT (tương đương gclid hoặc fbclid). |
Mã tham chiếu trình duyệt ẩn danh do Measurement Pixel khởi tạo (tương đương cookie _fbp). |
| Nơi xuất hiện trên Client | Đính kèm trên Query URL khi khách click quảng cáo (VD: ?oppref=oppref_abc123) và được Pixel lưu vào cookie __oppref. |
Được thư viện oaiq.min.js lưu trữ trong first-party cookie có tên là __obref trên trình duyệt. |
| Vị trí trong JSON Payload của CAPI | Đặt ở cấp độ sự kiện (Event-level): events[].oppref |
Đặt ở trong đối tượng user của sự kiện: events[].user.obref |
| Có cần băm SHA-256 không? | Tuyệt đối KHÔNG băm. Giữ nguyên chuỗi gốc 100%. | Tuyệt đối KHÔNG băm. Truyền nguyên vẹn chuỗi đọc từ cookie __obref. |
| Vai trò trong Attribution | Chìa khóa chính để đối sánh Click-through Attribution chính xác tuyệt đối. | Liên kết hoạt động trình duyệt với sự kiện Server CAPI và hỗ trợ đối sánh đa phiên / View-through. |
II. Cách thu thập oppref và __obref từ Frontend truyền về Backend
Khác với Measurement Pixel tự động đọc cookie trên trình duyệt, khi bạn gửi sự kiện qua Conversions API từ máy chủ, OpenAI không thể tự đọc trình duyệt của khách. Do đó, bạn cần thu thập 2 giá trị này ở Frontend và gửi kèm trong API đặt hàng/đăng ký form về Backend của mình:
// Hàm tiện ích đọc Cookie và Query Parameter trên trình duyệt để gửi kèm đơn hàng về Backend
function getOpenAiAttributionContext() {
const urlParams = new URLSearchParams(window.location.search);
const getCookie = (name) => {
const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
return match ? decodeURIComponent(match[2]) : null;
};
// 1. Lấy oppref từ URL hoặc từ cookie __oppref đã lưu trước đó
const oppref = urlParams.get("oppref") || getCookie("__oppref") || undefined;
// 2. Lấy obref từ first-party cookie __obref của Measurement Pixel
const obref = getCookie("__obref") || undefined;
return { oppref, obref };
}
Lưu ý tuân thủ quyền riêng tư (Consent): Trước khi đọc và chuyển tiếp cookie
__obrefvề máy chủ, hãy đảm bảo người dùng chưa từ chối quyền đo lường (nếu người dùng thu hồi consent, hãy ngừng gửiobref).
III. Quy chuẩn Chuẩn hóa (Normalization) và Băm SHA-256 dữ liệu khách hàng (user)
Trong trường hợp người dùng xem quảng cáo trên ứng dụng ChatGPT điện thoại nhưng sau đó lại mở máy tính tự gõ tên miền website của bạn để mua hàng (không có oppref), OpenAI sẽ dựa vào Thông tin định danh khách hàng (events[].user) để khớp đơn hàng.
Để cả phía OpenAI và phía máy chủ của bạn tạo ra cùng một chuỗi mã băm SHA-256 (64 ký tự hex viết thường) khớp nhau 100%, bạn bắt buộc phải chuẩn hóa chuỗi theo đúng quy tắc của OpenAI trước khi băm:
| Loại định danh | Tên trường trong CAPI (events[].user) |
Quy tắc chuẩn hóa BẮT BUỘC trước khi băm SHA-256 | Ví dụ Đầu vào → Sau chuẩn hóa |
|---|---|---|---|
emails_sha256 (Mảng tối đa 3 phần tử) |
Cắt bỏ khoảng trắng 2 đầu (trim) và chuyển toàn bộ về chữ thường (lowercase). | [email protected] → [email protected] |
|
| Số điện thoại | phone_numbers_sha256 (Mảng tối đa 3 phần tử) |
Giữ mã quốc gia. Xoá toàn bộ khoảng trắng, dấu ngoặc (), dấu chấm ., dấu gạch ngang -, sau đó xoá dấu + ở đầu và các số 0 ở đầu. Chuỗi kết quả phải từ 8–15 chữ số. |
+1 (415) 555-2671 → 14155552671+84 909-123-456 → 84909123456 |
| Mã khách hàng nội bộ | external_ids_sha256 (Mảng tối đa 3 phần tử) |
Chỉ cắt bỏ khoảng trắng ở đầu và cuối (trim). Giữ nguyên chữ hoa/thường và mọi ký tự khác. | USR-9988-VN → USR-9988-VN |
| Tên & Họ | first_names_sha256, last_names_sha256 |
Chuyển về chữ thường, xoá mọi khoảng trắng và dấu câu ASCII (như dấu nháy đơn '). Giữ nguyên dấu tiếng Việt / ký tự có dấu (không bỏ dấu)! |
Mary Jane → maryjaneO'Connor → oconnorLê Hồng → lêhồng |
| Địa lý & Thiết bị | countries, regions, cities, postal_codes, ip_address, user_agent |
Gửi dạng chuỗi thô (RAW string — KHÔNG băm SHA-256). Mã quốc gia dùng chuẩn ISO 2 ký tự (VD: VN, US). |
"countries": ["VN"] |
Điểm cực kỳ dễ sai khi xử lý Tên tiếng Việt:
Hãy chú ý quy tắc của OpenAI: "Apart from converting to lowercase, preserve non-ASCII characters; don't strip accents or transliterate". Nghĩa là với tên tiếng Việt có dấu (như Nguyễn, Hồng), bạn chỉ chuyển thành chữ thường và bỏ khoảng trắng/dấu câu ASCII chứ TUYỆT ĐỐI KHÔNG chuyển thành chữ không dấu trước khi băm UTF-8 SHA-256!
Trọn Bộ 20 Bài Viết Chuyên Sâu & Hướng Dẫn Thực Chiến Chạy ChatGPT Ads (2026)
Để nắm vững toàn bộ kiến trúc kỹ thuật, quy trình cầm tay chỉ việc và kinh nghiệm thực chiến tối ưu chuyển đổi trên hệ sinh thái quảng cáo OpenAI Ads (ads.openai.com), mời bạn khám phá trọn bộ 20 bài hướng dẫn chuyên sâu từ đội ngũ kỹ sư CDUDU:
Phần 1: Nền tảng Kiến trúc, Đo lường Server-to-Server CAPI & OpenAI Ads API (Bài 01 – 12)
- Tổng quan hệ sinh thái (Pillar): ChatGPT Ads Là Gì? Toàn Tập Quảng Cáo Trên ChatGPT & Hệ Sinh Thái OpenAI Ads (2026)
- Kiến trúc Server-to-Server CAPI: OpenAI Ads Conversions API (CAPI) Là Gì? Hướng Dẫn Tích Hợp Đo Lường Server-to-Server
- Browser SDK & Deduplication: Hướng Dẫn Cài Đặt ChatGPT Ads Measurement Pixel (
oaiq.min.js) & Chống Trùng Lặp Sự Kiện - Định danh phân bổ & SHA-256: Giải Mã Tham Số
opprefVà Cookie__obrefTrong ChatGPT Ads Attribution - Từ điển 13 Sự kiện & Data Shapes: Danh Sách 13 Sự Kiện Chuyển Đổi Chuẩn (Supported Events) & Data Shapes Trên ChatGPT Ads
- Chiến lược Đấu thầu & oCPC: Chiến Lược Đấu Thầu (Bidding), Ngân Sách & Tối Ưu Chuyển Đổi oCPC Trên ChatGPT Ads
- Nhắm mục tiêu Ngữ cảnh AI: Nghệ Thuật Nhắm Mục Tiêu Trên ChatGPT Ads: Context Hints, Địa Lý & Nền Tảng (
iOS,Android,Web) - First-Party Data & Remarketing: Xây Dựng Tệp Đối Tượng Tùy Chỉnh (Custom Audiences) & Chiến Lược Remarketing Trên ChatGPT Ads
- Thương mại điện tử & SFTP Catalog: Quảng Cáo Danh Mục Sản Phẩm (Product Feeds) & Đồng Bộ Tồn Kho Qua Delta Feeds API
- Báo cáo Đa chiều & ROAS: Phân Tích Hiệu Quả ChatGPT Ads Với Insights API: Đo Lường ROAS, CPA & Cửa Sổ Phân Bổ
- Tự động hóa REST API & Bulk API: Tự Động Hóa Chiến Dịch Quảng Cáo ChatGPT Hàng Loạt Bằng OpenAI Advertiser API & Bulk API
- So sánh Đa kênh & Xử lý lỗi: So Sánh ChatGPT Ads Với Google Ads & Facebook Ads: Cách Chẩn Đoán Lỗi
Serving Issues
Phần 2: Hướng dẫn Thực chiến Cầm tay chỉ việc & Kinh nghiệm Tối ưu Chuyển đổi (Bài 13 – 20)
- Hướng dẫn A-Z cho người mới: Hướng Dẫn Chạy Quảng Cáo ChatGPT Ads Từ A-Z Cho Người Mới Bắt Đầu (Cầm Tay Chỉ Việc 2026)
- Viết mẫu quảng cáo CTR cao: Bí Quyết Viết Mẫu Quảng Cáo
chat_card&product_ad_templateĐạt CTR Cao Kỷ Lục Trên ChatGPT Ads - Quản trị Ngân sách & UTM Tracking: Chia Sẻ Kinh Nghiệm Tối Ưu Chi Phí, Hạn Mức Chi Tiêu (
Spend Limits) & Thứ Tự Ưu Tiên UTM Tracking - HTML Image Tag & Đa Pixel: Hướng Dẫn Đo Lường Chuyển Đổi ChatGPT Ads Bằng HTML Image Tag (Không Cần JS) & Quản Lý
Multiple Pixels - Quảng cáo Khách sạn & Du lịch: Hướng Dẫn Chạy Quảng Cáo Khách Sạn, Resort & Lưu Trú Trên ChatGPT Ads Với
Hotel Property Feeds - Chiến lược cho B2B SaaS & Phần mềm: Chiến Lược Chạy ChatGPT Ads Bùng Nổ Khách Hàng B2B SaaS, Phần Mềm & Dịch Vụ Doanh Nghiệp
- Kết hợp Affiliate, TMĐT & Video AI: Bí Quyết Kết Hợp ChatGPT Ads Với Affiliate Marketing, TMĐT & Hệ Thống Reup Video Tự Động CReup AI PRO
- 15 Sai lầm đốt tiền & Checklist Audit: 15 Sai Lầm "Đốt Tiền" Khi Tự Chạy Quảng Cáo ChatGPT Ads Và Checklist Audit Chiến Dịch Toàn Diện
IV. Câu hỏi thường gặp (FAQ) về oppref, obref và Đối sánh người dùng
1. Điều gì xảy ra nếu tôi truyền quá 3 email hoặc 3 số điện thoại vào mảng emails_sha256?
OpenAI giới hạn mỗi trường danh sách định danh trong events[].user chỉ được chứa tối đa 3 giá trị duy nhất. Nếu bạn gửi 4 giá trị trở lên, API sẽ không tự cắt bớt mà trả về lỗi HTTP 400 Bad Request và làm hỏng cả batch sự kiện đó.
2. Nếu khách hàng dùng iPhone thì có gửi được mã IDFA qua trường android_advertising_id không?
Không. Trường android_advertising_id trong CAPI chỉ hỗ trợ mã Google Advertising ID (GAID) định dạng UUID của hệ điều hành Android và không hỗ trợ IDFA của Apple. Nếu thiết bị Android trả về chuỗi GAID toàn số 0 (do người dùng tắt cá nhân hóa quảng cáo), API của OpenAI sẽ tự động bỏ qua trường đó mà không báo lỗi.
3. Tại sao OpenAI lại tách oppref ra ngoài sự kiện còn obref lại nằm trong user?
Bởi vì oppref là định danh của một lượt tương tác quảng cáo cụ thể dẫn đến sự kiện chuyển đổi đó (Event-level attribution), trong khi obref là định danh của trình duyệt/người dùng dùng để nối các phiên truy cập của cùng một khách hàng (User-level identity).


