Approccio di Tray alle modifiche ai cookie di terze parti

Tray è un fornitore di sistemi di gestione dei contenuti (CMS) per l'e-commerce con oltre 20 anni di esperienza nel mercato di vendita al dettaglio brasiliano. I commercianti gestiscono i propri negozi online sull'infrastruttura di Tray's, che fornisce anche servizi e integrazioni per gestire la logistica, i pagamenti, le promozioni e i report aziendali.

Tray è membro del gruppo LWSA ed è una forza trainante nel settore dell'e-commerce. Tray è la scelta di oltre 180.000 clienti che, nel loro complesso, hanno generato oltre 3 miliardi di dollari di GMV nel primo trimestre del 2024.

Home page del sito web tray.com.br

Dipendenza dai cookie di terze parti

L'architettura tecnica di Tray's utilizza cookie di terze parti per fornire funzionalità di terze parti ai siti dei commercianti, in particolare per il pannello di amministrazione del backoffice del commerciante utilizzato per la gestione del negozio. Questi cookie sono essenziali per il rendering dei contenuti pubblicati da applicazioni di terze parti ospitate su domini diversi da quello del commerciante. La ricerca di Tray's ha rivelato che le modifiche pianificate alla modalità di gestione dei cookie di terze parti da parte dei browser potrebbero potenzialmente interrompere questa funzionalità. Poiché Tray funge da infrastruttura di base per molti rivenditori online, è fondamentale che le attività possano continuare come al solito, anche se vengono apportate modifiche sostanziali alla modalità di gestione dei 3PC da parte di Chrome e di altri browser.

Questo case study illustra la scoperta da parte di Tray's di potenziali interruzioni, la valutazione delle potenziali soluzioni e la soluzione efficace implementata per garantire che i siti siano pronti per le modifiche ai 3PC.

Architettura tecnica

Microservizi

Tray ospita tutte le applicazioni di vetrina e di back-office sul proprio dominio, tray.com.br, e i commercianti possono utilizzare un CNAME per pubblicare queste applicazioni dal proprio dominio personalizzato. Con questa configurazione, gli acquirenti vedranno sempre solo il dominio del negozio, ad esempio merchant.example. Tray sfrutta un'architettura di microservizi per offrire funzionalità e capacità. Questo approccio utilizza applicazioni indipendenti e autosufficienti, ognuna incentrata su una funzione specifica. Questi microservizi vengono poi raggruppati in ambiti in base alle loro funzionalità:

  • Negozio: comprende le applicazioni responsabili delle funzionalità della vetrina, come la visualizzazione dei prodotti, la ricerca e la gestione dei temi.
  • Percorso di acquisto:gestisce il carrello degli acquisti, la procedura di pagamento e le interazioni dei clienti durante il percorso di acquisto.
  • Gestione del negozio:fornisce applicazioni di back-office per attività come amministrazione, generazione di report e importazione di dati.
  • Integrazioni:semplifica le connessioni con piattaforme esterne per attivare schede su più marketplace, gestire la logistica e altro ancora.

Applicazione di backoffice

Backoffice è un'applicazione di base di Gestione negozio e funge da pannello di amministrazione centrale per il negozio virtuale di un venditore su Tray. Tramite questo pannello, i venditori possono:

  • Registra i prodotti
  • Configurare i metodi di spedizione e pagamento
  • Crea promozioni
  • Gestire le trasmissioni in diretta
  • Supervisionare il flusso degli ordini
  • Monitorare i report sulle vendite

Poiché Backoffice riunisce molti microservizi, alcuni gestiti da Tray e altri da terze parti, in un'unica interfaccia, è particolarmente soggetto a interruzioni derivanti da modifiche alla gestione dei cookie di terze parti.

CNAME per la personalizzazione del commerciante

Tray utilizza record CNAME per integrare senza problemi i negozi.

Quando configurano un nuovo negozio, i commercianti possono configurare i CNAME per indirizzare le richieste alle applicazioni ospitate sul dominio Tray's, tray.com.br. Ciò significa che quando un cliente visita il sito web di un commerciante (ad esempio example.com), un record CNAME lo reindirizza al dominio Tray's mantenendo l'URL del commerciante nella barra degli indirizzi. In questo modo, si offre un'esperienza utente fluida in cui i contenuti sembrano essere pubblicati direttamente dal sito web del commerciante.

Informazioni sui CNAME

I record CNAME funzionano in modo simile al inoltro di chiamata su uno smartphone. Immagina di chiamare un amico al numero 555-0199, ma che non risponda. La chiamata potrebbe essere inoltrata alla voicemail su un altro numero, ad esempio 555-0100. Tuttavia, tu, che chiami, non hai assolutamente idea di questo reindirizzamento. Lo smartphone ti mette in contatto senza problemi e nel messaggio di benvenuto della segreteria viene visualizzato ancora il numero originale del tuo amico (555-0199).

