Cách đọc chuỗi đồng ý TCF: Hướng dẫn thực địa cho lập trình viên
TC string thực sự là gì
IAB Transparency & Consent Framework tạo ra một mã thông báo gọn nhẹ duy nhất — TC string — di chuyển cùng với mọi yêu cầu quảng cáo và cho các nhà cung cấp biết chính xác người dùng đã đồng ý và chưa đồng ý với điều gì. Nó được mã hóa Base64-URL và đóng gói ở cấp độ bit, vì vậy nó trông giống như vô nghĩa (CPxy...AAA) nhưng mã hóa một bản ghi chính xác, có thể kiểm toán.
Các phân đoạn
Một TC string đầy đủ gồm nhiều phân đoạn được phân tách bằng dấu chấm. Phân đoạn đầu tiên là core string; các phân đoạn khác là tùy chọn:
- Core — CMP ID, phiên bản CMP, dấu thời gian đồng ý, phiên bản chính sách, và quan trọng nhất là các trường bit của sự đồng ý mục đích và sự đồng ý nhà cung cấp.
- Nhà cung cấp được tiết lộ — những nhà cung cấp nào đã được hiển thị cho người dùng.
- Publisher TC — các sự đồng ý cụ thể cho bạn, nhà xuất bản.
Các trường bit là trọng tâm của nó: bit N được đặt thành 1 nghĩa là đồng ý cho mục đích N hoặc nhà cung cấp N. Mục đích 1 là “lưu trữ/truy cập thông tin trên thiết bị,” mục đích 3 và 4 bao gồm quảng cáo cá nhân hóa, v.v.
Giải mã một chuỗi trong thực tế
Bạn hiếm khi giải mã bit bằng tay. Sử dụng các thư viện do IAB cung cấp hoặc một bộ giải mã công khai:
- Tách theo
.và giải mã Base64-URL phân đoạn core. - Đọc các trường tiêu đề có độ rộng cố định (phiên bản, created, lastUpdated, cmpId, cmpVersion).
- Duyệt qua các trường bit mục đích và nhà cung cấp để xem chính xác những cái nào được cấp.
Trong JavaScript, lệnh gọi __tcfapi('getTCData', 2, cb) trả về đối tượng đã được phân tích — tcData.purpose.consents và tcData.vendor.consents là các bản đồ id → boolean. Đó là sự thật nền tảng của bạn trong thời gian chạy.
Những lỗi giết chết doanh thu
Khi nhu cầu cá nhân hóa âm thầm biến mất, TC string thường là lý do:
- Thiếu chuỗi — yêu cầu quảng cáo không mang
gdprApplies/TC string, nên các SSP tuân thủ rớt xuống không cá nhân hóa. - Nhà cung cấp chưa được đồng ý — bit ID nhà cung cấp của đối tác cầu của bạn là 0, nên họ không thể đặt giá thầu với cá nhân hóa.
- Chuỗi hết hạn hoặc lỗi thời — dấu thời gian cũ khiến các nền tảng hạ nguồn không tin tưởng nó.
- CMP ID sai — một CMP ID chưa đăng ký hoặc dùng để thử nghiệm làm vô hiệu toàn bộ chuỗi.
Quy trình gỡ lỗi
Tái tạo sự đồng ý của người dùng, lấy TC string trực tiếp từ __tcfapi hoặc yêu cầu quảng cáo, chạy nó qua một trình xác thực, và so sánh các mục đích/nhà cung cấp đã giải mã với những gì đối tác của bạn yêu cầu. Chín trên mười lần khoảng cách là một bit nhà cung cấp duy nhất hoặc thiếu mục đích 1.
FlexyConsent phù hợp ở đâu
FlexyConsent tạo ra các TC string hợp lệ theo đặc tả với một CMP ID đã đăng ký, giữ chúng tươi mới, hiển thị trạng thái đã giải mã để gỡ lỗi, và báo cáo những mục đích và nhà cung cấp nào thực sự được cấp trên toàn bộ lưu lượng của bạn — để bạn có thể thấy, chứ không phải đoán, nơi sự đồng ý (và doanh thu) đang rò rỉ.
Những điểm chính
- TC string là một bản ghi đóng gói theo bit, có thể kiểm toán, của mọi lựa chọn đồng ý.
- Các trường bit mục đích và nhà cung cấp quyết định liệu các đối tác có thể phục vụ quảng cáo cá nhân hóa hay không.
- Hầu hết các đợt giảm doanh thu đều bắt nguồn từ thiếu chuỗi, nhà cung cấp chưa được đồng ý, hoặc CMP ID lỗi thời/không hợp lệ.
- Giải mã chuỗi trực tiếp bằng
__tcfapivà xác thực nó với yêu cầu của đối tác khi gỡ lỗi.