اگه از مایکروسافت ادز استفاده می‌کنی، حالا مجبوری کانسنت مود مایکروسافت رو پیاده‌سازی کنی. اگه هنوز کانسنت مود مایکروسافت رو اجرا نکردی و تو مناطق اجباری هستی، احتمالاً کاهش کانورژن های کمپین‌ها رو متوجه شدی. پیاده‌سازی کانسنت مود باید ترکینگ کانورژن و اتریبیوشن رو دوباره فعال کنه.
این پست راهنمای گام‌به‌گامی برای پیاده‌سازی کانسنت مود مایکروسافت با استفاده از گوگل تگ منیجر یا جاوااسکریپت و یه روش برای تست و تأیید تنظیماتت به کمک دولوپر تولز مرورگر ارائه می‌ده.

#۱. کانسنت مود مایکروسافت چیه و چطور کار می‌کنه
مایکروسافت از اواخر سپتامبر ۲۰۲۴ اجرای کانسنت مودش رو تو منطقه اقتصادی اروپا، بریتانیا و سوئیس شروع کرد و اینو به بخشی ضروری از ترکینگ کانورژن تبدیل کرد. مثل کانسنت مود گوگل، مایکروسافت هم یه حالت کانسنت پیش‌فرض ست می‌کنه و باید وقتی کاربر کانسنت داد توی اون کانسنت مود به‌روزرسانی بشه.
این تغییر از مایکروسافت بخشی از یه تغییر بزرگ‌تر صنعت به سمت رعایت مقررات مختلف حریم خصوصی هست. پلتفرم‌های تبلیغات دیجیتال حالا موظفن به کاربرها کنترل بیشتری روی استفاده از داده‌هاشون بدن. کانسنت مود یه راه‌حل فنیه که به تبلیغ‌کننده‌ها اجازه می‌ده (تا حدی) به انتخاب‌های کاربر(در مورد استفاده از داده هاش برای مارکتینگ و تبلیغات) احترام بزارن، در حالی که مسیری برای اندازه‌گیری و مدل‌سازی کانورژن هم فراهم میشه.

تفاوت کلیدی با رویکرد گوگل اینه که مایکروسافت فقط از یه پارامتر، ad_storage، استفاده می‌کنه که می‌تونه به granted یا denied تنظیم بشه. وقتی ایونتی فرستاده می‌شه، پارامتر asc بهش اضافه می‌شه که وضعیت کانسنت کاربر رو نشون می‌ده:
- مقدار G برای granted  
- مقدار D برای denied  
اگه پارامتر ad_storage آشنا به نظر میاد، به این دلیله که همون پارامتریه که تو کانسنت مود گوگل برای کنترل ذخیره‌سازی داده های کاربر برای تبلیغات استفاده می‌شه. این هم‌راستایی بین پلتفرم‌های اصلی پیشرفت مثبتی برای بازاریاب‌هاست. یعنی سیگنال‌های کانسنتی که از پلتفرم مدیریت کانسنت (CMP) جمع‌آوری می‌کنی، رو می‌تونی برای کنترل تگ‌های گوگل و مایکروسافت به‌صورت استاندارد تو گوگل تگ منیجر استفاده کنی و ستاپ کانسنتت رو ساده‌تر کنی.
مشابه کانسنت مود گوگل می‌تونی بین پیاده‌سازی پایه یا پیشرفته یکی رو انتخاب کنی، .
- **پایه**: داده ها فقط بعد از دادن کانسنت به مایکروسافت فرستاده می‌شه (ولی اونوقت با پارامترهای جدید).
- **پیشرفته**: داده بدون کانسنت به مایکروسافت فرستاده می‌شه، ولی Click ID ذخیره یا فرستاده نمی‌شه. اگه بعداً کانسنت داده بشه Click ID (اگه تو URL باشه) در کنار حالت کانسنت به‌روزرسانی‌شده ذخیره و فرستاده می‌شه