I CNAME funzionano allo stesso modo per i siti web. Quando un utente visita il sito web di un commerciante (ad esempio example.com), un record CNAME potrebbe reindirizzare la sua richiesta in background a un altro server, ad esempio assets.example.com. Tuttavia, dal punto di vista dell'utente e del browser, tutto avviene su example.com. La barra degli indirizzi mostra l'URL del commerciante e l'utente interagisce con il sito web come se i contenuti provenissero direttamente da quel dominio.

Valutazione delle potenziali interruzioni

L'analisi Tray's delle modifiche pianificate alla gestione dei 3PC ha rivelato interruzioni nell'applicazione di backoffice. Quando i 3PC sono stati bloccati, si sono verificati problemi durante il caricamento di pagine da domini diversi all'interno di iframe incorporati nelle pagine di backend. Questo valeva per i domini interni, che appartenevano ai servizi della stessa azienda, nonché per i partner esterni che sviluppano applicazioni integrate con Tray utilizzando la relativa API.

Ad esempio, immagina una pagina su backoffice.merchant.example che incorpora contenuti ospitati da tray.com.br e altre terze parti. I browser tratterebbero questi contenuti incorporati come di terze parti a causa della differenza di dominio, limitandoli potenzialmente in base alle eventuali limitazioni relative ai contenuti di terze parti.

Questa configurazione potrebbe causare diversi problemi:

  • Sessioni non funzionanti: i cookie di terze parti bloccati possono causare la interruzione delle sessioni interessate, frammentando le esperienze utente perché richiedono agli utenti di accedere più volte o altrimenti interrompendo o causando incoerenze all'interno delle pagine del backoffice a causa del malfunzionamento degli iframe.
  • Problemi di integrazione: le applicazioni partner e i servizi interni che si integrano con il backend di Tray's utilizzando la relativa API potrebbero riscontrare difficoltà simili a causa delle restrizioni relative ai fornitori di terze parti.

La figura seguente illustra questo scenario:

  • Un utente accede all'applicazione di backoffice ospitata su merchant.example.
  • Le applicazioni incorporate si trovano su domini diversi: alcune su tray.com.br, di proprietà di Tray, e altre su domini di fornitori di terze parti (third-party.example).
  • Questa differenza di dominio attiva le restrizioni 3PC, causando potenzialmente problemi con le applicazioni incorporate.
Diagramma che mostra un esempio di CNAME: i widget di backoffice.merchant.example ereditano il CNAME, quindi sono tutti SameSite per il sito del commerciante

Testare i Critical User Journey

I test e le analisi di Tray's miravano a migliorare il rendimento del sito web e l'esperienza utente, con un'attenzione particolare alle integrazioni di terze parti e alla preparazione per un futuro in cui molti utenti navigheranno senza 3PC.

Tray ha utilizzato Privacy Sandbox Analysis Tool (PSAT) e gli Strumenti per sviluppatori di Chrome per analizzare i flussi utente chiave per clienti e commercianti. Per farlo, abbiamo testato il caricamento delle pagine all'interno degli iframe, verificato se le sessioni utente rimanevano valide e ci siamo assicurati che le applicazioni di terze parti continuassero a funzionare come previsto. I test hanno coperto vari ruoli utente, dispositivi e browser (inclusi Chrome, Firefox e Safari) per identificare potenziali problemi di compatibilità tra browser. Tray ha utilizzato PSAT e gli Strumenti per sviluppatori di Chrome per classificare i cookie e valutarne l'impatto sull'esperienza utente.

Questa analisi è stata un passaggio fondamentale per garantire un'esperienza utente fluida e coerente, adattandosi a un futuro in cui i cookie di terze parti potrebbero essere limitati o non disponibili.

Analisi delle soluzioni Privacy Sandbox

API Storage Access

Sebbene l'API Storage Access (SAA) potesse potenzialmente risolvere le interruzioni Tray's ed è supportata da tutti i browser principali, non era la soluzione migliore per l'attività per due motivi principali:

  1. I contenuti incorporati dovevano accedere solo ai cookie dell'origine in cui erano incorporati, non agli stessi cookie su più siti.
  2. Le richieste del browser associate all'ASA non erano ideali, soprattutto perché i cookie non venivano utilizzati per monitorare gli utenti sui siti.

CHIPS

