Tray היא ספקית של מערכת ניהול תוכן (CMS) למסחר אלקטרוני עם יותר מ-20 שנות ניסיון בשוק הקמעונאי בברזיל. מוכרים מפעילים חנויות אונליין בתשתית של Tray's, שמספקת גם שירותים ושילובים לניהול הלוגיסטיקה, התשלומים, קידומי המכירות והדיווח של העסק.
Tray הוא חבר בקבוצה LWSA ומהווה כוח מוביל בתחום המסחר האלקטרוני. יותר מ-180,000 לקוחות סומכים על Tray, והם הניבו יחד יותר מ-3 מיליארד דולר GMV ברבעון הראשון של 2024.

הסתמכות על קובצי cookie של צד שלישי
הארכיטקטורה הטכנית של Tray's משתמשת בקובצי cookie של צד שלישי (3PC) כדי לספק פונקציות של צד שלישי לאתרים של מוכרים, במיוחד לחלונית הניהול האחורי של המוכר המשמשת לניהול החנות. קובצי ה-cookie האלה חיוניים לעיבוד תוכן שמוצג מאפליקציות צד שלישי שמתארחות בדומיינים שאינם הדומיין של המוכר. במסגרת המחקר של Tray's התגלה ששינויים מתוכננים באופן שבו דפדפנים מטפלים ב-3PCs עלולים לשבש את היכולת הזו. Tray משמש בתור תשתית קריטית עבור קמעונאים רבים באינטרנט, ולכן חשוב שהעסקים יוכלו להמשיך לפעול כרגיל – גם כשמתבצעים שינויים משמעותיים באופן שבו Chrome ודפדפנים אחרים מטפלים ב-3PC.
בניתוח המקרה הזה נסביר איך Tray's זיהו שיבושים פוטנציאליים, איך הם העריכו פתרונות פוטנציאליים ואיך הם הטמיעו את הפתרון המוצלח כדי לוודא שהאתרים שלהם מוכנים לשינויים ב-3PC.
ארכיטקטורה טכנית
Microservices
Tray מארח את כל האפליקציות של חלון הראווה הווירטואלי ואת האפליקציות של משאבי העורפי בדומיין שלו, tray.com.br, והמוכרים יכולים להשתמש ב-CNAME כדי להציג את האפליקציות האלה מהדומיין המותאם אישית שלהם. בהגדרה הזו, הקונים תמיד יראו רק את הדומיין של החנות, כמו merchant.example. Tray משתמש בארכיטקטורת מיקרו-שירותים כדי לספק תכונות ויכולות. הגישה הזו מתבססת על אפליקציות עצמאיות ומכילות בעצמן, שמתמקדות כל אחת בפונקציה ספציפית. לאחר מכן, מיקרו-השירותים האלה מקובצים לפי היקפים על סמך היכולות הפונקציונליות שלהם:
- חנות: האפליקציות שאחראיות על תכונות של דף הבית של החנות, כמו הצגת מוצרים, חיפוש וניהול עיצוב.
- תהליך הרכישה: ניהול עגלת הקניות, תהליך התשלום והאינטראקציות עם הלקוחות במהלך תהליך הרכישה.
- ניהול חנויות: אפליקציות לניהול עסקי לצורך משימות כמו ניהול, דיווח וייבוא נתונים.
- שילובים: מאפשרים לכם ליצור קישורים לפלטפורמות חיצוניות כדי לפרסם כרטיסי מוצר במספר זירת מסחר, לנהל את הלוגיסטיקה ועוד.
אפליקציה לניהול הארגון
Backoffice היא אפליקציה מרכזית ב-Store Management, שמשמשת כחלונית הניהול המרכזית של החנות הווירטואלית של המוכר ב-Tray. באמצעות הלוח הזה, המוכרים יכולים:
- רישום מוצרים
- הגדרת שיטות משלוח ואמצעי תשלום
- קידומי מכירות
- ניהול שידורים חיים
- לפקח על תהליך ההזמנה
- מעקב אחרי דוחות המכירות
מאחר שמערכת Backoffice משלבת ממשק יחיד עם מיקרו-שירותים רבים – חלקם מופעלים על ידי Tray וחלקם מופעלים על ידי צדדים שלישיים – היא חשופה במיוחד לשיבושים שנובעים משינויים באופן הטיפול בקובצי cookie של צד שלישי.
כתובות 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. כש-3PCs נחסמו, נוצרו בעיות בטעינת דפים מדומיינים שונים בתוך iframes שמוטמעים בדפי הקצה העורפי. המדיניות הזו חלה על דומיינים פנימיים שהשתייכו לשירותים של החברה, וגם על שותפים חיצוניים שמפתחים אפליקציות שמשתלבות עם Tray באמצעות ממשק ה-API שלו.
לדוגמה, נניח שיש דף ב-backoffice.merchant.example
שמוטמע בו תוכן שמתארח ב-tray.com.br ובצדדים שלישיים אחרים.
הדפדפנים יתייחסו לתוכן המוטמע הזה כתוכן של צד שלישי בגלל ההבדל בדומיין, ויכול להיות שהם יגבילו אותו בהתאם לכל הגבלה על צד שלישי.
ההגדרה הזו עלולה להוביל לכמה בעיות:
- סשנים שבורים: רכיבי 3PC חסומים עלולים לגרום לסשנים פגומים, ולפגוע בחוויית המשתמש על ידי כך שהמשתמשים יצטרכו להיכנס לחשבון כמה פעמים. הם עלולים גם לגרום לשיבושים בדפים של Backoffice או לאי-עקביות בדפים האלה בגלל רכיבי iframe שאינם תקינים.
- אתגרי שילוב: אפליקציות של שותפים ושירותים פנימיים שמשתלבים עם הקצה העורפי של Tray's באמצעות ה-API שלו עשויים להיתקל בקשיים דומים בגלל ההגבלות על צד שלישי.
התרחיש הזה מתואר באיור הבא:
- משתמש נכנס לאפליקציית Backoffice שמתארחת ב-
merchant.example
. - אפליקציות מוטמעות נמצאות בדומיינים שונים – חלקן בדומיין
tray.com.br
שבבעלות Tray, וחלקן בדומיינים של ספקי צד שלישי (third-party.example
). - ההבדל בדומיין הזה גורם להפעלת הגבלות 3PC, שעלולות לגרום לבעיות באפליקציות המוטמעות.

