Lưu sự đồng ý ở đâu: So sánh cookie, localStorage và bản ghi phía máy chủ
Hai công việc khác nhau
Khi một khách truy cập đưa ra lựa chọn đồng ý, hai việc riêng biệt cần xảy ra. Thứ nhất, trình duyệt phải ghi nhớ lựa chọn để biểu ngữ không xuất hiện lại trên mọi trang và các thẻ biết chúng được phép làm gì. Thứ hai, sau này bạn có thể cần chứng minh rằng lựa chọn đã được đưa ra, khách truy cập đã được hiển thị những gì và khi nào. Hai công việc này thường được xử lý bằng các cơ chế lưu trữ khác nhau, và nhầm lẫn chúng gây ra những vấn đề thực sự: biểu ngữ cứ xuất hiện lại, lựa chọn biến mất trên một số trình duyệt, hoặc không có bản ghi nào để đưa ra khi có người hỏi.
Bài so sánh này xem xét ba lựa chọn phổ biến — cookie bên thứ nhất, bộ nhớ trình duyệt như localStorage và bản ghi đồng ý phía máy chủ — và mỗi loại phù hợp ở đâu.
Lựa chọn 1: Cookie bên thứ nhất
Cookie là nơi lưu trữ truyền thống của trạng thái đồng ý. Các CMP TCF thường lưu chuỗi đồng ý trong một cookie bên thứ nhất, và nhiều CMP cũng lưu dữ liệu tùy chọn của riêng họ trong đó.
Điểm mạnh
- Máy chủ đọc được. Cookie được gửi kèm mỗi yêu cầu, nên mã phía máy chủ, logic biên và gắn thẻ phía máy chủ có thể đọc lựa chọn mà không cần chờ JavaScript.
- Chia sẻ được giữa các tên miền phụ. Một cookie đặt trên tên miền có thể đăng ký của bạn có thể bao phủ các tên miền phụ www, blog và shop.
- Được kỳ vọng rộng rãi. Nhiều tích hợp công nghệ quảng cáo tìm sự đồng ý trong cookie.
Điểm yếu
- Giới hạn kích thước. Trình duyệt giới hạn kích thước cookie ở khoảng 4 KB, và một chuỗi TCF có nhiều nhà cung cấp cộng với các giá trị khác có thể tiến gần giới hạn đó.
- Chi phí cho mỗi yêu cầu. Mọi yêu cầu đến tên miền của bạn đều mang theo cookie, kể cả các yêu cầu hình ảnh và tập lệnh.
- Giới hạn thời hạn ở một số trình duyệt. Intelligent Tracking Prevention của Safari giới hạn thời hạn tối đa của cookie được tạo qua JavaScript là bảy ngày. Cookie do máy chủ của chính bạn đặt trong phản hồi HTTP thường được đối xử rộng rãi hơn, dù có ngoại lệ.
Lựa chọn 2: localStorage và các bộ nhớ trình duyệt khác
Một số CMP lưu các tùy chọn chi tiết trong localStorage, đôi khi kèm một cookie nhỏ hơn.
Điểm mạnh
- Nhiều dung lượng hơn. Vài megabyte cho mỗi origin, đủ cho các lựa chọn chi tiết ở cấp nhà cung cấp.
- Không có chi phí cho mỗi yêu cầu. Không có gì được gửi tự động đến máy chủ.
Điểm yếu
- Máy chủ không nhìn thấy. Mã phía máy chủ và logic biên không đọc được nó, nên mọi quyết định phía máy chủ phải chờ trình duyệt.
- Gắn với một origin. Bộ nhớ trên www.example.com không dùng được trên shop.example.com, nên khách truy cập có thể thấy lại biểu ngữ trên mỗi tên miền phụ.
- Có thể bị xóa. Safari có thể xóa bộ nhớ mà tập lệnh có thể ghi, bao gồm localStorage, đối với các trang web mà người dùng không tương tác trong bảy ngày sử dụng trình duyệt, và các chế độ duyệt web riêng tư thường xóa nó khi phiên kết thúc.
Lựa chọn 3: Bản ghi đồng ý phía máy chủ
Bản ghi phía máy chủ là một mục do bạn hoặc nhà cung cấp CMP của bạn lưu mỗi khi có lựa chọn được đưa ra. Nó thường chứa một mã định danh ẩn danh hóa, dấu thời gian, các lựa chọn, phiên bản biểu ngữ hoặc chính sách đã hiển thị, và bối cảnh như khu vực.
Điểm mạnh
- Bằng chứng bền vững. Nó tồn tại qua việc xóa cookie và các hạn chế của trình duyệt, điều này khiến nó trở thành công cụ phù hợp để chứng minh rằng sự đồng ý đã được thu thập.
- Có thể kiểm toán. Bạn có thể báo cáo các lựa chọn theo thời gian và trả lời các câu hỏi về những sự kiện cụ thể.
- Tiềm năng trên nhiều thiết bị. Với độc giả đã đăng nhập, một bản ghi phía máy chủ có thể đồng bộ các lựa chọn giữa các thiết bị, nếu bạn giải thích điều này với họ.
Điểm yếu
- Không thay thế được trạng thái cục bộ. Các thẻ trong trình duyệt vẫn cần một tín hiệu cục bộ nhanh; gọi máy chủ ở mỗi lượt xem trang để tra cứu sự đồng ý làm tăng độ trễ.
- Bản thân nó là dữ liệu cá nhân. Các bản ghi cần thời hạn lưu giữ, kiểm soát truy cập và một vị trí trong thông báo quyền riêng tư của bạn.
- Phụ thuộc vào mã định danh. Khách truy cập ẩn danh chỉ có thể được khớp với một bản ghi thông qua mã định danh lưu trên thiết bị của họ, điều này đưa bạn quay lại bộ nhớ cục bộ.
Tóm tắt so sánh song song
- Tốt nhất để ghi nhớ lựa chọn trên web: cookie bên thứ nhất, lý tưởng là do máy chủ của bạn đặt với thời hạn ổn định.
- Tốt nhất cho dữ liệu tùy chọn chi tiết trong trình duyệt: localStorage, kết hợp với một cookie mà máy chủ đọc được.
- Tốt nhất để chứng minh lựa chọn: bản ghi phía máy chủ.
- Lựa chọn đơn lẻ tệ nhất: chỉ dựa vào localStorage, khiến máy chủ mù tịt và lựa chọn dễ bị mất trên một số trình duyệt.
Một cách tiếp cận kết hợp thực tế
- Lưu tín hiệu cục bộ có thẩm quyền — ví dụ chuỗi TCF và một bản ghi tùy chọn gọn — trong một cookie bên thứ nhất có phạm vi là tên miền có thể đăng ký của bạn.
- Chỉ dùng localStorage cho dữ liệu bổ sung không cần đến được máy chủ.
- Ghi một bản ghi phía máy chủ cho mỗi lựa chọn, bao gồm phiên bản biểu ngữ và chính sách đã hiển thị.
- Nếu một lựa chọn đã lưu biến mất, hãy hiển thị lại biểu ngữ thay vì giả định có câu trả lời trước đó.
- Đặt một chu kỳ hỏi lại cho các lựa chọn đã lưu và ghi nó vào chính sách của bạn.
Việc lưu chính lựa chọn đồng ý của khách truy cập thường được coi là cần thiết để cung cấp dịch vụ mà khách truy cập yêu cầu — ghi nhớ quyết định của họ — nhưng hãy kiểm tra hướng dẫn áp dụng tại các thị trường chính của bạn.
Những điểm chính cần nhớ
- Ghi nhớ một lựa chọn và chứng minh một lựa chọn là hai công việc khác nhau cần các cách lưu trữ khác nhau.
- Cookie đọc được bởi máy chủ và chia sẻ được giữa các tên miền phụ nhưng bị giới hạn kích thước và, trên Safari, thời hạn khi được đặt bằng tập lệnh.
- localStorage có nhiều dung lượng nhưng máy chủ không nhìn thấy và trình duyệt có thể xóa.
- Bản ghi phía máy chủ là tầng bằng chứng, không thay thế cho tín hiệu cục bộ.
- Kết hợp cookie bên thứ nhất do máy chủ đặt, bộ nhớ trình duyệt tùy chọn và các bản ghi của máy chủ.