Tray to dostawca systemu zarządzania treścią (CMS) dla e-commerce z ponad 20-letnim doświadczeniem w obsłudze brazylijskiego rynku detalicznego. Sprzedawcy prowadzą sklepy internetowe w infrastrukturze Tray's, która zapewnia też usługi i integracje do zarządzania logistyką, płatnościami, promocjami i raportowaniem.
Tray należy do grupy LWSA i jest siłą napędową w sektorze e-commerce. Tray korzysta z usług ponad 180 tysięcy klientów, którzy w pierwszym kwartale 2024 r. wygenerowali łącznie ponad 3 mld USD GMV.

Używanie plików cookie innych firm
Tray'sArchitektura techniczna wykorzystuje pliki cookie innych firm (3PC) do udostępniania funkcji innych firm w witrynach sprzedawców, w szczególności w panelu administracyjnym backoffice służącym do zarządzania sklepem. Te pliki cookie są niezbędne do renderowania treści pochodzących z aplikacji innych firm, które są hostowane w domenach innych niż domena sprzedawcy. Tray'sBadania wykazały, że planowane zmiany sposobu obsługi 3 PC przez przeglądarki mogą zakłócić tę funkcję. Ponieważ Tray stanowi kluczową infrastrukturę dla wielu sprzedawców internetowych, ważne jest, aby firma mogła działać jak zwykle, nawet gdy wprowadzane są istotne zmiany w sposobie obsługi 3PC w Chrome i innych przeglądarkach.
W tym opracowaniu omawiamy Tray's odkrywanie potencjalnych zakłóceń, ich ocenę, a także skuteczne rozwiązanie, które pozwoliło przygotować witryny do wprowadzenia zmian w ramach 3 PC.
Architektura techniczna
Mikroserwisy
Tray hostuje wszystkie aplikacje sklepu i back-office w swojej domenie tray.com.br, a sprzedawcy mogą używać rekordu CNAME, aby udostępniać te aplikacje z własnej domeny niestandardowej. Dzięki temu kupujący będą widzieć tylko domenę sklepu, np. sprzedawca.example. Tray korzysta z architektury mikrousług, aby udostępniać funkcje i możliwości. W tym podejściu używane są niezależne, samowystarczalne aplikacje, z których każda skupia się na określonej funkcji. Następnie te mikrousługi są grupowane w zakresy na podstawie ich funkcji:
- Sklep: obejmuje aplikacje odpowiedzialne za funkcje witryny sklepowej, takie jak wyświetlanie produktów, wyszukiwanie i zarządzanie motywami.
- Proces zakupu: zarządza koszykiem, procesem płatności i interakcjami z klientem podczas procesu zakupu.
- Zarządzanie sklepem:zawiera aplikacje administracyjne do wykonywania zadań takich jak zarządzanie, raportowanie i import danych.
- Integracje: ułatwiają połączenia z zewnętrznymi platformami, aby umożliwić wyświetlanie ofert na wielu platformach, zarządzanie logistyką i inne działania.
Aplikacja backoffice
Backoffice to główna aplikacja w ramach zarządzania sklepem, która pełni funkcję centralnego panelu administracyjnego wirtualnego sklepu sprzedawcy w Tray. W tym panelu sprzedawcy mogą:
- Rejestrowanie produktów
- Konfigurowanie form dostawy i płatności
- Zorganizuj promocję
- Zarządzanie transmisjami na żywo
- Nadzór nad procesem składania zamówień
- Monitorowanie raportów sprzedaży
Backoffice łączy wiele mikrousług (niektóre obsługiwane przez Tray, a niektóre przez firmy zewnętrzne) w jednym interfejsie, dlatego jest szczególnie podatny na zakłócenia wynikające ze zmian w sposobie obsługi plików cookie innych firm.
Nazwy CNAME dostosowane do potrzeb sprzedawcy
Tray używa rekordów CNAME do płynnej integracji frontów sklepu.
Podczas konfigurowania nowego sklepu sprzedawcy mogą konfigurować rekordy CNAME, aby kierować żądania do aplikacji hostowanych w domenie Tray's, tray.com.br. Oznacza to, że gdy klient odwiedza witrynę sprzedawcy (np. example.com
), rekord CNAME przekierowuje go do domeny Tray's, zachowując URL sprzedawcy na pasku adresu. Dzięki temu użytkownik nie odczuwa żadnych zakłóceń, ponieważ treści są wyświetlane bezpośrednio z witryny sprzedawcy.
Informacje o rekordach CNAME
Rekordy CNAME działają podobnie jak przekierowywanie połączeń na telefonie. Wyobraź sobie, że dzwonisz do znajomego pod numer 555-0199, ale nie odpowiada. Połączenie może zostać przekierowane na pocztę głosową pod innym numerem, np. 555-0100. Ty, jako dzwoniący, nie masz jednak pojęcia o tym przekierowaniu. Telefon połączy Cię z numerem, a po uruchomieniu poczty głosowej usłyszysz oryginalny numer Twojego znajomego (555-0199).
W przypadku witryn rekordy CNAME działają tak samo. Gdy użytkownik odwiedza witrynę sprzedawcy (np. example.com
), rekord CNAME może przekierować jego żądanie za kulisami do innego serwera, np. assets.example.com
. Z punktu widzenia użytkownika i przeglądarki wszystko odbywa się na poziomie example.com
. Na pasku adresu wyświetlany jest adres URL sprzedawcy, a użytkownik może wchodzić w interakcje ze stroną tak, jakby pochodziła ona bezpośrednio z tej domeny.
Ocena potencjalnych zakłóceń
Tray's analiza planowanych zmian w obsługiwaniu 3PC ujawniła zakłócenia w aplikacji Backoffice. Po zablokowaniu 3 PC wystąpiły problemy z wczytywaniem stron z różnych domen w elementach iframe umieszczonych na stronach backendu. Dotyczyło to domen wewnętrznych należących do usług firmy, a także partnerów zewnętrznych, którzy opracowują aplikacje integrowane z Tray za pomocą interfejsu API.
Wyobraź sobie na przykład stronę na backoffice.merchant.example
, która zawiera treści hostowane przez tray.com.br i inne osoby trzecie.
Ze względu na różnicę domen przeglądarki traktowałyby te treści jako pochodzące od osoby trzeciej, co mogłoby ograniczyć ich wyświetlanie zgodnie z ograniczeniami dotyczącymi treści pochodzących od osób trzecich.
Taka konfiguracja może powodować kilka problemów:
- Zakłócone sesje: zablokowane 3PC mogą spowodować przerwanie sesji, fragmentaryczne wyświetlanie treści i wymaganie wielokrotnego logowania się przez użytkowników lub w inny sposób zakłócić działanie stron Backoffice lub spowodować niespójności z powodu nieprawidłowego działania ramek iFrame.
- Problemy z integracją: aplikacje partnerskie i usługi wewnętrzne, które integrują się z backendem Tray's za pomocą interfejsu API, mogą napotkać podobne trudności z powodu ograniczeń związanych z 3PC.
Ten rysunek przedstawia taki scenariusz:
- Użytkownik uzyskuje dostęp do aplikacji Backoffice hostowanej na
merchant.example
. - Umieszczone aplikacje znajdują się w różnych domenach – niektóre w domenie
tray.com.br
, która należy do firmy Tray, a inne w domenach zewnętrznych dostawców (third-party.example
). - Ta różnica w domenie powoduje ograniczenia 3PC, co może powodować problemy z osadzonymi aplikacjami.

