Tray adalah penyedia Sistem Pengelolaan Konten (CMS) e-commerce dengan pengalaman lebih dari 20 tahun melayani pasar retail Brasil. Penjual menjalankan toko online di infrastruktur Tray's, yang juga menyediakan layanan dan integrasi untuk mengelola logistik, pembayaran, promosi, dan pelaporan bisnis.
Tray adalah anggota grup LWSA, dan merupakan pendorong di sektor e-commerce. Tray dipercaya oleh lebih dari 180.000 klien yang, secara gabungan, menghasilkan GMV lebih dari US$3 miliar pada kuartal pertama tahun 2024.

Ketergantungan pada cookie pihak ketiga
Arsitektur teknis Tray's menggunakan cookie pihak ketiga (3PC) untuk menyediakan fungsi pihak ketiga ke situs penjual, terutama untuk panel administrasi Backoffice penjual yang digunakan untuk pengelolaan toko. Cookie ini sangat penting untuk merender konten yang ditayangkan dari aplikasi pihak ketiga yang dihosting di domain selain domain penjual. Riset Tray's mengungkapkan bahwa perubahan yang direncanakan pada cara browser menangani 3PC berpotensi mengganggu kemampuan ini. Karena Tray berfungsi sebagai infrastruktur penting bagi banyak retailer online, bisnis harus dapat terus berjalan seperti biasa—bahkan saat perubahan utama dilakukan pada cara Chrome dan browser lainnya menangani 3PC.
Studi kasus ini membahas penemuan Tray's tentang potensi gangguan, evaluasi mereka terhadap solusi potensial, dan solusi yang berhasil diterapkan untuk memastikan situs mereka siap menghadapi perubahan pada 3PC.
Arsitektur teknis
Microservice
Tray menghosting semua aplikasi etalase dan back-office di domainnya, tray.com.br, dan penjual dapat menggunakan CNAME untuk menayangkan aplikasi ini dari domain kustom mereka sendiri. Dengan penyiapan ini, pembeli hanya akan melihat domain toko, seperti merchant.example. Tray memanfaatkan arsitektur microservice untuk memberikan fitur dan kemampuan. Pendekatan ini menggunakan aplikasi mandiri yang independen yang masing-masing berfokus pada fungsi tertentu. Microservice ini kemudian dikelompokkan ke dalam cakupan berdasarkan kemampuan fungsional:
- Toko: Mencakup aplikasi yang bertanggung jawab atas fitur halaman retailer seperti tampilan produk, penelusuran, dan pengelolaan tema.
- Alur Pembelian: Mengelola keranjang belanja, proses checkout, dan interaksi pelanggan selama perjalanan pembelian.
- Pengelolaan Toko: Menyediakan aplikasi back-office untuk tugas seperti administrasi, pelaporan, dan impor data.
- Integrasi: Memfasilitasi koneksi dengan platform eksternal untuk mengaktifkan listingan lintas marketplace, mengelola logistik, dan lainnya.
Aplikasi backoffice
Backoffice adalah aplikasi inti dalam Pengelolaan Toko, yang berfungsi sebagai panel administrasi pusat untuk toko virtual penjual di Tray. Melalui panel ini, penjual dapat:
- Mendaftarkan produk
- Mengonfigurasi metode pengiriman dan pembayaran
- Buat promosi
- Mengelola siaran live
- Mengelola alur pesanan
- Memantau laporan penjualan
Karena Backoffice menggabungkan banyak microservice–beberapa dioperasikan oleh Tray dan beberapa dioperasikan oleh pihak ketiga–dalam satu antarmuka, Backoffice sangat rentan terhadap gangguan yang dihasilkan dari perubahan cara cookie pihak ketiga ditangani.
CNAME untuk penyesuaian penjual
Tray menggunakan data CNAME untuk mengintegrasikan halaman beranda dengan lancar.
Saat menyiapkan toko baru, penjual dapat
menyiapkan CNAME
untuk mengarahkan permintaan ke aplikasi yang dihosting di domain Tray's,
tray.com.br. Artinya, saat pelanggan mengunjungi
situs penjual (seperti example.com
), data CNAME akan mengalihkan mereka ke
domain Tray's sekaligus mempertahankan URL penjual di kolom URL. Hal ini
akan memberikan pengalaman pengguna yang lancar karena konten akan ditayangkan langsung
dari situs penjual.
Memahami CNAME
Data CNAME berfungsi mirip dengan penerusan panggilan di ponsel. Bayangkan Anda menelepon teman di 555-0199, tetapi dia tidak menjawab. Panggilan mungkin diteruskan ke pesan suara di nomor lain, seperti 555-0100. Namun, Anda, sebagai pemanggil, tetap tidak mengetahui pengalihan ini. Ponsel akan menghubungkan Anda dengan lancar, dan ucapan pesan suara masih menampilkan nomor asli teman Anda (555-0199).
CNAME berfungsi dengan cara yang sama untuk situs. Saat pengguna mengunjungi situs
penjual (seperti example.com
), data CNAME dapat mengalihkan permintaan mereka
di balik layar ke server lain, seperti assets.example.com
. Namun, dari perspektif pengguna dan browser, semuanya terjadi di example.com
. Kolom alamat menampilkan URL penjual, dan pengguna berinteraksi dengan situs seolah-olah konten berasal langsung dari domain tersebut.
Menilai potensi gangguan
Tray's Analisis perubahan yang direncanakan pada penanganan 3PC mengungkapkan gangguan pada aplikasi Backoffice. Saat 3PC diblokir, masalah muncul saat memuat halaman dari domain yang berbeda dalam iframe yang disematkan di halaman backend. Hal ini berlaku untuk domain internal, yang merupakan milik layanan perusahaan sendiri, serta untuk partner eksternal yang mengembangkan aplikasi yang terintegrasi dengan Tray menggunakan API-nya.
Misalnya, bayangkan halaman di backoffice.merchant.example
yang menyematkan
konten yang dihosting oleh tray.com.br dan pihak ketiga lainnya.
Browser akan memperlakukan konten tersemat ini sebagai pihak ketiga karena perbedaan
domain, yang berpotensi membatasinya berdasarkan batasan 3PC.
Penyiapan ini dapat menyebabkan beberapa masalah:
- Sesi rusak: 3PC yang diblokir dapat menyebabkan sesi yang terpengaruh rusak, sehingga memecah pengalaman pengguna dengan mengharuskan pengguna login beberapa kali, atau mengganggu atau menyebabkan inkonsistensi dalam halaman Backoffice karena iframe yang tidak berfungsi.
- Tantangan integrasi: Aplikasi partner dan layanan internal yang terintegrasi dengan backend Tray's menggunakan API-nya dapat menghadapi kesulitan yang serupa karena pembatasan 3PC.
Gambar berikut mengilustrasikan skenario ini:
- Pengguna mengakses aplikasi Backoffice yang dihosting di
merchant.example
. - Aplikasi tersemat berada di domain yang berbeda – beberapa di
tray.com.br
, yang dimiliki oleh Tray, dan lainnya di domain vendor pihak ketiga (third-party.example
). - Perbedaan domain ini memicu batasan 3PC, yang berpotensi menyebabkan masalah pada aplikasi tersemat.

