Tray — поставщик системы управления контентом (CMS) для электронной коммерции с более чем 20-летним опытом работы на бразильском розничном рынке. Продавцы управляют интернет-магазинами на базе инфраструктуры Tray's , которая также предоставляет услуги и интеграцию для управления бизнес-логистикой, платежами, рекламными акциями и отчетностью.
Tray входит в группу LWSA и является движущей силой сектора электронной коммерции. Tray доверяют более 180 000 клиентов, которые в совокупности заработали более 3 миллиардов долларов США на GMV в первом квартале 2024 года.

Зависимость от сторонних файлов cookie
Техническая архитектура Tray's использует сторонние файлы cookie (3PC) для предоставления сторонних функций сайтам торговцев, в частности для панели администрирования Backoffice продавца, используемой для управления магазином. Эти файлы cookie необходимы для отображения контента, предоставляемого сторонними приложениями, размещенными в доменах, отличных от домена продавца. Исследование Tray's показало, что запланированные изменения в том, как браузеры обрабатывают 3-ПК, потенциально могут нарушить эту возможность. Поскольку Tray служит критически важной инфраструктурой для многих интернет-магазинов, крайне важно, чтобы бизнес мог продолжаться в обычном режиме, даже несмотря на то, что вносятся серьезные изменения в то, как Chrome и другие браузеры обрабатывают 3-ПК.
В этом тематическом исследовании рассматривается обнаружение Tray's потенциальных сбоев, оценка потенциальных решений и успешное решение, введенное в действие, чтобы убедиться, что их сайты готовы к изменениям в 3PC.
Техническая архитектура
Микросервисы
Tray размещает все приложения витрины и бэк-офиса в своем домене Tray.com.br , и продавцы могут использовать CNAME для обслуживания этих приложений из своего собственного домена. При такой настройке покупатели будут видеть только домен магазина, например Merchant.example. Tray использует архитектуру микросервисов для предоставления функций и возможностей. В этом подходе используются независимые, автономные приложения, каждое из которых ориентировано на определенную функцию. Эти микросервисы затем группируются в области в зависимости от их функциональных возможностей:
- Магазин: включает приложения, отвечающие за функции витрины, такие как отображение продуктов, поиск и управление темами.
- Поток покупок: управляет корзиной покупок, процессом оформления заказа и взаимодействием с клиентами во время процесса покупки.
- Управление магазином: предоставляет бэк-офисные приложения для таких задач, как администрирование, отчетность и импорт данных.
- Интеграция: облегчает связь с внешними платформами для включения межрыночных списков, управления логистикой и многого другого.
Приложение бэк-офиса
Backoffice — это основное приложение в рамках Store Management, служащее центральной панелью администрирования виртуального магазина продавца на Tray . С помощью этой панели продавцы могут:
- Зарегистрировать продукты
- Настройте способы доставки и оплаты
- Создавайте рекламные акции
- Управляйте прямыми трансляциями
- Контролировать поток заказов
- Контролировать отчеты о продажах
Поскольку Backoffice объединяет множество микросервисов (некоторые из которых управляются Tray , а некоторые — сторонние компании) в едином интерфейсе, он особенно подвержен сбоям, возникающим из-за изменений в способах обработки сторонних файлов cookie.
CNAME для настройки продавца
Tray использует записи CNAME для плавной интеграции витрин.
При настройке нового магазина продавцы могут настроить CNAME для направления запросов к приложениям, размещенным в домене Tray's , лоток.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-адрес продавца, и пользователь взаимодействует с веб-сайтом так, как если бы контент был получен непосредственно из этого домена.
Оценка потенциальных сбоев
Анализ запланированных изменений в обработке 3PC Tray's выявил сбои в работе приложения Backoffice. Когда 3PC были заблокированы, возникли проблемы при загрузке страниц из разных доменов в iframe, встроенном в серверные страницы. Это касалось внутренних доменов, принадлежавших собственным сервисам компании, а также внешних партнеров, разрабатывающих приложения, интегрирующиеся с Tray с помощью его API.
Например, представьте себе страницу backoffice.merchant.example
, в которую встроен контент, размещенный на сайте Tray.com.br и других третьих сторон. Браузеры будут рассматривать этот встроенный контент как сторонний из-за разницы в доменах, потенциально ограничивая его любыми ограничениями 3PC.
Такая установка может привести к нескольким проблемам:
- Разорванные сеансы. Заблокированные 3 компьютера могут привести к разрыву затронутых сеансов, фрагментации пользовательского опыта, требуя от пользователей многократного входа в систему, или иным образом нарушая работу или вызывая несогласованность на страницах Backoffice из-за сбоя в работе iframe.
- Проблемы интеграции. Партнерские приложения и внутренние службы, которые интегрируются с серверной частью Tray's с помощью API, могут столкнуться с аналогичными трудностями из-за ограничений 3PC.
Следующий рисунок иллюстрирует этот сценарий:
- Пользователь получает доступ к приложению Backoffice, размещенному на
merchant.example
. - Встроенные приложения располагаются в разных доменах: некоторые — на
tray.com.br
, принадлежащем Tray , а другие — на доменах сторонних поставщиков (third-party.example
). - Эта разница в доменах вызывает ограничения на 3 ПК, что потенциально может вызвать проблемы со встроенными приложениями.