نکات مهم 
شاید فرض کنی اگه بیزینست خارج از منطقه اقتصادی اروپا، بریتانیا یا سوئیس باشه، نیازی به پیاده‌سازی کانسنت مود مایکروسافت نداری. ولی با مواردی روبه‌رو شدم که داده‌های کانورژن حتی تو مناطق دیگه هم به صفر رسیده.
این نشون می‌ده که فارغ از محل بیزنس شما پیاده‌سازی کانسنت مود ضروریه، تفاوت اصلی اینه که باید حالت‌های پیش‌فرض و به‌روزرسانی‌شده کانسنت رو با مقررات و رویه‌های قانونی کشورت هماهنگ کنی.

کانسنت مود پیشرفته مایکروسافت
بیایم دقیق‌تر به کانسنت مود پیشرفته‌ نگاه کنیم. مستندات زیادی (یا هیچی) در این مورد نیست، ولی می‌خوام تست‌هام رو با شما به اشتراک بزارم.
وقتی بدون دادن کانسنت به وب‌سایت سر می‌زنی، کانسنت مود پیشرفته درخواست‌های بدون کانسنت رو با پارامتر asc تنظیم‌شده روی D (denied) می‌فرسته:

می‌تونی msclkid (مخفف مایکروسافت کلیک آیدی) رو تو URL ببینی، ولی به‌عنوان پارامتر به درخواست اضافه نمی‌شه. همچنین کوکی خاصی با اسم _uetmsclkid و شامل آیدی کلیک هم ذخیره نمی‌شه:

وقتی من بعنوان کاربر ست شدن کوکی‌ها رو قبول می‌کنم (با این وجود که آیدی کلیک هنوز تو URL موجوده)، یه دستور به‌روزرسانی همراه با آیدی کلیک فرستاده می‌شه:

بعد یه کوکی ذخیره می‌شه و آیدی برای همه ایونت‌های بعدی در دسترس قرار میگیره:

ولی اگه  تو صفحه اول قبول نکنیم کوکی‌ ست بشه (یا بنر رو نادیده بگیریم) و تو صفحه دوم ست شدن کوکی‌ها رو قبول کنیم، آیدی کلیک به N تنظیم می‌شه، چون اون آیدی دیگه تو URL در دسترس نیست:

و دوباره، هیچ کوکی‌ ست نمیشه:

این باعث می‌شه به این نتیجه برسم که کانسنت مود پیشرفته فقط وقتی کار می‌کنه که یه مکانیزم انتقال URL برای انتقال آیدی کلیک بین صفحه‌ها مثل گوگل داشته باشی. ولی به نظر می‌رسه مایکروسافت همچین چیزی نداره (حداقل فعلا).

کدوم ستاپ کانسنت مود رو انتخاب کنم؟
سوای نگرانی‌های قانونی و حریم خصوصی، سخت می‌تونم واسه انتخاب کانسنت مود پیشرفته ارزش بیشتری قاءل بشم، با توجه به نبود مستندات و نحوه کارش. تنها سناریویی که می‌تونم برای توجزه اجرای کانسنت مود پیشرفته ببینم اینه که اگه خیلی از کاربرها با بنر کانسنت تو صفحه اول سشن شون تعامل نکنن و انتخابی نداشته باشن. ولی حتی اون موقع هم باید مکانیزم انتقال URL خاص خودت رو پیاده‌سازی کنی.

 #۲. دیباگ با دولوپر تولز مرورگر
اول بهت نشون می‌دم داده‌ها تو دولوپر تولز چطور به نظر می‌رسن و بعد تنظیمات واقعی تو گوگل تگ منیجر رو توضیح می‌دم. من از مرورگر گوگل کروم استفاده می‌کنم، ولی مرورگرهای دیگه هم به شیوه مشابهی کار می‌کنن.

چک کردن ریکوست های شبکه
می‌تونی از ریکوست های تب شبکه مرورگر برای دیدن ریکوست فرستاده‌شده به سرورهای مایکروسافت ادز استفاده کنی.
برای باز کردن دولوپر تولز تو هر وب‌سایتی، از کلیدهای میان‌بر (F12 تو ویندوز یا Option + ⌘ + I تو مک) استفاده کن یا سه نقطه عمودی تو گوشه بالا-راست پنجره گوگل کرومت رو بزن، بعد به More tools > Developer tools برو.