Menganalisis dependensi dan solusi cookie pihak ketiga
Menguji perjalanan penting pengguna
Pengujian dan analisis Tray's bertujuan untuk meningkatkan performa situs dan pengalaman pengguna, dengan fokus pada integrasi pihak ketiga dan persiapan untuk masa depan saat banyak pengguna menjelajah tanpa 3PC.
Tray menggunakan Privacy Sandbox Analysis Tool (PSAT) dan Chrome DevTools untuk menganalisis alur penggunaan utama bagi pelanggan dan penjual. Hal ini mencakup pengujian pemuatan halaman dalam iframe, memeriksa apakah sesi pengguna tetap valid, dan memastikan aplikasi pihak ketiga terus berfungsi seperti yang diharapkan. Pengujian mencakup berbagai peran pengguna, perangkat, dan browser (termasuk Chrome, Firefox, dan Safari) untuk mengidentifikasi potensi masalah kompatibilitas lintas browser. Tray menggunakan PSAT dan Chrome Dev Tools untuk mengategorikan cookie dan menilai dampaknya terhadap pengalaman pengguna.
Analisis ini adalah langkah penting untuk memastikan pengalaman pengguna yang lancar dan konsisten, yang beradaptasi dengan masa depan saat cookie pihak ketiga mungkin dibatasi atau tidak tersedia.
Menganalisis solusi Privacy Sandbox
Storage Access API
Meskipun Storage Access API (SAA) berpotensi mengatasi gangguan Tray's dan didukung oleh semua browser utama, API ini bukan yang paling cocok untuk bisnis karena dua alasan utama:
- Konten tersemat hanya perlu mengakses cookie di origin tempat konten tersemat, bukan untuk mengakses cookie yang sama di beberapa situs.
- Permintaan browser yang terkait dengan SAA tidak ideal, terutama karena cookie tidak digunakan untuk melacak pengguna di seluruh situs.
CHIP
CHIPS menawarkan solusi yang kuat dengan pengalaman pengguna yang sangat baik untuk penyematan lintas situs. Atribut Partitioned
mudah diterapkan dan tidak memiliki dampak yang jelas pada interaksi pengguna
untuk pengguna di Chrome. CHIPS tidak didukung oleh browser utama lainnya saat Tray
membuat perubahan pada layanannya, sehingga mereka memilih untuk memindahkan
embed yang dimiliki dan dioperasikan ke situs yang sama dengan aplikasi tingkat teratas untuk
memberikan pengalaman yang konsisten di seluruh browser. Konten tersemat pihak ketiga
bergantung pada CHIPS di Chrome dan membuka jendela baru (konteks pihak pertama) di browser
lain. Namun, sejak penerapan awal Tray's, Firefox telah mengonfirmasi
rencana untuk segera mengirimkan CHIPS, dan Safari telah mulai
menambahkan dukungan
untuk atribut Partisi, dimulai dengan Pratinjau Teknologi mereka.
Kami menganggap CHIPS sebagai solusi yang elegan dan senang melihatnya diadopsi di beberapa browser. Kami memutuskan untuk mempertahankan solusi CHIPS selain memindahkan berbagai hal ke situs pihak pertama sehingga kami dapat mendukung semua browser bahkan sebelum mereka mengadopsi CHIPS.
— Takashi Tanaka, CTO Tray
Kompatibilitas browser, W3C, dan standar
Chrome berperan penting dalam komunitas standar. Partisipasi aktif dalam Kelompok Kerja dan Grup Komunitas W3C, seperti PrivacyCG, sangat penting untuk memengaruhi ekosistem browser yang lebih luas agar mengadopsi teknologi web baru.
Privacy Sandbox bekerja sama dengan ekosistem web untuk terus mengembangkan API seperti CHIPS berdasarkan masukan dan interaksi industri. Pendekatan transparan dan berbasis standar ini telah berperan penting dalam mendorong adopsi CHIPS di browser utama lainnya.
Solusi yang andal untuk dependensi cookie pihak ketiga
Tray mendukung penjual dan pelanggan mereka di semua jenis perangkat dan browser. Pendekatan berbasis CHIPS saja akan lebih disukai, tetapi perubahan tambahan juga dilakukan untuk mendukung browser lain yang tidak mendukung CHIPS pada saat itu.
Pendekatan Tray's untuk mengatasi gangguan yang disebabkan saat 3PC tidak tersedia melibatkan dua strategi utama.
1. Aplikasi internal
Layanan mikro Tray yang dioperasikan sepenuhnya—termasuk Live Shop, Dropshipping, dan Penerbit Faktur—diupdate sehingga sumber konten tersemat akan mewarisi CNAME yang disiapkan oleh penjual. Sederhananya, konten tersemat diperbarui menjadi pihak pertama dengan halaman yang menyematkannya—memastikan tidak ada gangguan akibat perubahan cookie pihak ketiga.
2. Aplikasi pihak ketiga
Untuk aplikasi pihak ketiga yang diakses melalui Backoffice, Tray menerapkan pendekatan yang lebih dinamis. Berikut caranya:
- Implementasi atribut yang dipartisi: Implementasi
atribut cookie
Partitioned
dipertahankan untuk vendor tepercaya, sehingga aplikasi pihak ketiga dapat menetapkan cookie secara efektif di browser yang mendukung CHIPS. - Jika cookie pihak ketiga diblokir: Jika browser pengguna memblokir 3PC, aplikasi pihak ketiga akan terbuka di jendela baru (pihak pertama). Hal ini menghindari masalah pembukaan dan memastikan operasi berlanjut, bahkan dengan pembatasan 3PC.
- Jika cookie pihak ketiga diizinkan: Jika browser pengguna mengizinkan 3PC, aplikasi akan terus terbuka dalam iframe seperti sebelumnya.
Memvisualisasikan solusi
Gambar berikut mengilustrasikan solusinya. Dengan mewarisi domain utama
store (merchant.example
), semua aplikasi tersemat tampaknya berasal dari
sumber yang sama. Hal ini membuat semua widget menjadi pihak pertama satu sama lain,
yang berarti batasan 3PC tidak menjadi faktor. Karena semua frame ini
menjadi pihak pertama satu sama lain, prinsip privasi mengikuti prinsip cookie
pihak pertama lainnya: cookie ini hanya dapat diakses dalam konteks pihak pertama dan
membatasi potensi pelacakan lintas situs.
Setiap layanan pihak ketiga yang tidak dimiliki oleh Tray menggunakan atribut Partitioned
untuk
menetapkan cookie CHIPS, yang berarti bahwa cookie tersebut juga hanya dapat diakses dalam konteks
tempat cookie tersebut ditetapkan dan membatasi potensi pelacakan lintas situs.

Kesimpulan
- Tidak ada solusi satu ukuran untuk privasi di web; ada banyak cara untuk mencapai pengalaman pengguna yang lancar sekaligus menjaga privasi.
- Menggabungkan resource ke dalam domain level teratas yang sama memungkinkan cookie berfungsi bahkan dengan pembatasan cookie pihak ketiga.
- CHIPS mungkin merupakan solusi yang lebih mudah daripada memigrasikan semua resource ke situs tingkat atas yang sama.
- Solusi Tray's andal dan berfungsi di seluruh browser. Saat browser tambahan menerapkan dukungan untuk CHIPS, CHIPS dapat dianggap sebagai solusi lintas browser yang andal untuk skenario seperti Tray's.