اعمال رضایت در تراکر
بنر رضایت فقط انتخاب را میگیرد؛ چیزی که آن انتخاب را اجرا میکند، خودِ تراکر `__sov` است. اینجا میبینید هر دسته کدام رفتار تراکر را باز میکند، چرا حالت پذیرش بسته شکست میخورد و چه چیزی روی هر ردیف رویداد مهر میشود.
دروازهها داخل خود تراکر هستند#
یک ابزار رضایت بیرونی فقط میتواند تگهای دیگر را قانع کند که رفتار کنند. ادپیکس خودش تگ است، پس رضایت را در مبدا اعمال میکند: پیش از هر بازدید صفحه، هر رویداد و هر کوکی، تراکر از خودش میپرسد این دسته الان اجازه دارد یا نه.
سه چیز به این تصمیم خوراک میدهند:
- بلوک رضایت روی پیکربندی تراکر — فقط سه عدد: روشن بودن ماژول، حالت پیشفرض و عدد بازنگری فعلی. این بلوک در مرورگر کش میشود تا حتی نخستین بازدید صفحه پیش از رسیدن پاسخ شبکه هم درست محدود شود.
- کوکی
cc_cookie— انتخاب خود بازدیدکننده: فهرست دستههای پذیرفتهشده و عدد بازنگری لحظه انتخاب. - مقایسه این دو — اگر عدد بازنگری کوکی از عدد فعلی کوچکتر باشد، انتخاب کهنه است و نادیده گرفته میشود.
اگر ماژول برای آن دارایی روشن نباشد، هیچکدام از اینها وجود ندارد و تراکر دقیقا مثل قبل رفتار میکند.
هر دسته چه چیزی را باز میکند#
مرور کلی دستهها و اینکه چرا چهارتاست، در دستههای رضایت آمده. جدول زیر همان را در سطح رفتار واقعی تراکر باز میکند.
| دسته | چه چیزی با آن باز میشود |
|---|---|
| ضروری | همیشه فعال. تراکر هیچ رفتاری را به آن مشروط نمیکند. |
| ترجیحات | ادپیکس چیزی به آن گره نزده است. برای کوکیهای خود سایت شماست. |
| آماری | بازدید صفحه، رویدادهای سفارشی، رویدادهای ایکامرس، شناسایی کاربر، شناسایی خودکار از فرمها، کوکی شناسه ناشناس و کوکی نشست، نقشه حرارتی. |
| مارکتینگ | کوکیهای اولین و آخرین برخورد (اتریبیوشن)، انتقال شناسه بین دامنهها با پارامتر _apx، باندل غنیسازی اثر انگشت. |
دو نکته که معمولا غافلگیر میکنند:
شناسایی کاربر زیر «آماری» است، نه «مارکتینگ». ورود و ثبتنام یک سیگنال فرستپارتی است که خود کاربر تایپ کرده و همان لایهای را دنبال میکند که بازدید صفحه دنبال میکند. اگر زیر مارکتینگ میرفت، هر ورودی از کسی که فقط آماری را پذیرفته بیصدا از دست میرفت.
«ترجیحات» عمدا خالی است. ادپیکس رفتاری به آن گره نزده، ولی همچنان به بازدیدکننده نشان داده میشود، در سند رضایت ثبت میشود و روی رویدادها مهر میخورد — تا اگر خودتان کوکی ترجیحات میگذارید، پاسخ بازدیدکننده درباره آن هم گرفته و کنار بقیه ثبت شود.
حالت پذیرش، بسته شکست میخورد#
وضعیت «حلنشده» یعنی هر حالتی که در آن انتخاب معتبری وجود ندارد: بنر هنوز بالا نیامده، بازدیدکننده هنوز چیزی نزده، کوکی انتخاب منقضی شده، یا عدد بازنگریاش کهنه است.
در حالت انصراف، حلنشده یعنی مجاز — تا لحظهای که بازدیدکننده رد کند، همه چیز اجرا میشود. در حالت پذیرش، حلنشده دقیقا مثل «رد کردن» رفتار میکند. این تصمیم عمدی است و در تراکر چند جای مشخص اعمال میشود:
- بدون رضایت آماری، هیچ شناسه ماندگاری ساخته یا نوشته نمیشود. تراکر نه کوکی
__sov_didرا مینویسد، نه کلید__sov_aidرا در حافظه محلی. اگر شناسهای از قبل روی مرورگر باشد فقط خوانده میشود؛ وگرنه یک شناسه موقت داخل حافظه همان صفحه ساخته میشود که هیچجا ذخیره نمیشود و با بستن صفحه میرود. - بدون رضایت آماری، باندل نقشه حرارتی اصلا بار نمیشود. ضبط شروع نمیشود، نه اینکه شروع شود و بعد دور ریخته شود.
- بدون رضایت مارکتینگ، کوکیهای اتریبیوشن نوشته نمیشوند و لینکهای بین دامنهای شناسه را با خود نمیبرند.
در نسخههای اولیه ماژول، شناسه ماندگار و نقشه حرارتی بدون بررسی رضایت آماری هم کار میکردند. یعنی بازدیدکنندهای که آماری را رد کرده بود، همچنان یک شناسه ماندگار میگرفت. حالا هر دو بستهاند. اگر تگ سایت شما نسخه بسیار قدیمی است، به نسخه فعلی بهروزش کنید.
انتخاب تازه فوری اثر میکند#
لحظهای که بازدیدکننده روی بنر تصمیم میگیرد، دو کار پشت سر هم انجام میشود.
اول، کوکیهای دستههای رد شده همانجا پاک میشوند: با رد «آماری» کوکی شناسه ناشناس و کوکی نشست حذف میشوند و کلید متناظر از حافظه محلی برداشته میشود؛ با رد «مارکتینگ» کوکیهای اولین و آخرین برخورد حذف میشوند.
دوم، بنر یک رویداد apx:consent روی صفحه پخش میکند و تراکر همانجا خودش را دوباره ارزیابی میکند. اگر انتخاب تازه آماری را باز کرده باشد، همان بازدید صفحه فورا فرستاده میشود؛ اگر مارکتینگ را باز کرده باشد، باندلهای مربوطه بار میشوند. بارگذاری دوباره صفحه لازم نیست.
و چون دروازهها بسته میمانند، هیچکدام از کوکیهای پاکشده دوباره ساخته نمیشوند.
بازدید صفحه برای هر نشانی فقط یک بار میرود. پس بازدیدکنندهای که چند ثانیه با بنر کلنجار رفته و بعد پذیرفته، یک بازدید صفحه ثبت میکند، نه دو تا.
هر رویداد دستههای خودش را حمل میکند#
تراکر همراه هر رویدادی که میفرستد، فهرست دستههای پذیرفتهشده در آن لحظه را هم میفرستد، و گیرنده همان فهرست را در فیلد consent_flags روی ردیف رویداد مینویسد.
- دستههای پذیرفتهشده نوشته میشوند.
- دستههای رد شده اصلا نوشته نمیشوند؛ نبودنشان همان معنای «پذیرفته نشده» را میدهد.
- وقتی ماژول خاموش است، این فیلد خالی میماند.
نتیجهاش این است که هر ردیف داده، رضایتی را که زیر آن جمع شده با خودش دارد. لازم نیست حدس بزنید تنظیمات آن روز چه بوده یا از تاریخچه تغییرات عقب بروید؛ روی خود سطر نوشته شده است.
سه نقطه سرویسی که پشت این ماجراست#
همهشان روی همان دامنه جمعآوریاند که تگ اندازهگیری از آن بار میشود — یعنی فرستپارتی، بدون درخواست به دامنه سوم.
| نقطه | کارش |
|---|---|
GET /consent.js |
باندل بنر. تراکر پایه فقط وقتی بارش میکند که ماژول برای آن دارایی روشن باشد. با کش ۳۰۰ ثانیه سرو میشود. |
GET /consent/config?site=<measurement id> |
پیکربندی کامل بنر: دستهها، تم، متنها، حالت، بازنگری و اثرانگشت پیکربندی. کلید ناشناخته یا ماژول خاموش، پاسخ {"enabled":false} میگیرد. کش ۶۰ ثانیه. |
POST /consent/record |
ثبت انتخاب بازدیدکننده بهعنوان سند. عمومی است و مثل مسیر جمعآوری سختگیرانه بسته شده: محدودیت نرخ به ازای هر IP، ثبت idempotent روی شناسه رضایت، و IP فقط بهصورت هش. |
بلوک سهعددی رضایت که تراکر پایه با آن خودش را محدود میکند، جدا درخواست نمیشود؛ روی همان پاسخ پیکربندی جریان میآید که تراکر در هر حال میگیرد، آن هم با کش ۶۰ ثانیه. برای همین است که تغییر حالت یا بالا بردن عدد بازنگری، ظرف حدود یک دقیقه به بازدیدکنندههای زنده میرسد.
POST /consent/record روی هر خطای غیرمرگبار — بدنه نامعتبر، کلید ناشناس، خطای نوشتن در پایگاه داده — پاسخ 200 برمیگرداند. انتخاب بازدیدکننده در همان لحظه روی مرورگر خودش نوشته شده و معتبر است؛ سند فقط اثبات آن برای شماست. اگر بنر از پشت یک تگ گیتوی سرو میشود، این مسیرها باید در فهرست مجاز پروکسی باشند وگرنه سند ثبت نمیشود.
وقتی ماژول خاموش است#
پیشفرض هر دارایی تازه، خاموش است. در این حالت هیچ بنری بار نمیشود، هیچ دروازهای اعمال نمیشود و هیچ دستهای روی رویدادها مهر نمیخورد — تراکر دقیقا همان چیزی است که پیش از این ماژول بود.
روشن کردن و ساختن بنر در راهاندازی بنر رضایت آمده است. اگر بعد از روشن کردن، عددهایتان افت کرد و مطمئن نیستید تقصیر رضایت است یا نه، رضایت جلوی داده را گرفته است را ببینید.
پرسشهای پرتکرار#
اگر بازدیدکننده «آماری» را رد کند، شناسهاش نوشته میشود؟
خیر. تراکر نه کوکی شناسه مینویسد و نه چیزی در حافظه محلی. اگر شناسهای از قبل روی مرورگر مانده باشد فقط خوانده میشود، وگرنه یک شناسه موقت درون حافظه همان صفحه ساخته میشود که با بستن صفحه از بین میرود.
بعد از پذیرش، بازدید صفحه از دست میرود؟
خیر. بنر پس از ذخیره انتخاب، رویدادی روی صفحه پخش میکند و تراکر همانجا خودش را دوباره ارزیابی میکند و بازدید صفحه را میفرستد. بارگذاری دوباره صفحه لازم نیست.
چطور بفهمم یک رویداد با چه رضایتی جمع شده؟
هر ردیف رویداد یک فیلد consent_flags دارد که فهرست دستههای پذیرفتهشده در همان لحظه است. دستههای رد شده اصلا نوشته نمیشوند؛ نبودنشان یعنی پذیرفته نشده.
نقشه حرارتی هم زیر رضایت است؟
بله، زیر «آماری». بدون رضایت آماری باندل نقشه حرارتی اصلا بار نمیشود و هیچ ضبطی شروع نمیشود — نه اینکه ضبط شود و بعد دور ریخته شود.
ممنون — بازخورد شما به بهتر شدن مستندات کمک میکند.