Анализ зависимостей и решений сторонних файлов cookie
Тестирование критически важных пользовательских маршрутов
Тестирование и анализ, Tray's были направлены на улучшение производительности веб-сайта и удобства пользователей с упором на интеграцию со сторонними организациями и подготовку к будущему, когда многие пользователи будут просматривать веб-сайты без 3-ПК.
Tray использовал инструмент анализа конфиденциальной среды (PSAT) и Chrome DevTools для анализа ключевых пользовательских потоков для клиентов и продавцов. Это включало тестирование загрузки страниц в iframe, проверку работоспособности пользовательских сеансов и проверку того, что сторонние приложения продолжают работать должным образом. Тестирование охватывало различные роли пользователей, устройства и браузеры (включая Chrome, Firefox и Safari) для выявления потенциальных проблем кросс-браузерной совместимости. Tray использовал PSAT и Chrome Dev Tools, чтобы классифицировать файлы cookie и оценить их влияние на взаимодействие с пользователем.
Этот анализ стал жизненно важным шагом на пути к обеспечению бесперебойного и последовательного взаимодействия с пользователем и адаптации к будущему, когда сторонние файлы cookie могут быть ограничены или недоступны.
Анализ решений Privacy Sandbox
API доступа к хранилищу
Хотя API доступа к хранилищу (SAA) потенциально может решить проблемы Tray's и поддерживается всеми основными браузерами, он не лучшим образом подходит для бизнеса по двум основным причинам:
- Встроенному контенту требовался доступ только к файлам cookie того источника, в который он был встроен, а не к одним и тем же файлам cookie на нескольких сайтах.
- Подсказки браузера, связанные с SAA, не были идеальными, особенно потому, что файлы cookie не использовались для отслеживания пользователей на разных сайтах.
ЧИПСЫ
CHIPS предложила мощное решение с отличным пользовательским интерфейсом для межсайтового встраивания. Атрибут Partitioned
было легко реализовать, и он не оказал заметного влияния на взаимодействие пользователей в Chrome. CHIPS не поддерживался другими ключевыми браузерами, когда Tray вносил изменения в свой сервис, поэтому они решили переместить свои собственные встраивания на тот же сайт, что и приложение верхнего уровня, чтобы обеспечить единообразную работу во всех браузерах. Сторонний встроенный контент использует CHIPS в Chrome и открывает новое окно (собственный контекст) в других браузерах. Однако с момента первоначальной реализации Tray's Firefox подтвердил планы по выпуску CHIPS в ближайшее время, а Safari начал добавлять поддержку атрибута Partitioned, начиная с Technology Preview.
Мы сочли CHIPS элегантным решением и рады видеть, что оно применяется во многих браузерах. Мы решили сохранить решение CHIPS, а также перенести его на собственные сайты, чтобы мы могли поддерживать все браузеры еще до того, как они перейдут на CHIPS.
— Такаши Танака, технический директор Tray
Совместимость браузера, W3C и стандарты
Chrome играет ключевую роль в сообществе стандартов. Активное участие в рабочих группах и группах сообщества W3C, таких как PrivacyCG , имеет решающее значение для влияния на более широкую экосистему браузеров с целью принятия новых веб-технологий.
Privacy Sandbox работает с веб-экосистемой для постоянного развития API, таких как CHIPS, на основе отзывов и участия отрасли. Этот прозрачный и основанный на стандартах подход способствовал внедрению CHIPS в других основных браузерах.
Надежное решение проблем с зависимостями сторонних файлов cookie
Tray поддерживает продавцов и их клиентов на всех типах устройств и браузеров. Предпочтительным был бы подход, основанный исключительно на CHIPS, но были внесены дополнительные изменения для поддержки других браузеров, которые в то время не поддерживали CHIPS.
Подход Tray's к устранению сбоев, вызванных недоступностью 3PC, включал две основные стратегии.
1. Внутренние приложения
Полноценные микросервисы Tray , включая Live Shop, Dropshipping и Invoice Issuer, были обновлены таким образом, чтобы источник встроенного контента наследовал CNAME, установленный продавцом. Проще говоря, встроенный контент был обновлен так, чтобы он стал собственным, вместе с встраиваемой им страницей, что гарантировало отсутствие сбоев из-за изменений сторонних файлов cookie.
2. Сторонние приложения
Для сторонних приложений, доступ к которым осуществляется через Backoffice, Tray реализован более динамичный подход. Вот как это работает:
- Реализация разделенного атрибута: реализация
Partitioned
атрибута cookie была сохранена для доверенных поставщиков , что позволило сторонним приложениям эффективно устанавливать файлы cookie в браузерах, поддерживающих CHIPS. - Когда сторонние файлы cookie блокируются: если браузер пользователя блокирует 3 компьютера, стороннее приложение открывается в новом (собственном) окне. Это позволяет избежать проблем с открытием и обеспечивает непрерывную работу даже при ограничениях 3PC.
- Когда разрешены сторонние файлы cookie: если браузер пользователя разрешает использование 3-х компьютеров, приложение продолжает открываться в рамках iframe, как и раньше.
Визуализация решения
Следующий рисунок иллюстрирует решение. Наследуя основной домен магазина ( merchant.example
), создается впечатление, что все встроенные приложения происходят из одного и того же источника. Это делает все виджеты независимыми друг от друга, а это означает, что ограничения 3PC не имеют значения. Поскольку все эти фреймы становятся первичными друг для друга, принципы конфиденциальности аналогичны принципам других первичных файлов cookie: они доступны только в контексте первой стороны и ограничивают возможность межсайтового отслеживания.
Любые сторонние службы, не принадлежащие Tray используют атрибут Partitioned
для установки файлов cookie CHIPS, что означает, что они также доступны только в том контексте, в котором они были установлены, и ограничивают возможность межсайтового отслеживания.