Analiza zależności od plików cookie innych firm i rozwiązań
Testowanie najważniejszych ścieżek użytkownika
Tray'sTesty i analizy miały na celu poprawę wydajności witryny oraz wygody użytkowników, a także przygotowanie się na przyszłość, w której wielu użytkowników będzie przeglądać strony bez urządzeń mobilnych innych firm.
Tray używał narzędzia Privacy Sandbox Analysis Tool (PSAT) i Narzędzi deweloperskich w Chrome, aby przeanalizować najważniejsze ścieżki użytkowników na potrzeby klientów i sprzedawców. Polegało ono na testowaniu wczytywania stron w elementach iframe, sprawdzaniu, czy sesje użytkowników pozostają ważne, i upewnieniu się, że aplikacje innych firm nadal działają zgodnie z oczekiwaniami. Testy obejmowały różne role użytkowników, urządzenia i przeglądarki (w tym Chrome, Firefox i Safari), aby wykryć potencjalne problemy z kompatybilnością w różnych przeglądarkach. Trayużyła PSAT i narzędzi dla programistów Chrome, aby skategoryzować pliki cookie i ocenić ich wpływ na wygodę użytkownika.
Ta analiza była ważnym krokiem w kierunku zapewnienia płynnego i spójnego działania usługi w przyszłości, gdy pliki cookie innych firm mogą być ograniczone lub niedostępne.
Analiza rozwiązań w Piaskownicy prywatności
Interfejs Storage Access API
Chociaż interfejs Storage Access API (SAA) mógłby potencjalnie rozwiązać problemy z Tray's i jest obsługiwany przez wszystkie główne przeglądarki, nie był najlepszym rozwiązaniem dla firmy z 2 głównych powodów:
- Umieszczone treści potrzebują dostępu tylko do plików cookie w źródle, w którym zostały umieszczone, a nie do tych samych plików cookie w wielu witrynach.
- Komunikaty przeglądarki związane z usługą SAA nie były idealne, zwłaszcza że pliki cookie nie były używane do śledzenia użytkowników w różnych witrynach.
CHIPS
CHIPS to solidne rozwiązanie zapewniające użytkownikom doskonałe wrażenia podczas umieszczania treści w różnych witrynach. Atrybut Partitioned
był łatwy do wdrożenia i nie miał żadnego zauważalnego wpływu na interakcje użytkowników z Chrome. Gdy Tray wprowadzała zmiany w swojej usłudze, inne kluczowe przeglądarki nie obsługiwały jeszcze technologii CHIPS, więc firma zdecydowała się przenieść elementy wbudowane, które są jej własnością i zarządzane przez nią, do tej samej witryny co aplikacja najwyższego poziomu, aby zapewnić spójne działanie w różnych przeglądarkach. Treści zewnętrzne umieszczane w ramach aplikacji korzystają z usługi CHIPS w Chrome i otwierają nowe okno (kontekst domeny) w innych przeglądarkach. Od czasu wdrożenia Tray's Firefox potwierdził jednak, że wkrótce udostępni CHIPS, a Safari zaczął dodawać obsługę atrybutu partycji, zaczynając od wersji Technology Preview.
Uważamy, że CHIPS to eleganckie rozwiązanie, i jesteśmy zadowoleni, że jest ono stosowane w wielu przeglądarkach. Postanowiliśmy zachować rozwiązanie CHIPS, a także przenieść niektóre funkcje do witryn własnych, abyśmy mogli obsługiwać wszystkie przeglądarki, nawet jeśli nie wprowadzą one jeszcze rozwiązania CHIPS.
— Takashi Tanaka, CTO, Tray
Zgodność z przeglądarkami, W3C i standardami
Chrome odgrywa kluczową rolę w społeczności zajmującej się standardami. Aktywna udział w grupach roboczych i grupach społecznościowych W3C, takich jak PrivacyCG, ma kluczowe znaczenie dla szerszego ekosystemu przeglądarek, ponieważ umożliwia wdrażanie nowych technologii internetowych.
Piaskownica prywatności współpracuje z ekosystemem internetu, aby stale ulepszać interfejsy API, takie jak CHIPS, na podstawie opinii i zaangażowania branży. To przejrzyste podejście oparte na standardach przyczyniło się do przyjęcia CHIPS w innych popularnych przeglądarkach.
Trwałe rozwiązanie problemu zależności od plików cookie innych firm
Tray obsługuje sprzedawców i ich klientów na wszystkich typach urządzeń i przeglądarek. Preferowane byłoby podejście oparte wyłącznie na protokole CHIPS, ale wprowadziliśmy też dodatkowe zmiany, aby obsługiwać inne przeglądarki, które w tym czasie nie obsługiwały tego protokołu.
Tray's metoda rozwiązania problemów spowodowanych brakiem dostępności 3 PC opierała się na 2 głównych strategiach.
1. Aplikacje wewnętrzne
W pełni zarządzane mikrousługi Tray, w tym Live Shop, Dropshipping i Invoice Issuer, zostały zaktualizowane tak, aby źródło osadzonego materiału odziedziczyło nazwę CNAME skonfigurowaną przez sprzedawcę. Krótko mówiąc, umieszczone treści zostały zaktualizowane, aby były własnością strony, na której się znajdują. Dzięki temu nie było żadnych zakłóceń spowodowanych zmianami w plikach cookie innych firm.
2. Aplikacje innych firm
W przypadku aplikacji innych firm, do których uzyskuje się dostęp przez Backoffice, Tray wdrożył bardziej dynamiczne podejście. Jak to działa:
- Wdrażanie atrybutu z partycją: implementacja atrybutu
Partitioned
cookie została zachowana dla zaufanych dostawców, co umożliwia aplikacjom innych firm skuteczne ustawianie plików cookie w przeglądarkach obsługujących CHIPS. - Gdy pliki cookie innych firm są zablokowane: jeśli przeglądarka użytkownika blokuje pliki cookie innych firm, aplikacja innej firmy otwiera się w nowym oknie (własnym). Pozwala to uniknąć problemów z otwieraniem i zapewnia ciągłość działania nawet przy ograniczeniach 3PC.
- Gdy pliki cookie innych firm są dozwolone: jeśli przeglądarka użytkownika zezwala na pliki cookie innych firm, aplikacja będzie się otwierać w elementach iframe tak jak do tej pory.
Wizualizacja rozwiązania
Na rysunku poniżej przedstawiono rozwiązanie. Dziedziczenie głównej domeny sklepu (merchant.example
) sprawia, że wszystkie osadzone aplikacje wyglądają tak, jakby pochodziły z tego samego źródła. Dzięki temu wszystkie widżety są ze sobą w relacji źródłowej, co oznacza, że ograniczenia dotyczące 3 PC nie mają znaczenia. Ponieważ wszystkie te ramki stają się własnymi plikami cookie, zasady ochrony prywatności stają się takimi jak w przypadku innych własnych plików cookie: są dostępne tylko w kontekście własnych plików cookie i ograniczają możliwość śledzenia między witrynami.
Wszystkie usługi firm zewnętrznych, które nie należą do Tray, używają atrybutu Partitioned
do ustawiania plików cookie CHIPS, co oznacza, że są one dostępne tylko w kontekście, w którym zostały ustawione, i ograniczają możliwości śledzenia między witrynami.

Podsumowanie
- Nie ma uniwersalnego rozwiązania dotyczącego prywatności w internecie. Istnieje jednak wiele sposobów na zapewnienie użytkownikom płynnego działania przy jednoczesnym zachowaniu prywatności.
- Konsolidowanie zasobów w ramach tej samej domeny najwyższego poziomu pozwala plikom cookie działać nawet w przypadku ograniczeń dotyczących plików cookie innych firm.
- Użycie usługi CHIPS może być łatwiejszym rozwiązaniem niż przenoszenie wszystkich zasobów do tej samej witryny najwyższego poziomu.
- Tray's to trwałe rozwiązanie, które działa we wszystkich przeglądarkach. W miarę jak kolejne przeglądarki będą obsługiwać CHIPS, będzie ono stanowić niezawodne rozwiązanie wspólne dla wielu przeglądarek w przypadkach takich jak Tray's.