رویکرد سینی به تغییرات کوکی شخص ثالث

Tray یک ارائه‌دهنده سیستم مدیریت محتوای تجارت الکترونیک (CMS) با بیش از 20 سال تجربه در ارائه خدمات به بازار خرده‌فروشی برزیل است. بازرگانان فروشگاه‌های آنلاین را بر روی زیرساخت Tray's اجرا می‌کنند، که همچنین خدمات و ادغام‌هایی را برای مدیریت تدارکات تجاری، پرداخت‌ها، تبلیغات و گزارش‌دهی ارائه می‌دهد.

Tray یکی از اعضای گروه LWSA است و یک نیروی محرکه در بخش تجارت الکترونیک است. بیش از 180000 مشتری به Tray اعتماد دارند که در مجموع بیش از 3 میلیارد دلار GMV در سه ماهه اول سال 2024 تولید کردند.

صفحه اصلی وب سایت tray.com.br

اتکا به کوکی های شخص ثالث

معماری فنی Tray's کوکی‌های شخص ثالث (3PC) برای ارائه عملکردهای شخص ثالث به سایت‌های تاجر، به‌ویژه برای پنل مدیریت Backoffice تاجر که برای مدیریت فروشگاه استفاده می‌شود، استفاده می‌کند. این کوکی‌ها برای ارائه محتوای ارائه‌شده از برنامه‌های شخص ثالث که در دامنه‌هایی غیر از دامنه تاجر میزبانی می‌شوند، ضروری هستند. تحقیقات Tray's نشان داد که تغییرات برنامه ریزی شده در نحوه کار مرورگرها با 3PC می تواند به طور بالقوه این قابلیت را مختل کند. از آنجایی که Tray به عنوان زیرساخت حیاتی برای بسیاری از خرده‌فروش‌های آنلاین عمل می‌کند، ضروری است که کسب‌وکار طبق معمول ادامه یابد - حتی در حالی که تغییرات عمده‌ای در نحوه مدیریت Chrome و سایر مرورگرها با 3PC انجام می‌شود.

این مطالعه موردی به کشف اختلالات احتمالی Tray's ، ارزیابی راه‌حل‌های بالقوه و راه‌حل موفقیت‌آمیز ارائه شده برای اطمینان از اینکه سایت‌های آن‌ها برای تغییرات در 3PC آماده هستند، می‌پردازد.

معماری فنی

میکروسرویس ها

Tray میزبان همه برنامه‌های فروشگاهی و پشتی آفیس در دامنه خود، tray.com.br است و بازرگانان می‌توانند از یک CNAME برای ارائه این برنامه‌ها از دامنه سفارشی خود استفاده کنند. با این راه‌اندازی، خریداران فقط دامنه فروشگاه مانند merchant.example را خواهند دید. Tray از معماری میکروسرویس ها برای ارائه ویژگی ها و قابلیت ها استفاده می کند. این رویکرد از برنامه های کاربردی مستقل و مستقل استفاده می کند که هر کدام بر روی یک عملکرد خاص متمرکز شده اند. سپس این ریزسرویس‌ها بر اساس قابلیت‌های عملکردی خود به حوزه‌هایی دسته‌بندی می‌شوند:

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

برنامه Backoffice

Backoffice یک برنامه اصلی در مدیریت فروشگاه است که به عنوان پنل مدیریت مرکزی برای فروشگاه مجازی فروشنده در Tray عمل می کند. از طریق این پنل، فروشندگان می توانند:

  • ثبت محصولات
  • روش های ارسال و پرداخت را پیکربندی کنید
  • تبلیغات ایجاد کنید
  • مدیریت پخش زنده
  • نظارت بر جریان سفارش
  • نظارت بر گزارش های فروش

از آنجایی که Backoffice بسیاری از ریزسرویس ها را - که برخی توسط Tray و برخی توسط شخص ثالث اداره می شوند - در یک رابط واحد گرد هم می آورد، به ویژه در معرض اختلالات ناشی از تغییرات در نحوه مدیریت کوکی های شخص ثالث است.

CNAME برای سفارشی‌سازی تاجر

Tray از رکوردهای CNAME برای ادغام یکپارچه ویترین ها استفاده می کند.