Итог
- Не существует универсального решения для обеспечения конфиденциальности в Интернете; Существует множество способов добиться беспрепятственного взаимодействия с пользователем, сохраняя при этом конфиденциальность.
- Объединение ресурсов в одном домене верхнего уровня позволяет файлам cookie работать даже при наличии ограничений на использование сторонних файлов cookie.
- CHIPS может оказаться более простым решением, чем перенос всех ресурсов на один и тот же сайт верхнего уровня.
- Решение Tray's надежно и работает во всех браузерах. Поскольку дополнительные браузеры реализуют поддержку CHIPS , его можно считать надежным кроссбраузерным решением для таких сценариев, как Tray's .
Tray — поставщик системы управления контентом (CMS) для электронной коммерции с более чем 20-летним опытом работы на бразильском розничном рынке. Продавцы управляют интернет-магазинами на базе инфраструктуры Tray's , которая также предоставляет услуги и интеграцию для управления бизнес-логистикой, платежами, рекламными акциями и отчетностью.
Tray входит в группу LWSA и является движущей силой сектора электронной коммерции. Tray доверяют более 180 000 клиентов, которые в совокупности заработали более 3 миллиардов долларов США на GMV в первом квартале 2024 года.

Зависимость от сторонних файлов cookie
Техническая архитектура Tray's использует сторонние файлы cookie (3PC) для предоставления сторонних функций сайтам торговцев, в частности для панели администрирования Backoffice продавца, используемой для управления магазином. Эти файлы cookie необходимы для отображения контента, предоставляемого сторонними приложениями, размещенными в доменах, отличных от домена продавца. Исследование Tray's показало, что запланированные изменения в том, как браузеры обрабатывают 3-ПК, потенциально могут нарушить эту возможность. Поскольку Tray служит критически важной инфраструктурой для многих интернет-магазинов, крайне важно, чтобы бизнес мог продолжаться в обычном режиме, даже несмотря на то, что вносятся серьезные изменения в то, как Chrome и другие браузеры обрабатывают 3-ПК.
В этом тематическом исследовании рассматривается обнаружение Tray's потенциальных сбоев, оценка потенциальных решений и успешное решение, введенное в действие, чтобы убедиться, что их сайты готовы к изменениям в 3PC.
Техническая архитектура
Микросервисы
Tray размещает все приложения витрины и бэк-офиса в своем домене Tray.com.br , и продавцы могут использовать CNAME для обслуживания этих приложений из своего собственного домена. При такой настройке покупатели будут видеть только домен магазина, например Merchant.example. Tray использует архитектуру микросервисов для предоставления функций и возможностей. В этом подходе используются независимые автономные приложения, каждое из которых ориентировано на определенную функцию. Эти микросервисы затем группируются в области в зависимости от их функциональных возможностей:
- Магазин: включает приложения, отвечающие за функции витрины, такие как отображение продуктов, поиск и управление темами.
- Поток покупок: управляет корзиной покупок, процессом оформления заказа и взаимодействием с клиентами во время процесса покупки.
- Управление магазином: предоставляет бэк-офисные приложения для таких задач, как администрирование, отчетность и импорт данных.
- Интеграция: облегчает связь с внешними платформами для включения межрыночных списков, управления логистикой и многого другого.
Приложение бэк-офиса
Backoffice — это основное приложение в рамках Store Management, служащее центральной панелью администрирования виртуального магазина продавца на Tray . С помощью этой панели продавцы могут:
- Зарегистрировать продукты
- Настройте способы доставки и оплаты
- Создавайте рекламные акции
- Управляйте прямыми трансляциями
- Контролировать поток заказов
- Контролировать отчеты о продажах
Поскольку Backoffice объединяет множество микросервисов (некоторые из которых управляются Tray , а некоторые — сторонние компании) в едином интерфейсе, он особенно подвержен сбоям, возникающим из-за изменений в способах обработки сторонних файлов cookie.
CNAME для настройки продавца
Tray использует записи CNAME для плавной интеграции витрин.
При настройке нового магазина продавцы могут настроить CNAME для направления запросов к приложениям, размещенным в домене Tray's , лоток.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-адрес продавца, и пользователь взаимодействует с веб-сайтом так, как если бы контент был получен непосредственно из этого домена.
Оценка потенциальных сбоев
Анализ запланированных изменений в обработке 3PC Tray's выявил сбои в работе приложения Backoffice. Когда 3PC были заблокированы, возникли проблемы при загрузке страниц из разных доменов в iframe, встроенном в серверные страницы. Это касалось внутренних доменов, принадлежавших собственным сервисам компании, а также внешних партнеров, разрабатывающих приложения, интегрирующиеся с Tray с помощью его API.
Например, представьте себе страницу backoffice.merchant.example
, в которую встроен контент, размещенный на сайте Tray.com.br и других третьих сторон. Браузеры будут рассматривать этот встроенный контент как сторонний из-за разницы в доменах, потенциально ограничивая его любыми ограничениями 3PC.
Такая установка может привести к нескольким проблемам:
- Разорванные сеансы. Заблокированные 3 компьютера могут привести к разрыву затронутых сеансов, фрагментации пользовательского опыта, требуя от пользователей многократного входа в систему, или иным образом нарушая работу или вызывая несогласованность на страницах Backoffice из-за сбоя в работе iframe.
- Проблемы интеграции. Партнерские приложения и внутренние службы, которые интегрируются с серверной частью Tray's с помощью API, могут столкнуться с аналогичными трудностями из-за ограничений 3PC.
Следующий рисунок иллюстрирует этот сценарий:
- Пользователь получает доступ к приложению Backoffice, размещенному на
merchant.example
. - Встроенные приложения размещаются в разных доменах: некоторые — на
tray.com.br
, принадлежащем Tray , а другие — на доменах сторонних поставщиков (third-party.example
). - Эта разница в доменах вызывает ограничения на 3 ПК, что потенциально может вызвать проблемы со встроенными приложениями.