به تب Network برو.

حالا صفحه رو رفرش کن و همه ریکوست های شبکه‌ای که مرورگرت ایجاد کرده رو می‌بینی:

اینجا جاییه که تنظیماتمون رو دیباگ می‌کنیم.

چک کردن وضعیت کانسنت از طریق تب کنسول
علاوه بر چک کردن ریکوست های شبکه، می‌تونی وضعیت‌ کانسنت رو از اسکریپت UET تو تب کنسول بگیری.
تب کنسول هم توی دولوپر تولز هست:

این کد رو تو کنسول پیست کن: js-consent.txt

console.table(uetq.uetConfig.consent)
این کد وضعیت کانسنت رو تو کنسول در قالب یه جدول نشون می‌ده:

اینجا می‌تونی ببینی کانسنت مود فعاله و  granted هست یا denied.

#۳. چطور کانسنت مود مایکروسافت رو تو گوگل تگ منیجر ست کنیم
ستاپ کانسنت مود مایکروسافت بستگی به روش مدیریت کانسنتت داره. دو روش این پایین آوردم که باید اکثر موارد رو پوشش بده.
مهم اینه که یادت باشه گوگل تگ منیجر بنر کانسنتی که بازدیدکننده‌ها تو وب‌سایتت می‌بینن رو مدیریت نمی‌کنه. اون بنر توسط یه پلتفرم مدیریت کانسنت (CMP) مثل Cookiebot، OneTrust یا CookieYes کنترل می‌شه. کار CMP ثبت انتخاب بازدیدکننده‌ست. کار ما تو GTM "گوش دادن" به اون انتخاب و بعد گفتن این مورد به تگ‌های بازاریابی مثل تگ UET مایکروسافت که چطور بر اساس انتخاب کانسنت رفتار کنن.

غیرفعال کردن تنظیمات کانسنت تو تگ مایکروسافت ادز
اگه از قالب ایونت ترکینگ یونیورسال مایکروسافت اد استفاده می‌کنی، یه چک‌باکس به‌طور پیش‌فرض فعاله که برای به‌روزرسانی‌های کانسنت گوش می‌ده:

این تیک  رو بردار تا به‌روزرسانی‌های کانسنت رو دستی مدیریت کنی. چک‌باکس رو بردار تا تگ این شکلی بشه:

 استفاده از قالب تگ کانسنت مود گوگل(دولوپ شده توسط سیمو اهاوا)
اول باید چک کنی که از کانسنت مود گوگل استفاده می‌کنی و آیا با تمپلیت تگ سیمو اهاوا مدیریتش می‌کنی یا نه. اگه این‌طوره، باید این دو تگ رو تو کانتینرت داشته باشی:

اگه از اون قالب استفاده نمی‌کنی، روش دوم پیاده‌سازی برات مناسبه.
خوشبختانه، سیمو اهاوا کانسنت مود مایکروسافت رو تو تمپلیت تگ کانسنت مود گوگلش ادغام کرده. نکته مهم اینجاست که تمپلیت سیموآهاوا با ست کردن حالت کانسنت پیش‌فرض قبل از لود شدن تگ UET کار می‌کنه، که با توضیحات مستندات مایکروسافت فرق داره. ولی به‌خوبی کار می‌کنه.
بیایم به دو حالت کانسنت مود (پیشرفته و پایه) نگاهی بندازیم .

کانسنت مود پیشرفته – تنظیم حالت پیش‌فرض
تگ کانسنت پیش‌فرضت رو باز کن و چک‌باکس "Enable Microsoft Consent Mode" رو بزن:

پایین برو و مطمئن شو پارامتر ad_storage روی مقدار دلخواهت تنظیم شده. می‌خوام از وریبل خاصی استفاده کنم که بر اساس کانسنت "granted" یا "denied" برگردونه:

تو ستاپ من، یه وریبل dataLayer هست که "cookiehub_marketing" رو می‌خونه، ولی تو ستاپ تو ممکنه ایونت متفاوتی رو داشته باشیم (بسته به CMP). این وریبل به این شکله:

اگه وریبل شما هم مثل مورد من "true" یا "false" برگردونه، باید اینا رو به "granted" و "denied" تبدیل کنی و پیش‌فرض روی "denied" باشه.
یه تریگر بساز که  روی "Consent Initialization – All Pages" فایر بشه:

 ستاپ دیفالت رو ساختیم. قدم مهم اینه که مطمئن شی تگ UET  قبل از دادن کانسنت بیاد، مثلاً تو "Initialization – All Pages"، فایر بشه:

 آپدیت کانسنت: وقتی کانسنت داده شد
تگ آپدیت کانسنتت رو باز کن و چک‌باکس "Enable Microsoft Consent Mode" رو بزن:

پایین برو و مقدار ad_storage رو ست کن. می‌خوام همون دیتالیر وریبل قبلی رو اینجا هم استفاده کنم:

این حالت‌های "پیش‌فرض" و "آپدیت" کانسنت رو مشخص می‌کنه و مطمئن می‌شه وقتی قبلاً کانسنتی داده شده، حالت پیش‌فرض معادل "granted" بشه و برای هر صفحه‌ای که کاربر بعد از دادن کانسنت می‌ره این وضعیت باقی بمونه.

 تست ستاپ
حالا وقت تست کردن رسیده. دکمه پریویو رو بزن:

بذار وب‌سایت تو حالت پریویو باز بشه و تب Network رو تو دولوپر تولز باز کن:

صفحه رو رفرش کن و تو فیلد فیلتر "bing" رو جستجو کن:

اگه هنوز کانسنتی ندادی، تگ UET لود می‌شه و حالت کانسنت پیش‌فرض روی "Denied" ست می‌شه. باید حداقل این ۴ درخواست رو ببینی:
تو ستاپ من (و احتمالاً واسه تو هم)، پنج تا ریکوست می‌بینی. مایکروسافت داره به‌تدریج حالت کانسنت پیش‌فرض "Denied" رو برای بازدیدکننده‌های منطقه اقتصادی اروپا، بریتانیا و سوئیس اجباری می‌کنه. این یعنی ممکنه یه ریکوست دیگه این‌جوری هم ببینی:
اگه اینو ندیدی، اشکالی نداره،فقط حواست باشه که یه ریکوست پیش‌فرض باید حتما باشه.
مهم‌ترین نکته اینه که پارامتر asc داخل هر ریکوست ارسالی به مایکروسافت (درخواست‌های 0?ti=…) باشه. روی یکی از ریکوست ها کلیک کن، پارامتر asc رو پیدا می‌کنی که باید معادل D باشه:

حالا ست شدن کوکی‌هات رو قبول کن، یه درخواست آپدیت باید همراه مقدار G برای پارامتر asc فرستاده بشه:

وقتی حالا به صفحه جدیدی می‌ری، ایونت pageLoadت (و هر ایونت دیگه‌ای که پیاده‌سازی کردی) همون پارامتر رو باید داشته باشه :

وقتی توتب کنسول این کد رو زدی console.table(uetq.uetConfig.consent)

و جدول رو تو کنسول چک کردی، باید این مقادیر رو برگردونه:

مهم‌ترین‌ پارامترها enabled و adStorageAllowed هستن که مقادیرشون باید true باشن.

کانسنت مود پایه – تنظیم پیش‌فرض
چند راه برای پیاده‌سازی کانسنت مود پایه هست. مهم اینه که فقط وقتی کانسنت داده می‌شه با پارامترهای آپدیت شده تگ مایکروسافت ادز رو فعال کنیم. بهت روش ترجیحی خودم  رو نشون میدم.
با فرض اینکه کانسنتت قبلاً تو GTM پیاده‌سازی شده، اول باید یه حالت پیش‌فرض -مثل کانسنت مود پیشرفته -تنظیم کنیم.
تگ کانسنت پیش‌فرضت رو باز کن و چک‌باکس "Enable Microsoft Consent Mode" رو بزن:


پایین برو و مطمئن شو حالت ad_storage براساس ولیوی دلخواهت تنظیم شده. می‌خوام همون وریبل dataLayer رو که تو ستاپ پیشرفته استفاده کردم، اینجا هم استفاده کنم:

تریگر برای این تگ باید روی "Consent Initialization – All Pages" تنظیم بشه:

 آپدیت کانسنت توسط کاربر و فعال کردن تگ مایکروسافت
تگ به‌روزرسانی کانسنتت رو باز کن و چک‌باکس "Enable Microsoft Consent Mode" رو بزن:

پایین برو و مقدار پارامتر ad_storage رو ست کن. می‌خوام از همون دیتالیر وریبل قبلی در اینجا استفاده کنم:

بعد، می‌خوام یه ایونت دیتالیری رو فعال کنم:

وقتی کانسنت آپدیت می‌شه یه ایونت رو تو dataLayer  پوش می‌کنه. می‌تونیم این ایونت رو به‌عنوان تریگر برای تگ مایکروسافتمون استفاده کنیم. تو این سناریو دیتالیرپوش این‌جوریه:
برای استفاده از این دیتالیر پوش، اول باید تو Triggers > New یه تریگر جدید بسازی:


"Custom Event" رو انتخاب کن:

و فیلد نام ایونت رو به صورت "gtm_consent_update" ست کن.

ذخیره رو بزن.

حالا از این تریگر  به‌عنوان تریگر تو تگ مایکروسافت ادزت اضافه کن و شرایط کانسنت رو فقط برای پارامتر ad_storage تنظیم کن:

تگ رو ذخیره کن تا آماده تست بشیم.

تست ستاپ
دکمه پریویو رو بزن.

تگ کانسنت پیش‌فرض باید اول فعال بشه:

تو این حالت کانسنت مود مایکروسافت روی True هست و کانسنت ردشده:

تگ آپدیت هم باید با به‌روزرسانی کانسنت این‌جوری فعال بشه:

با این تنظیمات:

در نهایت، تگ مایکروسافتت باید با پوش شدن ایونت gtm_consent_update فعال بشه:

وقتی این اتفاق افتاد، تب Network رو تو وب‌سایتت باز کن:

وب‌سایت رو رفرش کن و "bing" رو جستجو کن:

ایونت pageLoad رو باز کن. پارامتر asc باید G باشه:

و با زدن این کد توی تب کنسول: console.table(uetq.uetConfig.consent) 

جدول تو کنسول باید چیزی مثل این برگردونه:

مهم‌ترین‌ پارامترها enabled و adStorageAllowed هستن که باید true باشن.

 #۴. استفاده از تمپلیت تگ کانسنت مود مایکروسافت جایگزین
اگه از تمپلیت سیمو آهاوا استفاده نمی‌کنی یا اصلاً از کانسنت مود گوگل استفاده نمی‌کنی و به کانسنت مود مایکروسافت تو GTM نیاز داری، یه تمپلیت تگ جایگزین اینجا آوردم که سوئیچ کردن بین تنظیمات پایه و پیشرفته رو ساده می‌کنه، پس تنظیم پیشرفته ش رو نشون می‌دم و اینکه چطور باید سوئیچ کنی.

تگ مایکروسافت ادز
برای بهترین استفاده از این روش، باید دستور پیش‌فرض رو به‌عنوان تگ کلیناپ (cleanup tag) برای تگ مایکروسافت ادزت اضافه کنی. تگ مایکروسافت ادز باید با ایونت دیتالیرپوشی رضایت کوکی فایر بشه. تو مورد من، اون تریگر  این‌جوری باید به نظر می‌رسه:

و تگ مایکروسافت ادزم رو روی "Once per page" ست کردم. می‌تونی این رو تو تنظیمات پیشرفته تگت انجام بدی:

و بعد زیر  Tag firing options این طور ست میکنیم:

مطمئن شو تنظیمات تگت همین طور باشه و با آپدیت شدن کوکی کانسنت تریگر می‌شه. این بسته به CMPت فرق داره.

اضافه کردن تگ پیش‌فرض
اول باید تمپلیت تگ رو از گالری تمپلیت های کامیونیتی بگیری.
یه تگ جدید بساز و روی گالری کلیک کن:

"Microsoft UET Consent Mode" رو جستجو کن و تمپلیت mbaersch رو انتخاب کن:

"Choose template" رو بزن:

این تمپلیت یه تگ جدید رو باز می‌کنه:

اینجا می‌تونی حالت کانسنت پیش‌فرض رو تنظیم کنی و مدت‌زمان به‌میلی‌ثانیه اضافه کنی تا تگ‌های UET منتظر دستور "Update" باشن. براساس تجربه‌ام بهترین کار اینه که مدت‌زمان بیشتر از ۲۰۰۰ میلی‌ثانیه نباشه و یه وریبل بذاریم که تو دستور پیش‌فرضش "granted" یا "denied" رو برگردونه، این‌جوری:

این تگ ریکوست ها به مایکروسافت رو ۲ ثانیه به تعویق می‌ندازه تا  اجازه آپدیت کانسنت رو بده و وقتی آپدیتی دریافت شد، ریکوست ها رو می‌فرسته. اگه نیاز بود زمان رو خودت تنظیم کن، ولی یادت باشه مدت طولانی‌تر ریسک نفرستادن ایونت ها قبل از پیمایش کاربر رو بهمراه داره.

وریبل مربوط به ad_storage یه دیتالیر وریبل هست که "cookiehub_marketing" رو می‌خونه. در مورد شما می‌تونه ایونت دیتالیری متفاوتی رو (بسته به CMP) داشته باشیم:

اگه وریبل شما مثل من "true" یا "false" برگردونه، باید اینا رو به "granted" و "denied" تبدیل کنی و پیش‌فرض رو "denied" بذاری. آخرین گزینه اینه که این تگ  هم به صورت "Once per page" باید فایر بشه:

این چک‌باکس‌ها رو هم داری:

اگه از TCF استفاده می‌کنی، می‌تونی اون چک‌باکس رو فعال کنی. اگه از کلاریتی مایکروسافت استفاده می‌کنی و می‌خوای این تگ بیاد و مدیریت کانسنت کلاریتی رو بر عهده بگیره، اون چک‌باکس رو فعال کن. یادت باشه این نیاز به تنظیمات بیشتر تو کلاریتی داره که تو این پست وبلاگی واردش نمی‌شم.
آخرین چک‌باکس(دیتالیرپوش) رو هم می‌تونی بزن اگه بخوای تگت یه ایونت رو به دیتالیر, پوش کنه. این یه ایونت uet_consent_default رو پوش می‌کنه:

این گزینه رو بدون چک می‌ذارم.
این تگ رو بدون تریگر ذخیره کن و تگ مایکروسافت ادز رو باز کن. اینجا می‌تونی از این تگ بالایی  به‌عنوان تگ کلیناپ استفاده کنی که بعد از تگ مایکروسافت فعال بشه، این‌جوری:


توی این تمپلیت، یه کانسنت مود MS جدا داریم، پس می‌تونیم مستندات مایکروسافت رو دقیق‌تر دنبال کنیم.

 اضافه کردن تگ آپدیت
کنار تگ پیش‌فرض کانسنت، می‌تونی تگ "Update" هم اضافه کنی تا تغییرات کانسنت رو بفرسته. این ستاپ خیلی شبیهه. اول، یه تگ جدید Microsoft Consent Mode بساز. تمپلیت باید تو لیست تگ های کاستوم باشه:

کامند کانسنت رو به "update" تغییر بده و مقدارش رو تنظیم کن. می‌تونی یه مقدار ثابت "granted" بذاری یا از وریبلی استفاده کنی که وضعیت کانسنت رو داره (گزینه دوم رو پیشنهاد می‌کنم). تو مورد من، از وریبل cookiehub_marketing استفاده می‌کنم:

بقیه تنظیمات رو بدون چک می‌ذارم. حالا باید همون تریگر کوکی کانسنت رو اضافه کنیم:

اینو به‌عنوان تریگر اضافه می‌کنم. در آخر باید تگ و تریگرمون این‌جوری به نظر بیاد:

این تگ باید به‌جای "Once per page" روی "Once per event" فایر بشه. این گزینه پیش‌فرضه، ولی می‌تونی اینجا دوبار چکش کنی:

ذخیره ش کن.

 تست ستاپ
وقتی همه‌چیز ذخیره شد، دکمه پریویو رو بزن:

باید یه چیزی مثل این ببینی:

اگه قبلاً  ست کردن کوکی‌هات رو قبول کرده باشی، باید "granted" رو تو هر دو تگ پیش‌فرض و به‌روزرسانی ببینی:

ولی فرض کن یه کاربر جدید هستی، پس تگ پیش‌فرض روی "denied" می‌ره و بعد از مدتی کوکی‌هات رو قبول می‌کنی. باید مقدار پیش‌فرض "denied" رو تو تریگر اول cookie_consent_update ببینی:

و دستور آپدیت باید تو تریگر بعدی cookie_consent_update فعال بشه:

که باید مقدار "granted" داشته باشه:

برای چک دوباره همه‌چیز، می‌تونی ریکوست های تب نتورک رو نگاه کنی. تب Network رو تو وب‌سایتت باز کن:

وب‌سایت رو رفرش کن و "bing" رو جستجو کن:

روی یکی از ریکوست ها کلیک کن. پارامتر asc رو پیدا کن که باید معادل D باشه:

حالا ست شدن کوکی‌ها رو قبول کن، یه درخواست آپدیت همراه با مقدار G برای پارام asc فرستاده میشه:

وقتی حالا به صفحه جدید می‌ری، ایونت pageLoadت (و هر ایونت دیگه‌ای که پیاده‌سازی کردی) همون پارامتر رو باید داشته باشه:

وقتی این کد console.table(uetq.uetConfig.consent)

رو توی تب کنسول وارد میکنی جدول پایین رو تو کنسول باید برگردونه:

مهم‌ترین‌ پارام ها enabled و adStorageAllowed هستن که باید true باشن.

 سوئیچ کردن از حالت پیشرفته به پایه
اگه مراحل بالا رو دنبال کنی، کانسنت مود پیشرفته رو پیاده‌سازی کردی. اگه حالت پایه می‌خوای، فقط باید یه تریگر بلاک‌کننده به تگ مایکروسافت ادز اضافه کنی که بدون کانسنت فعال نشه. می‌تونی تگ به‌روزرسانی رو هم حذف کنی. این تریگر بلاک‌کننده‌ ای هست که من ست کردم:

این تریگر برای همه ایونت‌ها به کمک رجکس  "*."  فایر میشه البته وقتی وریبل  cookiehubمن شامل عبارت "granted" نباشه. اینو به‌عنوان تریگر بلاک‌کننده به تگ مایکروسافتم اضافه می‌کنم:

بعد از این، فقط ریکوست های شبکه دارای مقدار G برای پارامتر asc رو می‌بینی.

#۵. چطور کانسنت مود مایکروسافت رو دستی ست کنی(با JS)
بعضی وقت‌ها نمی‌تونی کانسنت مود رو با GTM پیاده‌سازی کنی و باید از جاوااسکریپت استفاده کنی. این می‌تونه به دلایل مختلفی لازم باشه، ولی مهم اینه که نیازی به هر دوی GTM و کد نداری. اگه قبلاً با GTM کانسنت مود رو پیاده‌سازی کردی، این ستاپ غیرضروریه.
با یه دولوپر مشورت کن تا پیاده‌سازی درست انجام بشه.

