Trong hệ thống đo lường của ChatGPT Ads, nếu như OpenAI Conversions API (CAPI) đóng vai trò là "chốt chặn hậu phương" từ máy chủ Backend, thì ChatGPT Ads Measurement Pixel (oaiq.min.js) chính là "trạm radar tiền tuyến" hoạt động trực tiếp trên trình duyệt của khách truy cập.
Bài viết này sẽ hướng dẫn đội ngũ lập trình viên Frontend và Digital Marketer cách cài đặt chuẩn mã Measurement Pixel từ CDN chính thức của OpenAI (https://bzrcdn.openai.com/sdk/oaiq.min.js), cách cấu hình bảo mật Content Security Policy (CSP), quản lý quyền đồng ý của người dùng (Consent Mode) và thiết lập cơ chế Chống trùng lặp sự kiện (Event Deduplication) hoàn hảo.
I. ChatGPT Ads Measurement Pixel (oaiq) là gì?
ChatGPT Ads Measurement Pixel là bộ thư viện JavaScript SDK nhẹ do OpenAI cung cấp nhằm ghi nhận các tương tác của khách hàng trên website (như xem trang page_viewed, xem chi tiết sản phẩm contents_viewed, thêm vào giỏ hàng items_added, bắt đầu thanh toán checkout_started và hoàn tất đơn hàng order_created) để phân bổ ngược về các chiến dịch quảng cáo hiển thị trong ChatGPT.
Khi được nhúng vào thẻ <head> của website, hàm toàn cục oaiq(...) sẽ tự động:
- Đọc tham số nhấp chuột
oppreftrên thanh địa chỉ URL khi người dùng vừa click từ quảng cáo ChatGPT sang và lưu vào cookie first-party__oppref. - Khởi tạo mã tham chiếu trình duyệt ẩn danh trong cookie
__obrefđể phục vụ đối sánh liên thiết bị và chuyển tiếp sang Conversions API. - Hỗ trợ tính năng Automatic Advanced Matching (tự động nhận diện, chuẩn hóa và băm SHA-256 thông tin khách hàng ngay trên trình duyệt trước khi gửi đi).
II. Cách cài đặt đoạn mã cơ sở (Base Code) của Measurement Pixel
Hãy đặt đoạn mã khởi tạo dưới đây càng gần đầu thẻ <head> trên mọi trang của website càng tốt để không bỏ lỡ các sự kiện chuyển đổi sớm khi người dùng thao tác nhanh:
<script>
(function (w, d, s, u) {
if (w.oaiq) return;
var q = function () {
q.q.push(arguments);
};
q.q = [];
w.oaiq = q;
var js = d.createElement(s);
js.async = true;
js.src = u;
var f = d.getElementsByTagName(s)[0];
f.parentNode.insertBefore(js, f);
})(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");
oaiq("init", {
pixelId: "<YOUR-PIXEL-ID>",
debug: false
});
</script>
Mẹo kiểm thử cho Developer: Trong môi trường Staging/Development, bạn có thể truyền thêm tùy chọn
debug: truevào lệnhoaiq("init", ...)để SDK in toàn bộ nhật ký kiểm tra sự kiện ra cửa sổ Browser Console (F12).
III. Cấu hình Content Security Policy (CSP) và Quản lý Consent chuẩn bảo mật
1. Bảng chỉ thị Content Security Policy (CSP) bắt buộc
Đối với các hệ thống thương mại điện tử và ngân hàng áp dụng chính sách bảo mật Content Security Policy (CSP) nghiêm ngặt (như chuẩn kiến trúc Next.js tại CDUDU), bạn cần bổ sung 2 tên miền chính thức của OpenAI (bzrcdn.openai.com và bzr.openai.com) vào HTTP Response Header như sau:
| Chỉ thị CSP (Directive) | Nguồn cần mở (Source) | Mục đích kỹ thuật |
|---|---|---|
script-src (và script-src-elem) |
https://bzrcdn.openai.com |
Cho phép trình duyệt tải thư viện oaiq.min.js. |
connect-src |
https://bzr.openai.com https://bzrcdn.openai.com |
Cho phép gửi sự kiện đo lường qua fetch / navigator.sendBeacon và tải cấu hình Pixel. |
img-src |
https://bzr.openai.com |
Hỗ trợ cơ chế gửi sự kiện dự phòng qua thẻ ảnh (Image fallback) và HTML Image Tag. |
2. Kiểm soát quyền đồng ý theo dõi (oaiq("consent", ...))
Mặc định, Measurement Pixel khởi tạo trạng thái consent = true. Nếu website của bạn phục vụ khách hàng tại các khu vực yêu cầu hộp thoại Cookie Banner (như GDPR/CCPA), hãy gọi lệnh oaiq("consent", false) trước khi gọi oaiq("init", ...), và chỉ bật lại thành true sau khi người dùng nhấn đồng ý:
// Tạm khóa gửi sự kiện trước khi người dùng xác nhận Cookie Banner
oaiq("consent", false);
oaiq("init", {
pixelId: "pxl_987654321",
});
// Khi người dùng bấm nút "Đồng ý Cookie đo lường":
function onUserAcceptAnalytics() {
oaiq("consent", true);
}
IV. Cơ chế Chống trùng lặp sự kiện (Event Deduplication) giữa Pixel và CAPI
Khi bạn triển khai mô hình Hybrid Tracking (vừa bắn sự kiện order_created từ trình duyệt bằng oaiq, vừa bắn từ máy chủ Backend qua Conversions API), làm sao để OpenAI không tính đúp 1 đơn hàng thành 2 chuyển đổi?
OpenAI giải quyết bài toán này bằng Khóa chống trùng lặp 3 thành phần:
Pixel ID(Phải giống hệt nhau ở cả trình duyệt và server).Tên sự kiện (Event Name)(Ví dụ cùng làorder_created, hoặc nếu là sự kiệncustomthì phải trùng cảcustom_event_name).Mã định danh sự kiện duy nhất: Truyền vào tham số thứ 4{ event_id: "..." }trên Pixel và truyền vào trườngevents[].idtrên Conversions API.
Nguyên tắc xử lý của OpenAI: Khi nhận được 2 sự kiện có cùng bộ khóa (Pixel ID + Event Name + Event ID), hệ thống OpenAI sẽ giữ lại sự kiện đầu tiên đến trước và tự động loại bỏ các bản sao đến sau.
Ví dụ Code đồng bộ event_id giữa Frontend (Pixel) và Backend (CAPI):
// 1. Phía Trình duyệt (Browser Measurement Pixel):
const uniqueOrderEventId = "order_20261020_998877";
oaiq(
"measure",
"order_created",
{
type: "contents",
amount: 350000,
currency: "VND",
contents: [
{
id: "creup_unlimited",
name: "CReup AI PRO Goi Unlimited",
content_type: "product",
quantity: 1,
amount: 350000,
currency: "VND"
}
]
},
{
event_id: uniqueOrderEventId // <-- Khớp 100% với trường "id" bên dưới
}
);
Và tại máy chủ Backend khi gọi POST https://bzr.openai.com/v1/events?pid=<PIXEL-ID>, bạn gán chính xác "id": "order_20261020_998877" trong phần tử events[0].
Trọn Bộ 12 Bài Viết Chuyên Sâu Về ChatGPT Ads & OpenAI Conversions API (2026)
Để nắm vững toàn bộ kiến trúc kỹ thuật và chiến lược 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á chuỗi 12 bài hướng dẫn chuẩn tài liệu gốc từ đội ngũ kỹ sư CDUDU:
- 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
V. Câu hỏi thường gặp (FAQ) về ChatGPT Ads Measurement Pixel
1. Một trang web có thể cài đặt nhiều Pixel ID của OpenAI cùng lúc không?
Hoàn toàn được. Theo tài liệu Multiple Pixel IDs của OpenAI, bạn có thể khởi tạo nhiều Pixel trên cùng một trang và sử dụng lệnh định tuyến sự kiện về từng Pixel cụ thể hoặc gửi đồng thời cho tất cả các Pixel đã khởi tạo.
2. Nếu trang thanh toán của tôi không cho phép chạy JavaScript thì đo lường bằng cách nào?
OpenAI cung cấp giải pháp HTML Image Tag (/ads/image-tag) cho phép nhúng một thẻ <img> ẩn 1×1 pixel gọi về https://bzr.openai.com hoặc tốt nhất là gửi sự kiện trực tiếp từ máy chủ thanh toán qua OpenAI Conversions API.
3. Measurement Pixel có hỗ trợ sự kiện cài đặt ứng dụng (app_installed) không?
Không. Hai sự kiện vòng đời ứng dụng là app_installed và app_opened hiện chỉ được hỗ trợ gửi qua Conversions API từ phía máy chủ với action_source: "mobile_app".


