Máy chủ & quảng cáo
Kiểm tra đồng ý từ máy chủ trước khi gửi
Sự kiện gửi từ máy chủ (Meta Conversions API, GA4 Measurement Protocol) không đi qua trình duyệt nên banner không chặn được. Trước mỗi lần gửi, máy chủ của bạn hỏi API của DuLieuCaNhan.vn xem khách đã đồng ý chưa và chỉ gửi khi câu trả lời là có.
Gói cần dùng: Cần gói Doanh nghiệp hoặc Agency: hàm kiểm tra gọi API công khai bằng khoá API, mà gói Miễn phí không có.
Vì sao cần
Máy chủ gửi sự kiện theo dõi hành vi sang bên thứ ba vẫn là xử lý dữ liệu cá nhân, nên theo cách hiểu thận trọng, vẫn cần khách đồng ý trước, như với Pixel trên trình duyệt. Hướng dẫn Meta Conversions API nói rõ hơn về điểm này.
Cần chuẩn bị
- Khoá API có quyền consents:read. Khoá được tạo trong dashboard của workspace và chỉ hiện đúng một lần; số khoá được tạo tuỳ gói.
- Mã website (siteId) của website trong workspace.
- Cách nhận ra khách: mã đồng ý của khách (lưu cùng đơn hàng), hoặc email, số điện thoại, mã khách hàng đã được liên kết với mã đồng ý qua API.
Câu trả lời của API
- granted là true
- Khách đã đồng ý loại này và bản ghi còn hiệu lực (expired không phải true): được gửi.
- granted là false
- Khách đã từ chối loại này: không gửi.
- granted là null
- Không có bản ghi còn hiệu lực cho khách này: chưa có bản ghi nào, bản ghi đã bị thay bằng mức hỏi lại mới, hoặc đã quá hạn lưu. API không đoán, nên không gửi.
- expired là true
- Có bản ghi nhưng không còn hiệu lực theo luật của banner (khách sẽ được hỏi lại): granted là null, không gửi.
- Lỗi, sai khoá, hết giờ
- Không kiểm tra được thì không gửi. Hàm mẫu mặc định chờ tối đa 3 giây và không bao giờ làm đơn hàng của bạn bị lỗi.
Các bước
- Tải hàm kiểm tra cho ngôn ngữ của bạn (Node, PHP hoặc Python). Hàm không cần thư viện nào.
- Đặt địa chỉ API (WDL_BASE_URL, https) và khoá API trong biến môi trường của máy chủ. Đừng viết khoá vào mã nguồn và đừng đưa nó ra trình duyệt.
- Trước mỗi lần gọi Meta hay Google, gọi hàm với loại phù hợp: marketing cho Meta Conversions API, analytics cho GA4 Measurement Protocol.
- Chỉ gửi khi allowed là true. Đừng tự đoán khi kết quả là null hay lỗi.
- Ghi lại lý do không gửi (denied, no_record, check_failed) để đối chiếu sau. Đừng ghi khoá API hay email vào nhật ký.
Ví dụ
Ba đoạn dưới đây cùng làm một việc: hỏi API, rồi chỉ gửi sự kiện Purchase sang Meta khi khách đã đồng ý loại Quảng cáo. Tệp tải về có thêm ví dụ GA4.
Node.js
import { checkConsent } from './consent-check.mjs'
const c = await checkConsent({
apiKey: API_KEY, // đọc từ biến môi trường của máy chủ
siteId: 'ID_WEBSITE',
category: 'marketing',
consentId: order.consentId, // hoặc refType: 'email', ref: order.email
})
if (c.allowed) await sendMetaPurchase(order) // allowed chỉ true khi granted là true
else console.log('Không gửi:', c.granted === false ? 'denied' : c.error ?? 'no_record')PHP
require_once 'consent_check.php';
$c = wdl_check_consent([
'apiKey' => getenv('WDL_API_KEY'),
'siteId' => 'ID_WEBSITE',
'category' => 'marketing',
'consentId' => $order['consentId'], // hoặc 'refType' => 'email', 'ref' => $order['email']
]);
if ($c['allowed']) { // allowed chỉ true khi granted là true
send_meta_purchase($order);
}Python
from consent_check import check_consent
c = check_consent(
api_key=os.environ["WDL_API_KEY"],
site_id="ID_WEBSITE",
category="marketing",
consent_id=order["consent_id"], # hoặc ref_type="email", ref=order["email"]
)
if c["allowed"]: # allowed chỉ True khi granted là True
send_meta_purchase(order)Tải về
Dữ liệu đi qua lời gọi
Lời gọi đi giữa máy chủ của bạn và máy chủ của DuLieuCaNhan.vn qua HTTPS. Mã đồng ý nằm trên địa chỉ URL của lời gọi; email, số điện thoại hay mã khách hàng chỉ nằm trong thân của lời gọi, không bao giờ trên URL, và được chuẩn hoá rồi chỉ lưu dưới dạng HMAC trong hệ thống của DuLieuCaNhan.vn. Đừng ghi khoá API hay thân lời gọi vào nhật ký của bạn.
Giới hạn
Mỗi khoá được 600 lời gọi mỗi phút; quá mức đó API trả 429 và hàm mẫu coi là không gửi. Với website đông khách, lưu mã đồng ý cùng đơn hàng và chỉ hỏi khi cần gửi.