تنظیم حالت پیش‌فرض
اول باید حالت پیش‌فرض رو تنظیم کنی. باید این کد رو درست بعد از کد تگ UET تو <head> پیست کنی:js-consent-manual.txt

این کد باید تو هر صفحه تنظیم بشه. اگه نیاز بود، تایم اوت رو هم ست کن.


 آپدیت کانسنت بعد از دادن کانسنت
وقتی کاربر کانسنتش رو می‌ده، باید وضعیت کانسنتش با این کد به‌روزرسانی بشه: manual consent update.txt

زمان فعال کردن این کد بستگی به بنر کانسنتت داره. بهتره از دولوپرها بخوای این کد رو در زمان تغییر وضعیت  کوکی کانسنت فعال کنن.

گزینه اختیاری: ممانعت از  ارسال شدن ایونت‌ها توسط UET به کمک کوکی
اگه حالت پیش‌فرض رو پیاده‌سازی کردی و تگ UET قبل از دادن کانسنت فایر شده، ایونت‌ها به مایکروسافت فرستاده می‌شن. اگه نمی‌خوای این اتفاق بیفته ولی می‌خوای تگ UET لود بشه، می‌تونی یه کوکی به اسم _uetmsdns با مقدار ۱ ست کنی. این از فرستادن ایونت‌ها از طریق تگ UET به مایکروسافت جلوگیری می‌کنه. این یه کد نمونه برای ست کردن کوکیه:consent-set-cookie.txt
این کد یه کوکی رو ست می‌کنه که با پایان سشن حذف می‌شه. یادت باشه وقتی کاربر کانسنت داد، این کوکی باید حذف بشه.


تست ستاپ
 وقتشه ستاپ رو تست کنی. تب Network رو تو وب‌سایتت باز کن:

وب‌سایت رو رفرش کن و "bing" رو جستجو کن:

اگه هنوز کانسنتی ندادی، تگ UET لود می‌شه و حالت کانسنت پیش‌فرض رو "Denied" ست می‌شه. باید حداقل این ۴ درخواست رو ببینی:
تو مورد من پنج تا ریکوست وجود داشت. مایکروسافت داره به‌تدریج حالت کانسنت پیش‌فرض "Denied" رو برای بازدیدکننده‌های منطقه اقتصادی اروپا، بریتانیا و سوئیس اجبار می‌کنه. این یعنی ممکنه ریکوست این‌جوری هم ببینی:
"https://bat.bing.net/actionp/0?……&evt=consent&src=enforced…&asc=D"
اگه اینو ندیدی، اشکالی نداره تا زمانی که یه ریکوست پیش‌فرض وجود داشته باشه.
مهم‌ترین چیز اینه که پارامتر asc همراه هر ریکوست ارسال شده به مایکروسافت (درخواست‌های 0?ti=…) باشه. روی یکی از ریکوست ها کلیک کن، پارامتر asc رو پیدا می‌کنی که باید معادل D باشه:

حالا ست شدن کوکی‌هات رو قبول کن، یه درخواست آپدیت باید بهمراه مقدار G برای پارامتر asc فرستاده بشه:

وقتی حالا به صفحه جدید می‌ری، ایونت pageLoad (و هر ایونت دیگه‌ای که پیاده‌سازی کردی) همون پارامتر رو داره:

وقتی تو تب کنسول این کد رو وارد میکنی: console.table(uetq.uetConfig.consent)

این جدول رو باید این برگردونه:

نکات آخر
هنوز چیز زیادی درباره کانسنت مود مایکروسافت نمی‌دونیم و  مستندات زیادی درباره‌ش نیست. مثلاً چطور مایکروسافت با ریکوست های ردشده برخورد می‌کنه.
پیاده‌سازیش هم می‌تونه یه کم دردسر باشه، ولی امیدوارم این پست وبلاگی بهت کمک کنه راهت رو پیدا کنی. امیدوارم مایکروسافت تو آینده اطلاعات بیشتری درباره کانسنت مودش بده.