Анализ зависимостей и решений сторонних файлов cookie
Тестирование критически важных пользовательских маршрутов
Тестирование и анализ, Tray's были направлены на улучшение производительности веб-сайта и удобства пользователей с упором на интеграцию со сторонними организациями и подготовку к будущему, когда многие пользователи будут просматривать веб-сайты без 3-ПК.
Tray использовал инструмент анализа конфиденциальной среды (PSAT) и Chrome DevTools для анализа ключевых пользовательских потоков для клиентов и продавцов. Это включало тестирование загрузки страниц в iframe, проверку работоспособности пользовательских сеансов и проверку того, что сторонние приложения продолжают работать должным образом. Тестирование охватывало различные роли пользователей, устройства и браузеры (включая Chrome, Firefox и Safari) для выявления потенциальных проблем кросс-браузерной совместимости. Tray использовал PSAT и Chrome Dev Tools, чтобы классифицировать файлы cookie и оценить их влияние на взаимодействие с пользователем.
Этот анализ стал важным шагом на пути к обеспечению бесперебойного и последовательного взаимодействия с пользователем и адаптации к будущему, когда сторонние файлы cookie могут быть ограничены или недоступны.
Анализ решений Privacy Sandbox
API доступа к хранилищу
Хотя API доступа к хранилищу (SAA) потенциально может устранить сбои в работе Tray's и поддерживается всеми основными браузерами, он не лучшим образом подходит для бизнеса по двум основным причинам:
- Встроенному контенту требовался доступ только к файлам cookie того источника, в который он был встроен, а не к одним и тем же файлам cookie на нескольких сайтах.
- Подсказки браузера, связанные с SAA, не были идеальными, особенно потому, что файлы cookie не использовались для отслеживания пользователей на разных сайтах.
ЧИПСЫ
CHIPS предложила мощное решение с отличным пользовательским интерфейсом для межсайтового встраивания. Атрибут Partitioned
было легко реализовать, и он не оказал заметного влияния на взаимодействие пользователей в Chrome. CHIPS не поддерживался другими ключевыми браузерами, когда Tray вносил изменения в свой сервис, поэтому они решили переместить свои собственные встраивания на тот же сайт, что и приложение верхнего уровня, чтобы обеспечить единообразную работу во всех браузерах. Сторонний встроенный контент использует CHIPS в Chrome и открывает новое окно (собственный контекст) в других браузерах. Однако после первоначальной реализации Tray's Firefox подтвердил планы по выпуску CHIPS в ближайшее время, а Safari начал добавлять поддержку атрибута Partitioned, начиная с Technology Preview.
Мы сочли CHIPS элегантным решением и рады видеть, что оно применяется во многих браузерах. Мы решили сохранить решение CHIPS, а также перенести его на собственные сайты, чтобы мы могли поддерживать все браузеры еще до того, как они перейдут на CHIPS.
— Такаши Танака, технический директор Tray
Совместимость браузера, W3C и стандарты
Chrome играет ключевую роль в сообществе стандартов. Активное участие в рабочих группах и группах сообщества W3C, таких как PrivacyCG , имеет решающее значение для влияния на более широкую экосистему браузеров с целью принятия новых веб-технологий.
Privacy Sandbox работает с веб-экосистемой для постоянного развития API, таких как CHIPS, на основе отзывов и участия отрасли. Этот прозрачный и основанный на стандартах подход способствовал внедрению CHIPS в других основных браузерах.
Надежное решение проблем с зависимостями сторонних файлов cookie
Tray поддерживает продавцов и их клиентов на всех типах устройств и браузеров. Предпочтительным был бы подход, основанный исключительно на CHIPS, но были внесены дополнительные изменения для поддержки других браузеров, которые в то время не поддерживали CHIPS.
Подход Tray's к устранению сбоев, вызванных недоступностью 3PC, включал две основные стратегии.
1. Внутренние приложения
Полноценные микросервисы Tray , включая Live Shop, Dropshipping и Invoice Issuer, были обновлены таким образом, чтобы источник встроенного контента наследовал CNAME, установленный продавцом. Проще говоря, встроенный контент был обновлен так, чтобы он стал исходным для страницы, на которой он встроен, что гарантировало отсутствие сбоев из-за изменений сторонних файлов cookie.
2. Сторонние приложения
Для сторонних приложений, доступ к которым осуществляется через Backoffice, Tray реализован более динамичный подход. Вот как это работает:
- Реализация разделенного атрибута: реализация
Partitioned
атрибута cookie была сохранена для доверенных поставщиков , что позволило сторонним приложениям эффективно устанавливать файлы cookie в браузерах, поддерживающих CHIPS. - Когда сторонние файлы cookie блокируются: если браузер пользователя блокирует 3 компьютера, стороннее приложение открывается в новом (собственном) окне. Это позволяет избежать проблем с открытием и обеспечивает непрерывную работу даже при ограничениях 3PC.
- Когда разрешены сторонние файлы cookie: если браузер пользователя разрешает использование 3-х компьютеров, приложение продолжает открываться в рамках iframe, как и раньше.
Визуализация решения
Следующий рисунок иллюстрирует решение. Наследуя основной домен магазина ( merchant.example
), создается впечатление, что все встроенные приложения происходят из одного и того же источника. Это делает все виджеты независимыми друг от друга, а это означает, что ограничения 3PC не имеют значения. Поскольку все эти фреймы становятся первичными друг для друга, принципы конфиденциальности аналогичны принципам других первичных файлов cookie: они доступны только в контексте первой стороны и ограничивают возможность межсайтового отслеживания.
Любые сторонние службы, не принадлежащие Tray используют атрибут Partitioned
для установки файлов cookie CHIPS, что означает, что они также доступны только в том контексте, в котором они были установлены, и ограничивают возможность межсайтового отслеживания.

