رضایت را کجا ذخیره کنیم: مقایسه کوکیها، localStorage و رکوردهای سمت سرور
دو کار متفاوت
وقتی بازدیدکنندهای انتخاب رضایت میکند، دو چیز جداگانه باید رخ دهد. اول، مرورگر باید انتخاب را به خاطر بسپارد تا بنر در هر صفحه دوباره ظاهر نشود و تگها بدانند چه کاری مجازند. دوم، ممکن است بعداً لازم شود اثبات کنید که انتخاب انجام شده، چه چیزی به بازدیدکننده نشان داده شده و چه زمانی. این دو کار اغلب با سازوکارهای ذخیرهسازی متفاوت انجام میشوند و خلط آنها مشکلات واقعی میسازد: بنرهایی که مدام دوباره ظاهر میشوند، انتخابهایی که در برخی مرورگرها ناپدید میشوند، یا نبودن هیچ رکوردی برای نشان دادن وقتی کسی میپرسد.
این مقایسه سه گزینه رایج — کوکیهای اولیه (first-party)، ذخیرهسازی مرورگر مانند localStorage و رکوردهای رضایت سمت سرور — و جای مناسب هر کدام را بررسی میکند.
گزینه ۱: کوکیهای first-party
کوکیها خانه سنتی وضعیت رضایتاند. CMPهای TCF معمولاً رشته رضایت را در یک کوکی first-party ذخیره میکنند و بسیاری از CMPها دادههای ترجیحات خودشان را هم در یکی میگذارند.
نقاط قوت
- قابل خواندن توسط سرور. کوکی با هر درخواست فرستاده میشود، پس کد سمت سرور، منطق لبه و تگگذاری سمت سرور میتوانند بدون انتظار برای JavaScript انتخاب را بخوانند.
- قابل اشتراک بین زیردامنهها. کوکیای که روی دامنه ثبتشده شما تنظیم شود میتواند زیردامنههای www، blog و shop را پوشش دهد.
- بهطور گسترده مورد انتظار. بسیاری از یکپارچگیهای ad tech رضایت را در کوکیها جستوجو میکنند.
نقاط ضعف
- محدودیت اندازه. مرورگرها اندازه کوکی را حدود ۴ KB محدود میکنند و یک رشته TCF با فروشندگان زیاد بهعلاوه مقادیر دیگر میتواند به آن نزدیک شود.
- سربار درخواست. هر درخواست به دامنه شما کوکی را حمل میکند، از جمله درخواستهای تصویر و اسکریپت.
- سقف عمر در برخی مرورگرها. Intelligent Tracking Prevention در Safari کوکیهای ساختهشده با JavaScript را به حداکثر عمر هفت روز محدود میکند. کوکیهایی که سرور خودتان در پاسخ HTTP تنظیم میکند عموماً سخاوتمندانهتر برخورد میشوند، هرچند استثناهایی هست.
گزینه ۲: localStorage و سایر ذخیرهسازیهای مرورگر
برخی CMPها ترجیحات تفصیلی را در localStorage ذخیره میکنند، گاهی در کنار یک کوکی کوچکتر.
نقاط قوت
- فضای بیشتر. چند مگابایت برای هر origin، کافی برای انتخابهای تفصیلی در سطح فروشنده.
- بدون سربار درخواست. چیزی بهطور خودکار به سرور فرستاده نمیشود.
نقاط ضعف
- نامرئی برای سرور. کد سمت سرور و منطق لبه نمیتوانند آن را بخوانند، پس هر تصمیم سمت سرور باید منتظر مرورگر بماند.
- وابسته به یک origin. ذخیرهسازی روی www.example.com روی shop.example.com در دسترس نیست، پس ممکن است بازدیدکننده در هر زیردامنه دوباره بنر را ببیند.
- در معرض حذف. Safari میتواند ذخیرهسازی قابلنوشتن با اسکریپت، از جمله localStorage، را برای سایتهایی که کاربر هفت روز استفاده از مرورگر با آنها تعامل نداشته حذف کند، و حالتهای مرور خصوصی معمولاً با پایان نشست آن را پاک میکنند.
گزینه ۳: رکوردهای رضایت سمت سرور
رکورد سمت سرور ورودیای است که شما یا ارائهدهنده CMP هر بار که انتخابی انجام میشود ذخیره میکنید. معمولاً شامل یک شناسه مستعار، مهر زمانی، انتخابها، نسخه بنر یا سیاست نمایشدادهشده و زمینهای مانند منطقه است.
نقاط قوت
- شواهد پایدار. از پاک شدن کوکیها و محدودیتهای مرورگر جان به در میبرد، که آن را ابزار مناسب برای نشان دادن اخذ رضایت میکند.
- قابل ممیزی. میتوانید درباره انتخابها در طول زمان گزارش بگیرید و به پرسشهایی درباره رویدادهای مشخص پاسخ دهید.
- پتانسیل چنددستگاهی. برای خوانندگان واردشده، رکورد سرور میتواند انتخابها را بین دستگاهها همگام کند، به شرط اینکه این را برایشان توضیح دهید.
نقاط ضعف
- جایگزین وضعیت محلی نیست. تگها در مرورگر هنوز به سیگنال سریع و محلی نیاز دارند؛ فراخوانی سرور در هر نمایش صفحه برای جستوجوی رضایت تأخیر اضافه میکند.
- خودش داده شخصی است. رکوردها به دوره نگهداری، کنترل دسترسی و جایی در اعلامیه حریم خصوصی نیاز دارند.
- وابستگی به شناسه. بازدیدکنندگان ناشناس فقط از طریق شناسهای که روی دستگاهشان ذخیره شده به رکورد تطبیق داده میشوند، که شما را به ذخیرهسازی محلی برمیگرداند.
خلاصه کنار هم
- بهترین برای بهخاطر سپردن انتخاب در وب: کوکیهای first-party، ترجیحاً تنظیمشده توسط سرور شما با عمر پایدار.
- بهترین برای دادههای ترجیحات تفصیلی در مرورگر: localStorage، همراه با کوکیای که سرور بتواند بخواند.
- بهترین برای اثبات انتخاب: رکوردهای سمت سرور.
- بدترین انتخاب تکگزینهای: تکیه فقط بر localStorage، که سرور را کور میگذارد و انتخاب را در برخی مرورگرها شکننده میکند.
یک رویکرد ترکیبی عملی
- سیگنال محلی مرجع — برای مثال رشته TCF و یک رکورد فشرده ترجیحات — را در کوکی first-party با دامنه ثبتشده خود ذخیره کنید.
- localStorage را فقط برای دادههای تکمیلی که لازم نیست به سرور برسد به کار ببرید.
- برای هر انتخاب یک رکورد سمت سرور بنویسید که نسخه بنر و سیاست نمایشدادهشده را شامل شود.
- اگر انتخاب ذخیرهشده ناپدید شد، بهجای فرض یک پاسخ قبلی دوباره بنر را نشان دهید.
- برای انتخابهای ذخیرهشده دوره پرسش مجدد تعیین کنید و آن را در سیاست خود ثبت کنید.
ذخیره خود انتخاب رضایت بازدیدکننده عموماً برای ارائه خدمتی که بازدیدکننده خواسته — بهخاطر سپردن تصمیمش — ضروری تلقی میشود، اما راهنماییهای قابلاعمال در بازارهای اصلی خود را بررسی کنید.
نکات کلیدی
- بهخاطر سپردن انتخاب و اثبات آن دو کار متفاوتاند که ذخیرهسازی متفاوتی میخواهند.
- کوکیها برای سرور قابلخواندن و بین زیردامنهها قابلاشتراکاند اما از نظر اندازه محدودند و در Safari وقتی با اسکریپت تنظیم شوند از نظر عمر هم محدودند.
- localStorage فضا میدهد اما برای سرور نامرئی است و مرورگرها میتوانند آن را پاک کنند.
- رکوردهای سمت سرور لایه شواهدند، نه جایگزین سیگنال محلی.
- کوکی first-party تنظیمشده توسط سرور، ذخیرهسازی اختیاری مرورگر و رکوردهای سرور را ترکیب کنید.