ניתוח יחסי התלות והפתרונות לגבי קובצי cookie של צד שלישי
בדיקת תהליכים חיוניים להמרת משתמשים
מטרת הבדיקה והניתוח של Tray's הייתה לשפר את ביצועי האתר ואת חוויית המשתמש, תוך התמקדות בשילובים של צד שלישי ובהכנה לעתיד שבו משתמשים רבים יבקרו באתרים בלי קובצי cookie של צד שלישי.
Tray השתמשו בכלי הניתוח של 'ארגז החול לפרטיות' (PSAT) ובכלי הפיתוח ל-Chrome כדי לנתח תהליכי שימוש חשובים של לקוחות וקמעונאים. במסגרת הבדיקה נטענו דפים ברכיבי iframe, נבדק אם סשנים של משתמשים נותרו תקפים ולוודא שאפליקציות של צד שלישי ממשיכות לפעול כצפוי. הבדיקה כללה תפקידים שונים של משתמשים, מכשירים ודפדפנים (כולל Chrome, Firefox ו-Safari) כדי לזהות בעיות פוטנציאליות בתאימות בין דפדפנים. Tray השתמשו ב-PSAT ובכלי הפיתוח של Chrome כדי לסווג את קובצי ה-cookie ולהעריך את ההשפעה שלהם על חוויית המשתמש.
הניתוח הזה היה שלב חיוני במטרה להבטיח חוויית משתמש חלקה ועקבית, ולהתאים את עצמנו לעתיד שבו יכול להיות שקובצי cookie של צד שלישי יהיו מוגבלים או לא זמינים.
ניתוח פתרונות של ארגז החול לפרטיות
Storage Access API
אמנם Storage Access API (SAA) יכול לפתור באופן פוטנציאלי שיבושים ב-Tray's, ויש לו תמיכה בכל הדפדפנים העיקריים, אבל הוא לא התאים לעסק משתי סיבות עיקריות:
- התוכן המוטמע נזקק לגישה לקובצי cookie רק במקור שבו הוא מוטמע, ולא לגישה לאותם קובצי cookie במספר אתרים.
- ההנחיות בדפדפן שמשויכות ל-SAA לא היו אידיאליות, במיוחד מאחר שלא נעשה שימוש בקובצי cookie למעקב אחר משתמשים באתרים שונים.
CHIPS
CHIPS הציע פתרון חזק עם חוויית משתמש מצוינת להטמעות באתרים שונים. היה קל להטמיע את המאפיין Partitioned
, ולא הייתה לו השפעה ניכרת על האינטראקציה של המשתמשים ב-Chrome. CHIPS לא נתמך בדפדפנים מרכזיים אחרים בזמן ש-Tray ביצעה שינויים בשירות שלה, ולכן היא בחרה להעביר את התגים המוטמעים שבבעלותה ובניהולה לאותו אתר שבו נמצאת האפליקציה ברמה העליונה, כדי לספק חוויה עקבית בכל הדפדפנים. תוכן מוטמע של צד שלישי מסתמך על CHIPS ב-Chrome ופותח חלון חדש (הקשר של צד ראשון) בדפדפנים אחרים. עם זאת, מאז ההטמעה הראשונית של Tray's, ב-Firefox אישרו את התוכניות שלהם להפצת CHIPS בקרוב, וב-Safari החלו להוסיף תמיכה במאפיין Partitioned, החל מגרסת Technology Preview שלהם.
חשבנו ש-CHIPS הוא פתרון אלגנטי ושמחנו לראות שהוא נכנס לשימוש בכמה דפדפנים. החלטנו להמשיך להשתמש בפתרון CHIPS בנוסף להעברת הדברים לאתרים של צד ראשון, כדי שנוכל לתמוך בכל הדפדפנים עוד לפני שהם יתחילו להשתמש ב-CHIPS.
— טאקאשי טאנאקה (Takashi Tanaka), מנהל טכנולוגיות ראשי ב-Tray
תאימות לדפדפנים, W3C ותקנים
ל-Chrome יש תפקיד מרכזי בקהילת התקנים. השתתפות פעילה בקבוצות עבודה ובקבוצות קהילתיות של W3C, כמו PrivacyCG, היא קריטית כדי להשפיע על הסביבה העסקית הרחבה יותר של הדפדפנים לאימוץ טכנולוגיות אינטרנט חדשות.
ארגז החול לפרטיות פועל בשיתוף עם הסביבה העסקית של האינטרנט כדי לשפר כל הזמן ממשקי API כמו CHIPS על סמך משוב מהענף והתעניינות בו. הגישה השקופה והמבוססת-תקנים הזו עזרה להרחיב את השימוש ב-CHIPS בדפדפנים גדולים אחרים.
פתרון עמיד לבעיות של יחסי תלות בקובצי cookie של צד שלישי
Tray תומך במוכרים ובלקוחות שלהם בכל סוגי המכשירים והדפדפנים. היינו מעדיפים גישה שמבוססת רק על CHIPS, אבל ביצענו גם שינויים נוספים כדי לתמוך בדפדפנים אחרים שלא תמכו ב-CHIPS באותו זמן.
הגישה של Tray's לטיפול בהפרעות שנגרמות כששלבים של 3PC לא זמינים כללה שתי אסטרטגיות עיקריות.
1. אפליקציות פנימיות
עדכנו את המיקרו-שירותים של Tray שפועלים במלואם, כולל Live Shop, Dropshipping ו-Invoice Issuer, כך שמקור התוכן המוטמע יקבל בירושה את ה-CNAME שהמוכר הגדיר. במילים פשוטות, התוכן המוטמע עודכן כך שיהיה שייך לדף שמוטמע בו, כדי לוודא שלא יהיו שיבושים בגלל שינויים בקובצי cookie של צד שלישי.
2. אפליקציות של צד שלישי
לגבי אפליקציות צד שלישי שניתן לגשת אליהן דרך Backoffice, Tray הטמיעה גישה דינמית יותר. ככה זה עובד:
- הטמעת מאפיין מפוצל: הטמעת מאפיין קובץ ה-Cookie
Partitioned
נשמרה לספקים מהימנים, וכך אפליקציות צד שלישי יכולות להגדיר קובצי Cookie ביעילות בדפדפנים שתומכים ב-CHIPS. - כשקובצי cookie של צד שלישי חסומים: אם הדפדפן של המשתמש חוסם קובצי cookie של צד שלישי, האפליקציה של הצד השלישי נפתחת בחלון חדש (מהדומיין הנוכחי). כך אפשר למנוע בעיות פתיחה ולהבטיח המשך הפעולה, גם עם הגבלות 3PC.
- כשמותר להשתמש בקובצי cookie של צד שלישי: אם הדפדפן של המשתמש מאפשר להשתמש בקובצי cookie של צד שלישי, האפליקציה תמשיך להיפתח ברכיבי iframe כמו בעבר.
הצגת הפתרון באופן חזותי
בתרשים הבא מוצג הפתרון. בזכות הירושה של הדומיין הראשי של החנות (merchant.example
), נראה שכל האפליקציות המוטמעות מגיעות מאותו מקור. כך כל הווידג'טים הם נתונים מאינטראקציה ישירה (First-Party) זה עם זה, כלומר הגבלות על צד שלישי לא רלוונטיות. מכיוון שכל המסגרות האלה הופכות למסגרות מהדומיין הנוכחי זו לזו, עקרונות הפרטיות שלהן זהים לעקרונות של קובצי cookie אחרים מהדומיין הנוכחי: יש גישה אליהן רק בהקשר של הדומיין הנוכחי, והן מגבילות את האפשרות למעקב בכמה אתרים.
שירותי צד שלישי שאינם בבעלות Tray משתמשים במאפיין Partitioned
כדי להגדיר קובצי cookie של CHIPS. כלומר, אפשר לגשת אליהם רק בהקשר שבו הם הוגדרו, והם מגבילים את האפשרות למעקב בכמה אתרים.

השורה התחתונה
- אין פתרון אחד שמתאים לכולם בנושא פרטיות באינטרנט. יש דרכים רבות להשיג חוויית משתמש חלקה בלי לפגוע בפרטיות.
- איחוד המשאבים באותו דומיין ברמה העליונה מאפשר לקובצי cookie לפעול גם עם הגבלות על קובצי cookie של צד שלישי.
- יכול להיות ש-CHIPS הוא פתרון קל יותר מאשר העברת כל המשאבים לאותו אתר ברמה העליונה.
- הפתרון של Tray's עמיד ופועל בכל הדפדפנים. ככל שדפדפנים נוספים יטמיעו תמיכה ב-CHIPS, אפשר יהיה להתייחס אליו כפתרון מהימן לדפדפנים שונים בתרחישים כמו Tray's.