هنگام راه‌اندازی یک فروشگاه جدید، تاجران می‌توانند CNAME‌ها را برای هدایت درخواست‌ها به برنامه‌های میزبانی شده در دامنه Tray's ، tray.com.br تنظیم کنند . این بدان معناست که وقتی یک مشتری از وب سایت یک فروشنده (مانند example.com ) بازدید می کند، یک رکورد CNAME او را به دامنه Tray's هدایت می کند در حالی که URL فروشنده را در نوار آدرس حفظ می کند. این یک تجربه کاربری روان ایجاد می کند که در آن محتوا به نظر می رسد مستقیماً از وب سایت تاجر ارائه می شود.

درک CNAME ها

عملکرد رکوردهای CNAME مشابه انتقال تماس در تلفن است. تصور کنید با یک دوست با شماره 555-0199 تماس می گیرید، اما آنها پاسخ نمی دهند. تماس ممکن است با شماره دیگری مانند 555-0100 به پست صوتی هدایت شود. با این حال، شما، تماس گیرنده، کاملاً از این تغییر مسیر بی اطلاع هستید. تلفن به طور یکپارچه شما را به هم متصل می کند و پیام تبریک پست صوتی همچنان شماره اصلی دوست شما (555-0199) را نشان می دهد.

CNAME ها برای وب سایت ها به همین روش کار می کنند. وقتی کاربر از وب‌سایت یک تاجر (مانند example.com ) بازدید می‌کند، یک رکورد CNAME ممکن است درخواست او را در پشت صحنه به سرور دیگری مانند assets.example.com هدایت کند. اما از دیدگاه کاربر و مرورگر، همه چیز در example.com اتفاق می افتد. نوار آدرس URL تاجر را نمایش می دهد و کاربر با وب سایت تعامل می کند که گویی محتوا مستقیماً از آن دامنه نشات گرفته است.

ارزیابی اختلالات احتمالی

تجزیه و تحلیل Tray's از تغییرات برنامه ریزی شده در مدیریت 3PC، اختلالاتی را در برنامه Backoffice نشان داد. وقتی 3PC مسدود شد، هنگام بارگیری صفحات از دامنه های مختلف در iframe های تعبیه شده در صفحات باطن، مشکلاتی به وجود آمد. این امر در مورد دامنه‌های داخلی، که متعلق به خدمات خود شرکت است، و همچنین برای شرکای خارجی که برنامه‌هایی را توسعه می‌دهند که با Tray با استفاده از API آن یکپارچه می‌شوند، اعمال می‌شود.

به عنوان مثال، صفحه ای را در backoffice.merchant.example تصور کنید که محتوای میزبانی شده توسط tray.com.br و سایر اشخاص ثالث را در خود جای داده است. مرورگرها به دلیل تفاوت دامنه، این محتوای جاسازی شده را به عنوان شخص ثالث در نظر می گیرند و به طور بالقوه آن را تحت هر گونه محدودیت 3PC محدود می کنند.

این تنظیم می تواند به چندین مشکل منجر شود:

  • جلسات شکسته: 3 رایانه شخصی مسدود شده می تواند باعث شکسته شدن جلسات آسیب دیده، تکه تکه شدن تجربیات کاربر با الزام کاربران برای ورود چندین بار به سیستم شود، یا در غیر این صورت باعث اختلال یا ایجاد ناسازگاری در صفحات Backoffice به دلیل عملکرد نادرست iframe ها شود.
  • چالش‌های یکپارچه‌سازی: برنامه‌های کاربردی شریک و سرویس‌های داخلی که با استفاده از API با Backend Tray's ادغام می‌شوند، به دلیل محدودیت‌های 3PC ممکن است با مشکلات مشابهی روبرو شوند.

شکل زیر این سناریو را نشان می دهد:

  • کاربر به برنامه Backoffice میزبانی شده در merchant.example دسترسی پیدا می کند.
  • برنامه‌های جاسازی‌شده در دامنه‌های مختلفی قرار دارند - برخی در tray.com.br که متعلق به Tray است و برخی دیگر در دامنه‌های فروشنده شخص ثالث ( third-party.example ).
  • این تفاوت دامنه محدودیت‌های 3PC را ایجاد می‌کند و به طور بالقوه باعث ایجاد مشکلاتی در برنامه‌های تعبیه‌شده می‌شود.
نموداری که نمونه CNAME را نشان می‌دهد: ویجت‌های backoffice.merchant.example CNAME را به ارث می‌برند بنابراین همه آنها SameSite برای سایت فروشنده هستند.

آزمایش سفرهای حیاتی کاربر