Итог
- Не существует универсального решения для обеспечения конфиденциальности в Интернете; Существует множество способов добиться беспрепятственного взаимодействия с пользователем, сохраняя при этом конфиденциальность.
- Объединение ресурсов в одном домене верхнего уровня позволяет файлам cookie работать даже при наличии ограничений на использование сторонних файлов cookie.
- CHIPS может быть более простым решением, чем перенос всех ресурсов на один и тот же сайт верхнего уровня.
- Решение Tray's надежно и работает во всех браузерах. Поскольку дополнительные браузеры реализуют поддержку CHIPS , его можно считать надежным кроссбраузерным решением для таких сценариев, как Tray's .
Tray — поставщик системы управления контентом (CMS) для электронной коммерции с более чем 20-летним опытом работы на бразильском розничном рынке. Продавцы управляют интернет-магазинами на базе инфраструктуры Tray's , которая также предоставляет услуги и интеграцию для управления бизнес-логистикой, платежами, рекламными акциями и отчетностью.
Tray входит в группу LWSA и является движущей силой сектора электронной коммерции. Tray доверяют более 180 000 клиентов, которые в совокупности заработали более 3 миллиардов долларов США на GMV в первом квартале 2024 года.

Зависимость от сторонних файлов cookie
Техническая архитектура Tray's использует сторонние файлы cookie (3PC) для предоставления сторонних функций сайтам торговцев, в частности для панели администрирования Backoffice продавца, используемой для управления магазином. Эти файлы cookie необходимы для отображения контента, предоставляемого сторонними приложениями, размещенными в доменах, отличных от домена продавца. Исследование Tray's показало, что запланированные изменения в том, как браузеры обрабатывают 3-ПК, потенциально могут нарушить эту возможность. Поскольку Tray служит критически важной инфраструктурой для многих интернет-магазинов, крайне важно, чтобы бизнес мог продолжаться в обычном режиме, даже несмотря на то, что вносятся серьезные изменения в то, как Chrome и другие браузеры обрабатывают 3-ПК.
В этом тематическом исследовании рассматривается обнаружение Tray's потенциальных сбоев, оценка потенциальных решений и успешное решение, введенное в действие, чтобы убедиться, что их сайты готовы к изменениям в 3PC.
Техническая архитектура
Микросервисы
Tray размещает все приложения витрины и бэк-офиса в своем домене Tray.com.br , и продавцы могут использовать CNAME для обслуживания этих приложений из своего собственного домена. При такой настройке покупатели будут видеть только домен магазина, например Merchant.example. Tray использует архитектуру микросервисов для предоставления функций и возможностей. В этом подходе используются независимые автономные приложения, каждое из которых ориентировано на определенную функцию. Эти микросервисы затем группируются в области в зависимости от их функциональных возможностей:
- Магазин: включает приложения, отвечающие за функции витрины, такие как отображение продуктов, поиск и управление темами.
- Поток покупок: управляет корзиной покупок, процессом оформления заказа и взаимодействием с клиентами во время процесса покупки.
- Управление магазином: предоставляет бэк-офисные приложения для таких задач, как администрирование, отчетность и импорт данных.
- Интеграция: облегчает связь с внешними платформами для включения межрыночных списков, управления логистикой и многого другого.
Приложение бэк-офиса
Backoffice — это основное приложение в рамках Store Management, служащее центральной панелью администрирования виртуального магазина продавца на Tray . С помощью этой панели продавцы могут:
- Зарегистрировать продукты
- Настройте способы доставки и оплаты
- Создавайте рекламные акции
- Управляйте прямыми трансляциями
- Контролировать поток заказов
- Контролировать отчеты о продажах
Поскольку Backoffice объединяет множество микросервисов (некоторые из которых управляются Tray , а некоторые — сторонние компании) в едином интерфейсе, он особенно подвержен сбоям, возникающим из-за изменений в способах обработки сторонних файлов cookie.
CNAME для настройки продавца
Tray использует записи CNAME для плавной интеграции витрин.
При настройке нового магазина продавцы могут настроить CNAME для направления запросов к приложениям, размещенным в домене Tray's , лоток.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 были заблокированы, возникают проблемы при загрузке страниц из разных доменов в IFRAMES, встроенных в бэкэнд -страницы. Это применялось к внутренним доменам, которые принадлежали собственным услугам компании, а также к внешним партнерам, которые разрабатывают приложения, которые интегрируются с Tray , используя свой API.
Например, представьте себе страницу на backoffice.merchant.example
, которая внедряет контент, размещенный в Tray.com.br и других третьих сторонах. Браузеры будут рассматривать этот встроенный контент как третий личный из-за разницы в доменах, потенциально ограничивая его при любых ограничениях 3PC.
Эта установка может привести к нескольким проблемам:
- Сломанные сеансы: заблокированные 3PC могут привести к нарушению затронутых сеансов, фрагментируя опыт пользователя, требуя, чтобы пользователи регистрировали несколько раз, или иным образом нарушая или вызывая несоответствия на страницах Backoffice из -за неисправности iframes.
- Проблемы интеграции: партнерские приложения и внутренние службы, которые интегрируются с бэкэнд Tray's с использованием его API, могут столкнуться с аналогичными трудностями из -за ограничений 3PC.
Следующий рисунок иллюстрирует этот сценарий:
- Пользователь обращается к приложению Backoffice, размещенному на
merchant.example
. - Встроенные приложения находятся в разных доменах-некоторые на
tray.com.br
, которая принадлежит Tray , а другие на доменах сторонних поставщиков (third-party.example
). - Эта разница в доменах вызывает 3PC ограничения, что может вызвать проблемы со встроенными приложениями.