CHIPS ha offerto una soluzione efficace con un'esperienza utente eccellente per gli embed cross-site. L'attributo Partitioned è stato semplice da implementare e non ha avuto alcun impatto rilevabile sull'interazione degli utenti su Chrome. CHIPS non era supportato da altri browser principali quando Tray stava apportando modifiche al proprio servizio, pertanto ha scelto di spostare gli elementi incorporati di sua proprietà nello stesso sito dell'applicazione di primo livello per offrire un'esperienza coerente su tutti i browser. I contenuti incorporati di terze parti si basano su CHIPS in Chrome e aprono una nuova finestra (contesto proprietario) in altri browser. Tuttavia, dall'implementazione iniziale di Tray's, Firefox ha confermato di voler presto implementare CHIPS e Safari ha iniziato a supportare l'attributo Partizionato, a partire dalla Technology Preview.

Pensavamo che CHIPS fosse una soluzione elegante e siamo felici di vedere che viene adottata su più browser. Abbiamo deciso di mantenere la soluzione CHIPS oltre a spostare le risorse sui siti proprietari per poter supportare tutti i browser anche prima che adottino CHIPS.

- Takashi Tanaka, CTO di Tray

Compatibilità del browser, W3C e standard

Chrome svolge un ruolo fondamentale all'interno della community degli standard. La partecipazione attiva ai gruppi di lavoro e ai gruppi della community del W3C, come il PrivacyCG, è fondamentale per influenzare l'ecosistema dei browser più ampio in modo che adotti nuove tecnologie web.

Privacy Sandbox collabora con l'ecosistema web per evolve continuamente le API come CHIPS in base al feedback e al coinvolgimento del settore. Questo approccio trasparente e basato su standard è stato fondamentale per promuovere l'adozione di CHIPS su altri browser principali.

Tray supporta i commercianti e i loro clienti su tutti i tipi di dispositivi e browser. Avremmo preferito un approccio basato esclusivamente su CHIPS, ma sono state apportate anche modifiche aggiuntive per supportare altri browser che al momento non supportavano CHIPS.

L'approccio di Tray's per risolvere le interruzioni causate dalla mancata disponibilità dei 3PC ha previsto due strategie principali.

1. Applicazioni interne

I microservizi Tray completamente operativi, tra cui Live Shop, Dropshipping e Emittente fattura, sono stati aggiornati in modo che l'origine dei contenuti incorporati ereditasse il CNAME impostato dal commerciante. In parole povere, i contenuti incorporati sono stati aggiornati in modo da essere di proprietà della pagina che li incorpora, garantendo che non si verificassero interruzioni a causa delle modifiche ai cookie di terze parti.

2. Applicazioni di terze parti

Per le applicazioni di terze parti a cui si accede tramite il Backoffice, Tray ha implementato un approccio più dinamico. Ecco come funziona:

  • Implementazione dell'attributo partizionato: l'implementazione dell'attributo cookie Partitioned è stata mantenuta per i fornitori attendibili, consentendo alle applicazioni di terze parti di impostare efficacemente i cookie sui browser che supportano CHIPS.
  • Quando i cookie di terze parti sono bloccati: se il browser dell'utente blocca i 3PC, l'applicazione di terze parti si apre in una nuova finestra (proprietaria). In questo modo si evitano problemi di apertura e si garantisce il funzionamento continuo, anche con le limitazioni del 3PC.
  • Quando i cookie di terze parti sono consentiti: se il browser dell'utente consente i CT, l'applicazione continua ad aprirsi all'interno degli iframe come prima.

Visualizzazione della soluzione

La figura seguente illustra la soluzione. Ereditando il dominio principale del negozio (merchant.example), tutte le applicazioni incorporate sembrano provenire dalla stessa origine. In questo modo, tutti i widget sono proprietari tra loro, ovvero le limitazioni relative ai cookie di terze parti non sono un fattore determinante. Poiché tutti questi frame diventano proprietari tra loro, i principi della privacy assumono quelli di altri cookie proprietari: sono accessibili solo nel contesto proprietario e limitano le potenziali possibilità di monitoraggio tra siti.

Tutti i servizi di terze parti non di proprietà di Tray utilizzano l'attributo Partitioned per impostare i cookie CHIPS, il che significa che sono accessibili solo nel contesto in cui sono stati impostati e limitano il potenziale di monitoraggio tra siti.

Diagramma che mostra esempi di CHIPS: i widget spostati nei domini proprietari possono accedere al cookie jar proprietario; i widget di terze parti utilizzano il cookie jar partizionato.

Il risultato

  • Non esiste una soluzione universale per la privacy sul web; esistono molti modi per offrire esperienze utente senza problemi, preservando al contempo la privacy.
  • Il consolidamento delle risorse nello stesso dominio di primo livello consente ai cookie di funzionare anche con le limitazioni relative ai cookie di terze parti.
  • CHIPS potrebbe essere una soluzione più semplice rispetto alla migrazione di tutte le risorse allo stesso sito di primo livello.
  • La soluzione Tray's è durevole e funziona su tutti i browser. Man mano che altri browser implementano il supporto per CHIPS, questa può essere considerata una soluzione cross-browser affidabile per scenari come Tray's.