آزمایش و تجزیه و تحلیل Tray's با هدف بهبود عملکرد وب سایت و تجربه کاربر، با تمرکز بر ادغام شخص ثالث و آماده سازی برای آینده ای بود که بسیاری از کاربران بدون 3PC مرور می کنند.

Tray از ابزار تجزیه و تحلیل جعبه ایمنی حریم خصوصی (PSAT) و Chrome DevTools برای تجزیه و تحلیل جریان‌های کاربر کلیدی برای مشتریان و بازرگانان استفاده کرد. این شامل آزمایش بارگیری صفحه در iframes، بررسی اینکه آیا جلسات کاربر معتبر هستند یا خیر، و اطمینان از اینکه برنامه‌های شخص ثالث به عملکرد مورد انتظار ادامه می‌دهند، می‌شد. آزمایش نقش‌های مختلف کاربر، دستگاه‌ها و مرورگرها (از جمله کروم، فایرفاکس و سافاری) را برای شناسایی مشکلات احتمالی سازگاری بین مرورگرها در بر می‌گرفت. Tray از PSAT و Chrome Dev Tools برای دسته‌بندی کوکی‌ها و ارزیابی تأثیر آنها بر تجربه کاربر استفاده کرد.

این تجزیه و تحلیل گامی حیاتی برای اطمینان از تجربه کاربری یکنواخت و یکنواخت، انطباق با آینده ای بود که ممکن است کوکی های شخص ثالث محدود یا در دسترس نباشد.

تجزیه و تحلیل راه حل های جعبه ایمنی حریم خصوصی

Storage Access API

در حالی که Storage Access API (SAA) به طور بالقوه می تواند اختلالات Tray's را برطرف کند و توسط همه مرورگرهای اصلی پشتیبانی می شود، به دو دلیل اصلی بهترین گزینه برای کسب و کار نبود:

  1. محتوای جاسازی شده فقط برای دسترسی به کوکی‌ها در مبدای که در آن جاسازی شده بود، نیاز داشت، نه برای دسترسی به کوکی‌های یکسان در چندین سایت.
  2. درخواست‌های مرورگر مرتبط با SAA ایده‌آل نبودند، به‌ویژه که از کوکی‌ها برای ردیابی کاربران در سراسر سایت‌ها استفاده نمی‌شد.

چیپس

CHIPS یک راه حل قوی با تجربه کاربری عالی برای جاسازی های بین سایتی ارائه می دهد. اجرای مشخصه Partitioned ساده بود و هیچ تأثیر قابل‌توجهی بر تعامل کاربر برای کاربران در Chrome نداشت. هنگامی که Tray در حال ایجاد تغییرات در سرویس خود بود، CHIPS توسط سایر مرورگرهای کلیدی پشتیبانی نمی‌شد، بنابراین آنها تصمیم گرفتند جاسازی‌های تحت مالکیت و مدیریت خود را به همان سایتی منتقل کنند که برنامه سطح بالا برای ارائه یک تجربه ثابت در بین مرورگرها. محتوای جاسازی شده شخص ثالث به CHIPS در Chrome متکی است و پنجره جدیدی (زمینه شخص اول) در مرورگرهای دیگر باز می کند. با این حال، از زمان پیاده‌سازی اولیه Tray's ، فایرفاکس برنامه‌های خود را برای ارسال تراشه‌ها به زودی تأیید کرده است و سافاری شروع به اضافه کردن پشتیبانی از ویژگی Partitioned کرده است.

ما فکر می کردیم که CHIPS یک راه حل زیبا است و خوشحالیم که آن را در مرورگرهای متعدد مورد استفاده قرار می دهیم. ما تصمیم گرفتیم راه حل CHIPS را علاوه بر انتقال چیزها به سایت های شخص اول، حفظ کنیم تا بتوانیم از همه مرورگرها حتی قبل از استفاده از CHIPS پشتیبانی کنیم.

- تاکاشی تاناکا، CTO Tray

سازگاری مرورگر، W3C و استانداردها

کروم نقشی اساسی در جامعه استانداردها ایفا می کند. مشارکت فعال در گروه‌های کاری W3C و گروه‌های اجتماعی ، مانند PrivacyCG ، برای تأثیرگذاری بر اکوسیستم مرورگر گسترده‌تر برای پذیرش فناوری‌های جدید وب بسیار مهم است.

Privacy Sandbox با اکوسیستم وب کار می کند تا به طور مداوم API هایی مانند CHIPS را بر اساس بازخورد و تعامل صنعت توسعه دهد . این رویکرد شفاف و مبتنی بر استانداردها در به کارگیری CHIPS در سایر مرورگرهای اصلی مؤثر بوده است.