Анализ сторонних зависимостей и решений для печенья
Тестирование критических поездок пользователей
Тестирование и анализ Tray's были направлены на улучшение производительности веб-сайта и пользовательского опыта, с акцентом на сторонние интеграции и подготовку к будущему, где многие пользователи просматривают без 3PC.
Tray использовал инструмент анализа песочниц конфиденциальности (PSAT) и Chrome Devtools для анализа ключевых пользовательских потоков для клиентов и торговцев. Это включало загрузку страницы тестирования в IFRAMES, проверка, оставались ли пользовательские сеансы, и убедиться, что сторонние приложения продолжали функционировать, как и ожидалось. Тестирование охватывало различные пользовательские роли, устройства и браузеры (включая Chrome, Firefox и Safari) для выявления потенциальных проблем совместимости кросс-браузера. Tray использовал инструменты PSAT и Chrome Dev для классификации файлов cookie и оценки их влияния на пользовательский опыт.
Этот анализ был жизненно важным шагом к обеспечению плавного и последовательного пользовательского опыта, адаптируясь к будущему, когда сторонние файлы cookie могут быть ограничены или недоступны.
Анализ решений песочниц конфиденциальности
API доступа к хранилищу
Хотя API доступа к хранилищам (SAA) может потенциально обратиться к разрушениям Tray's и поддерживается всеми основными браузерами, он не был наилучшим образом подходит для бизнеса по двум основным причинам:
- Встроенный контент, необходимый только для доступа к файлам cookie на исходном происхождении, где он был встроен, а не для доступа к одному и тем же файлам cookie на нескольких сайтах.
- Подсказки браузера, связанные с SAA, не были идеальными, тем более что файлы cookie не использовались для отслеживания пользователей на разных сайтах.
ЧИПСЫ
Чипсы предлагали сильное решение с отличным пользовательским опытом для поперечных сайте. Partitioned
атрибут был простым для реализации и не оказало заметного влияния на взаимодействие с пользователями для пользователей в Chrome. Чипсы не поддерживались другими ключевыми браузерами, когда Tray вносит изменения в их службу, поэтому они решили перенести свои собственные и оперативные вставки в один и тот же сайт, что и приложение высшего уровня, чтобы обеспечить постоянный опыт в браузерах. Сторонний встроенный контент опирается на чипы в Chrome и открывает новое окно (первой личный контекст) в других браузерах. Однако с момента первоначальной реализации Tray's Firefox подтвердил планы по доставке чипов в ближайшее время, и Safari начал добавлять поддержку для разделенного атрибута, начиная с их предварительного просмотра технологий.
Мы думали, что чипсы были элегантным решением, и рады видеть, что они принимаются в нескольких браузерах. Мы решили сохранить решение Chips в дополнение к перемещению вещей на первые сайты, чтобы мы могли поддерживать все браузеры еще до того, как они принимают чипсы.
- Такаши Танака, технический директор Tray
Совместимость браузера, W3C и стандарты
Chrome играет ключевую роль в сообществе стандартов. Активное участие в рабочих группах W3C и общественных группах , таких как PrivacyCG , имеет решающее значение для влияния на более широкую экосистему браузера для принятия новых веб -технологий.
Песочница конфиденциальности работает с веб -экосистемой, чтобы постоянно развивать API, такие как чипы, на основе отзывов и вовлеченности в отрасли. Этот прозрачный и основанный на стандартах подход сыграл важную роль в управлении внедрением чипов в других крупных браузерах.
Более долгое решение для сторонних зависимостей печенья
Tray поддерживает торговцев и их клиентов на всех типах устройств и браузеров. Единственный подход на основе чипсов был бы предпочтительным, но были внесены дополнительные изменения для поддержки других браузеров, которые не поддерживали чипы в то время.
Подход Tray's к решению нарушений, вызванных, когда не доступны 3PC, включал две основные стратегии.
1. Внутренние приложения
Полностью управляемые микросервисы Tray , включая живые магазины, Dropshipping и эмитент счетов, были обновлены так, чтобы источник встроенного контента унаследовал CNAME, созданное торговцем. Проще говоря, встроенный контент был обновлен как первой стороны, а страница внедряла его-что не было, что не было сбоев из-за изменений сторонних печенья.
2. Сторонние приложения
Для сторонних приложений, доступных через Backoffice, Tray реализовал более динамичный подход. Вот как это работает:
- Разделенная реализация атрибутов: реализация атрибута Cookie-
Partitioned
Cookie поддерживалась для доверенных поставщиков , что позволяет сторонним приложениям эффективно устанавливать файлы cookie в браузерах, которые поддерживают чипсы. - Когда сторонние файлы cookie заблокированы: если браузер блокирует 3PC, то стороннее приложение открывается в новом (первом) окне. Это позволяет избежать проблем с открытием и обеспечивает дальнейшую работу, даже с ограничениями 3PC.
- Когда разрешены сторонние файлы cookie: если браузер пользователя позволяет 3PCS, приложение продолжает открываться в IfRames, как и раньше.
Визуализация решения
Следующий рисунок иллюстрирует решение. Унаследовав основной домен магазина ( merchant.example
), все встроенные приложения, по -видимому, происходят из одного и того же источника. Это делает все виджеты первыми друг другу, что означает, что ограничения 3PC не являются фактором. Поскольку все эти кадры становятся первыми сторонами друг для друга, принципы конфиденциальности принимают принципы других первых куки: они доступны только в контексте первой стороны и ограничивают потенциал для отслеживания перекрестного сайта.
Любые сторонние сервисы, не принадлежащие Tray используют Partitioned
атрибут для установки cookie cookie, что означает, что они также доступны только в контексте, в котором они были установлены, и ограничивают потенциал отслеживания перекрестных сайтов.

Суть
- В Интернете нет единого решения для конфиденциальности; Есть много способов достичь пользовательского опыта без трения, сохраняя при этом конфиденциальность.
- Консолидация ресурсов в одном домене верхнего уровня позволяет файлам cookie функционировать даже с сторонними ограничениями печенья.
- Чипсы могут быть более простым решением, чем переносить все ресурсы на один и тот же сайт высшего уровня.
- Решение Tray's долговечна и работает через браузеры. Поскольку дополнительные браузеры реализуют поддержку чипов , его можно считать надежным межбрюшным решением для сценариев, таких как Tray's .
Tray - это поставщик системы управления контентом электронной коммерции (CMS) с более чем 20 -летним опытом обслуживания бразильского розничного рынка. Торговцы управляют интернет -магазинами в инфраструктуре Tray's , которая также предоставляет услуги и интеграции для управления бизнес -логистикой, платежами, рекламными акциями и отчетами.
Tray является членом группы LWSA и является движущей силой в секторе электронной коммерции. В первом квартале 2024 года Tray доверяет более 180 000 клиентов, которые в общей сложности генерировали более 3 миллиардов долларов США в GMV.

Полагаться на сторонние печенья
Техническая архитектура Tray's использует сторонние файлы cookie (3PC) для предоставления сторонних функций для торговых сайтов, особенно для панели администрирования бэк-оф продавца, используемой для управления магазинами. Эти файлы cookie необходимы для подачи контента, обслуживаемого из сторонних приложений, которые размещены в доменах, отличных от домена торговца. Исследование Tray's показало, что запланированные изменения в том, как браузеры обрабатывают 3pcs, могут потенциально нарушить эту возможность. Поскольку Tray служит критической инфраструктурой для многих интернет -магазинов, крайне важно, чтобы бизнес мог продолжаться как обычно - даже в то время как вносятся серьезные изменения в отношении того, как Chrome и другие браузеры обрабатывают 3PC.
Это тематическое исследование проходит через обнаружение потенциальных сбоев Tray's , их оценку потенциальных решений и успешное решение, введенное в действие, чтобы убедиться, что их сайты готовы к изменениям до 3pcs.
Техническая архитектура
Микросервисы
Tray размещает все приложения Storefront и Backfice на своем домене, 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 Records функционирует аналогично переадресации вызовов на телефоне. Представьте себе, что вы называете друга в 555-0199, но они не отвечают. Вызов может быть перенаправлен в голосовую почту по другому номеру, например, 555-0100. Тем не менее, вы, звонящий, по -прежнему не знают об этом перенаправлении. Телефон плавно соединяет вас, и приветствие голосовой почты все еще отображает исходный номер вашего друга (555-0199).
Cnames работают так же для веб -сайтов. Когда пользователь посещает веб -сайт продавца (например assets.example.com
example.com
. Но с точки зрения пользователя и браузера все происходит на example.com
. Адресная строка отображает URL -адрес продавца, и пользователь взаимодействует с веб -сайтом, как если бы контент происходил непосредственно из этого домена.
Оценка потенциальных сбоев
Анализ Tray's запланированных изменений в обработке 3PC выявил сбои в приложении BackOffice. Когда 3PC были заблокированы, возникают проблемы при загрузке страниц из разных доменов в IFRAMES, встроенных в бэкэнд -страницы. Это применялось к внутренним доменам, которые принадлежали собственным услугам компании, а также к внешним партнерам, которые разрабатывают приложения, которые интегрируются с Tray , используя свой API.
Например, представьте себе страницу на backoffice.merchant.example
, которая внедряет контент, размещенный в Tray.com.br и других третьих сторонах. Браузеры будут рассматривать этот встроенный контент как третий личный из-за разницы в доменах, потенциально ограничивая его при любых ограничениях 3PC.
Эта установка может привести к нескольким проблемам:
- Сломанные сеансы: заблокированные 3PC могут привести к нарушению затронутых сеансов, фрагментируя опыт пользователя, требуя, чтобы пользователи регистрировали несколько раз, или иным образом нарушая или вызывая несоответствия на страницах Backoffice из -за неисправности iframes.
- Проблемы интеграции: партнерские приложения и внутренние службы, которые интегрируются с бэкэнд Tray's с использованием его API, могут столкнуться с аналогичными трудностями из -за ограничений 3PC.
Следующий рисунок иллюстрирует этот сценарий:
- Пользователь обращается к приложению Backoffice, размещенному на
merchant.example
. - Встроенные приложения находятся в разных доменах-некоторые на
tray.com.br
, которая принадлежит Tray , а другие на доменах сторонних поставщиков (third-party.example
). - Эта разница в доменах вызывает 3PC ограничения, что может вызвать проблемы со встроенными приложениями.

Анализ сторонних зависимостей и решений для печенья
Тестирование критических поездок пользователей
Тестирование и анализ Tray's были направлены на улучшение производительности веб-сайта и пользовательского опыта, с акцентом на сторонние интеграции и подготовку к будущему, где многие пользователи просматривают без 3PC.
Tray использовал инструмент анализа песочниц конфиденциальности (PSAT) и Chrome Devtools для анализа ключевых пользовательских потоков для клиентов и торговцев. Это включало загрузку страницы тестирования в IFRAMES, проверка, оставались ли пользовательские сеансы, и убедиться, что сторонние приложения продолжали функционировать, как и ожидалось. Тестирование охватывало различные пользовательские роли, устройства и браузеры (включая Chrome, Firefox и Safari) для выявления потенциальных проблем совместимости кросс-браузера. Tray использовал инструменты PSAT и Chrome Dev для классификации файлов cookie и оценки их влияния на пользовательский опыт.
Этот анализ был жизненно важным шагом к обеспечению плавного и последовательного пользовательского опыта, адаптируясь к будущему, когда сторонние файлы cookie могут быть ограничены или недоступны.
Анализ решений песочниц конфиденциальности
API доступа к хранилищу
Хотя API доступа к хранилищам (SAA) может потенциально обратиться к разрушениям Tray's и поддерживается всеми основными браузерами, он не был наилучшим образом подходит для бизнеса по двум основным причинам:
- Встроенный контент, необходимый только для доступа к файлам cookie на исходном происхождении, где он был встроен, а не для доступа к одному и тем же файлам cookie на нескольких сайтах.
- Подсказки браузера, связанные с SAA, не были идеальными, тем более что файлы cookie не использовались для отслеживания пользователей на разных сайтах.
ЧИПСЫ
Чипсы предлагали сильное решение с отличным пользовательским опытом для поперечных сайте. Partitioned
атрибут был простым для реализации и не оказало заметного влияния на взаимодействие с пользователями для пользователей в Chrome. Чипсы не поддерживались другими ключевыми браузерами, когда Tray вносит изменения в их службу, поэтому они решили перенести свои собственные и оперативные вставки в один и тот же сайт, что и приложение высшего уровня, чтобы обеспечить постоянный опыт в браузерах. Сторонний встроенный контент опирается на чипы в Chrome и открывает новое окно (первой личный контекст) в других браузерах. Однако с момента первоначальной реализации Tray's Firefox подтвердил планы по доставке чипов в ближайшее время, и Safari начал добавлять поддержку для разделенного атрибута, начиная с их предварительного просмотра технологий.
Мы думали, что чипсы были элегантным решением, и рады видеть, что они принимаются в нескольких браузерах. Мы решили сохранить решение Chips в дополнение к перемещению вещей на первые сайты, чтобы мы могли поддерживать все браузеры еще до того, как они принимают чипсы.
- Такаши Танака, технический директор Tray
Совместимость браузера, W3C и стандарты
Chrome играет ключевую роль в сообществе стандартов. Активное участие в рабочих группах W3C и общественных группах , таких как PrivacyCG , имеет решающее значение для влияния на более широкую экосистему браузера для принятия новых веб -технологий.
Песочница конфиденциальности работает с веб -экосистемой, чтобы постоянно развивать API, такие как чипы, на основе отзывов и вовлеченности в отрасли. Этот прозрачный и основанный на стандартах подход сыграл важную роль в управлении внедрением чипов в других крупных браузерах.
Более долгое решение для сторонних зависимостей печенья
Tray поддерживает торговцев и их клиентов на всех типах устройств и браузеров. Единственный подход на основе чипсов был бы предпочтительным, но были внесены дополнительные изменения для поддержки других браузеров, которые не поддерживали чипы в то время.
Подход Tray's к решению нарушений, вызванных, когда не доступны 3PC, включал две основные стратегии.
1. Внутренние приложения
Полностью управляемые микросервисы Tray , включая живые магазины, Dropshipping и эмитент счетов, были обновлены так, чтобы источник встроенного контента унаследовал CNAME, созданное торговцем. Проще говоря, встроенный контент был обновлен как первой стороны, а страница внедряла его-что не было, что не было сбоев из-за изменений сторонних печенья.
2. Сторонние приложения
Для сторонних приложений, доступных через Backoffice, Tray реализовал более динамичный подход. Вот как это работает:
- Разделенная реализация атрибутов: реализация атрибута Cookie-
Partitioned
Cookie поддерживалась для доверенных поставщиков , что позволяет сторонним приложениям эффективно устанавливать файлы cookie в браузерах, которые поддерживают чипсы. - Когда сторонние файлы cookie заблокированы: если браузер блокирует 3PC, то стороннее приложение открывается в новом (первом) окне. Это позволяет избежать проблем с открытием и обеспечивает дальнейшую работу, даже с ограничениями 3PC.
- Когда разрешены сторонние файлы cookie: если браузер пользователя позволяет 3PCS, приложение продолжает открываться в IfRames, как и раньше.
Визуализация решения
Следующий рисунок иллюстрирует решение. Унаследовав основной домен магазина ( merchant.example
), все встроенные приложения, по -видимому, происходят из одного и того же источника. Это делает все виджеты первыми друг другу, что означает, что ограничения 3PC не являются фактором. Поскольку все эти кадры становятся первыми сторонами друг для друга, принципы конфиденциальности принимают принципы других первых куки: они доступны только в контексте первой стороны и ограничивают потенциал для отслеживания перекрестного сайта.
Любые сторонние сервисы, не принадлежащие Tray используют Partitioned
атрибут для установки cookie cookie, что означает, что они также доступны только в контексте, в котором они были установлены, и ограничивают потенциал отслеживания перекрестных сайтов.

Суть
- В Интернете нет единого решения для конфиденциальности; Есть много способов достичь пользовательского опыта без трения, сохраняя при этом конфиденциальность.
- Консолидация ресурсов в одном домене верхнего уровня позволяет файлам cookie функционировать даже с сторонними ограничениями печенья.
- Чипсы могут быть более простым решением, чем переносить все ресурсы на один и тот же сайт высшего уровня.
- Решение Tray's долговечна и работает через браузеры. Поскольку дополнительные браузеры реализуют поддержку чипов , его можно считать надежным межбрюшным решением для сценариев, таких как Tray's .