Tray از بازرگانان و مشتریان آنها در همه انواع دستگاه ها و مرورگرها پشتیبانی می کند. یک رویکرد صرفا مبتنی بر CHIPS ترجیح داده می شد، اما تغییرات اضافی نیز برای پشتیبانی از سایر مرورگرهایی که در آن زمان از CHIPS پشتیبانی نمی کردند، ایجاد شد.

رویکرد Tray's برای رسیدگی به اختلالات ناشی از در دسترس نبودن 3PC شامل دو استراتژی اصلی است.

1. برنامه های داخلی

میکروسرویس‌های Tray کاملاً کارآمد - از جمله Live Shop، Dropshipping، و صادرکننده فاکتور - به‌روزرسانی شدند تا منبع محتوای جاسازی‌شده CNAME تنظیم‌شده توسط تاجر را به ارث ببرد. به عبارت ساده، محتوای جاسازی شده به‌روزرسانی شد تا شخص اول باشد و صفحه آن را تعبیه کرده است - تضمین می‌کند که هیچ اختلالی به دلیل تغییرات کوکی شخص ثالث وجود نداشته باشد.

2. برنامه های شخص ثالث

برای برنامه های شخص ثالث که از طریق Backoffice قابل دسترسی هستند، Tray رویکرد پویا تری را اجرا کرد. در اینجا نحوه کار آن آمده است:

  • پیاده سازی ویژگی پارتیشن بندی شده: اجرای ویژگی کوکی Partitioned برای فروشندگان قابل اعتماد حفظ شده است، و این امکان را برای برنامه های شخص ثالث فراهم می کند تا به طور موثر کوکی ها را در مرورگرهایی که از CHIPS پشتیبانی می کنند تنظیم کنند.
  • وقتی کوکی‌های شخص ثالث مسدود می‌شوند: اگر مرورگر کاربر 3 رایانه شخصی را مسدود کند، برنامه شخص ثالث در یک پنجره جدید (شخص اول) باز می‌شود. این از مشکلات باز کردن جلوگیری می کند و عملکرد مداوم را حتی با محدودیت های 3PC تضمین می کند.
  • زمانی که کوکی‌های شخص ثالث مجاز هستند: اگر مرورگر کاربر به 3PC اجازه دهد، برنامه مانند قبل در داخل iframe باز می‌شود.

تجسم راه حل

شکل زیر راه حل را نشان می دهد. با به ارث بردن دامنه اصلی فروشگاه ( merchant.example )، به نظر می رسد همه برنامه های جاسازی شده از یک منبع منشا می گیرند. این باعث می‌شود که همه ویجت‌ها برای یکدیگر شخص اول باشند، به این معنی که محدودیت‌های 3PC عاملی نیستند. از آنجایی که همه این فریم‌ها برای یکدیگر تبدیل به شخص اول می‌شوند، اصول حفظ حریم خصوصی کوکی‌های شخص اول دیگر را می‌پذیرد: آنها فقط در زمینه شخص اول قابل دسترسی هستند و پتانسیل ردیابی بین سایتی را محدود می‌کنند.

هر سرویس شخص ثالثی که متعلق به Tray نیست، از ویژگی Partitioned برای تنظیم کوکی‌های CHIPS استفاده می‌کند، به این معنی که آنها نیز فقط در زمینه‌ای که در آن تنظیم شده‌اند قابل دسترسی هستند و پتانسیل ردیابی بین سایتی را محدود می‌کنند.

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

خط پایین

  • یک راه حل یکسان برای حفظ حریم خصوصی در وب وجود ندارد. راه‌های زیادی برای دستیابی به تجربه‌های کاربر بدون اصطکاک و در عین حال حفظ حریم خصوصی وجود دارد.
  • ادغام منابع در یک دامنه سطح بالا به کوکی‌ها اجازه می‌دهد حتی با محدودیت‌های کوکی شخص ثالث کار کنند.
  • CHIPS ممکن است راه حل ساده‌تری نسبت به انتقال همه منابع به یک سایت سطح بالا باشد.
  • راه حل Tray's بادوام است و در مرورگرها کار می کند. از آنجایی که مرورگرهای اضافی از CHIPS پشتیبانی می کنند، می توان آن را به عنوان یک راه حل بین مرورگر قابل اعتماد برای سناریوهایی مانند Tray's در نظر گرفت.