L'approche de Tray concernant les modifications apportées aux cookies tiers

Tray est un fournisseur de systèmes de gestion de contenu (CMS) d'e-commerce qui compte plus de 20 ans d'expérience sur le marché brésilien du commerce. Les marchands gèrent leurs boutiques en ligne sur l'infrastructure Tray's, qui fournit également des services et des intégrations pour gérer la logistique, les paiements, les promotions et les rapports de leur entreprise.

Tray est membre du groupe LWSA et est un moteur du secteur de l'e-commerce. Tray est approuvé par plus de 180 000 clients qui, ensemble, ont généré plus de 3 milliards de dollars de GMV au premier trimestre 2024.

Page d'accueil du site Web tray.com.br

Recours aux cookies tiers

L'architecture technique Tray's utilise des cookies tiers pour fournir des fonctionnalités tierces aux sites marchands, en particulier pour le panneau d'administration du back-office du marchand utilisé pour la gestion des magasins. Ces cookies sont essentiels pour afficher le contenu diffusé à partir d'applications tierces hébergées sur des domaines autres que celui du marchand. Les recherches Tray's ont révélé que les modifications prévues de la façon dont les navigateurs gèrent les 3PC pourraient potentiellement perturber cette fonctionnalité. Étant donné que Tray sert d'infrastructure critique pour de nombreux marchands en ligne, il est impératif que les activités puissent se poursuivre comme d'habitude, même si des modifications majeures sont apportées à la façon dont Chrome et les autres navigateurs gèrent les 3PC.

Cette étude de cas décrit la découverte par Tray's des perturbations potentielles, l'évaluation des solutions potentielles et la solution mise en place pour s'assurer que ses sites sont prêts à changer de 3PC.

Architecture technique

Microservices

Tray héberge toutes les applications de vitrine et de back-office sur son domaine, tray.com.br. Les marchands peuvent utiliser un CNAME pour diffuser ces applications à partir de leur propre domaine personnalisé. Avec cette configuration, les clients ne verront jamais que le domaine de la boutique, par exemple merchant.example. Tray s'appuie sur une architecture de microservices pour fournir des fonctionnalités. Cette approche utilise des applications indépendantes et autonomes, chacune axée sur une fonction spécifique. Ces microservices sont ensuite regroupés dans des portées en fonction de leurs fonctionnalités:

  • Store:désigne les applications responsables des fonctionnalités de la vitrine, comme l'affichage des produits, la recherche et la gestion des thèmes.
  • Parcours d'achat:gère le panier, le processus de paiement et les interactions avec les clients tout au long du parcours d'achat.
  • Gestion de magasin:fournit des applications de back-office pour des tâches telles que l'administration, la création de rapports et l'importation de données.
  • Intégrations:facilite les connexions avec des plates-formes externes pour permettre la diffusion de fiches sur plusieurs places de marché, gérer la logistique, etc.

Application de back-office

Le back-office est une application de base de la gestion de magasin. Il sert de panneau d'administration central au magasin virtuel d'un vendeur sur Tray. Grâce à ce panneau, les vendeurs peuvent:

  • Enregistrer des produits
  • Configurer les modes de livraison et de paiement
  • Créer des promotions
  • Gérer les diffusions en direct
  • Surveiller le flux des commandes
  • Surveiller les rapports sur les ventes

Étant donné que le back-office rassemble de nombreux microservices (certains gérés par Tray et d'autres par des tiers) dans une seule interface, il est particulièrement sujet aux perturbations résultant des modifications apportées à la gestion des cookies tiers.

CNAME pour la personnalisation des marchands

Tray utilise des enregistrements CNAME pour intégrer facilement les vitrines.

Lors de la configuration d'un nouveau magasin, les marchands peuvent configurer des CNAME pour rediriger les requêtes vers les applications hébergées sur le domaine Tray's, tray.com.br. Cela signifie que lorsqu'un client accède au site Web d'un marchand (par exemple, example.com), un enregistrement CNAME le redirige vers le domaine Tray's tout en conservant l'URL du marchand dans la barre d'adresse. Cela offre une expérience utilisateur fluide, car le contenu semble être diffusé directement depuis le site Web du marchand.

Comprendre les CNAME

Les enregistrements CNAME fonctionnent comme le transfert d'appels sur un téléphone. Imaginez que vous appeliez un ami au 555-0199, mais qu'il ne réponde pas. L'appel peut être transféré vers la messagerie vocale sur un autre numéro, par exemple 555-0100. Toutefois, vous, l'appelant, n'êtes pas du tout au courant de cette redirection. Le téléphone vous met en relation facilement, et le message d'accueil de la messagerie vocale affiche toujours le numéro d'origine de votre ami (555-0199).

Les CNAME fonctionnent de la même manière pour les sites Web. Lorsqu'un utilisateur accède au site Web d'un marchand (par exemple, example.com), un enregistrement CNAME peut rediriger sa requête en coulisses vers un autre serveur, comme assets.example.com. Toutefois, du point de vue de l'utilisateur et du navigateur, tout se passe sur example.com. La barre d'adresse affiche l'URL du marchand, et l'utilisateur interagit avec le site Web comme si le contenu provenait directement de ce domaine.

Évaluer les perturbations potentielles

L'analyse Tray's des modifications prévues concernant la gestion des PGC a révélé des perturbations dans l'application Backoffice. Lorsque les cookies tiers étaient bloqués, des problèmes survenaient lors du chargement de pages provenant de différents domaines dans des iFrames intégrés aux pages backend. Cela s'appliquait aux domaines internes, qui appartenaient aux propres services de l'entreprise, ainsi qu'aux partenaires externes qui développent des applications qui s'intègrent à Tray à l'aide de son API.

Par exemple, imaginez une page sur backoffice.merchant.example qui intègre du contenu hébergé par tray.com.br et d'autres tiers. Les navigateurs traiteraient ce contenu intégré comme tiers en raison de la différence de domaine, ce qui pourrait le limiter en fonction des restrictions applicables aux tiers.

Cette configuration peut entraîner plusieurs problèmes:

  • Sessions non fonctionnelles:les cookies tiers bloqués peuvent entraîner la non-fonctionnalité des sessions concernées, ce qui fragmente l'expérience utilisateur en obligeant les utilisateurs à se connecter plusieurs fois, ou perturbe ou provoque des incohérences dans les pages du back-office en raison de l'inefficacité des iFrames.
  • Défis d'intégration:les applications partenaires et les services internes qui s'intègrent au backend Tray's à l'aide de son API peuvent rencontrer des difficultés similaires en raison des restrictions des tiers.

La figure suivante illustre ce scénario:

  • Un utilisateur accède à l'application de back-office hébergée sur merchant.example.
  • Les applications intégrées résident sur différents domaines, certaines sur tray.com.br, qui appartient à Tray, et d'autres sur des domaines de fournisseurs tiers (third-party.example).
  • Cette différence de domaine déclenche des restrictions de 3PC, ce qui peut entraîner des problèmes avec les applications intégrées.
Schéma montrant un exemple de CNAME: les widgets de backoffice.merchant.example héritent du CNAME, ils sont donc tous SameSite par rapport au site du marchand

Tester les critical user journeys

Les tests et l'analyse Tray's visaient à améliorer les performances du site Web et l'expérience utilisateur, en mettant l'accent sur les intégrations tierces et la préparation à un avenir où de nombreux utilisateurs navigueront sans cookies tiers.

Tray a utilisé Privacy Sandbox Analysis Tool (PSAT) et les outils pour les développeurs Chrome pour analyser les principaux flux utilisateur pour les clients et les marchands. Cela impliquait de tester le chargement de la page dans les iFrames, de vérifier si les sessions utilisateur restaient valides et de s'assurer que les applications tierces continuaient de fonctionner comme prévu. Les tests ont porté sur différents rôles d'utilisateur, appareils et navigateurs (y compris Chrome, Firefox et Safari) afin d'identifier les problèmes de compatibilité potentiels entre les navigateurs. Tray a utilisé PSAT et les outils pour les développeurs Chrome pour catégoriser les cookies et évaluer leur impact sur l'expérience utilisateur.

Cette analyse était une étape essentielle pour garantir une expérience utilisateur fluide et cohérente, en s'adaptant à un avenir où les cookies tiers pourraient être limités ou indisponibles.

Analyser les solutions de la Privacy Sandbox

API Storage Access

Bien que l'API Storage Access (SAA) puisse potentiellement résoudre les interruptions Tray's et soit compatible avec tous les principaux navigateurs, elle n'était pas la solution la plus adaptée à l'entreprise pour deux raisons principales:

  1. Le contenu intégré n'avait besoin que d'accéder aux cookies de l'origine où il était intégré, et non aux mêmes cookies sur plusieurs sites.
  2. Les invites du navigateur associées à la SAA n'étaient pas idéales, en particulier parce que les cookies n'étaient pas utilisés pour suivre les utilisateurs sur les sites.

CHIPS

CHIPS proposait une solution efficace avec une excellente expérience utilisateur pour les intégrations intersites. L'attribut Partitioned était simple à implémenter et n'avait aucun impact perceptible sur l'interaction utilisateur dans Chrome. CHIPS n'était pas compatible avec d'autres navigateurs clés lorsque Tray apportait des modifications à son service. Tray a donc choisi de déplacer ses éléments intégrés gérés et détenus sur le même site que l'application de niveau supérieur afin de fournir une expérience cohérente entre les navigateurs. Le contenu intégré tiers s'appuie sur CHIPS dans Chrome et ouvre une nouvelle fenêtre (contexte propriétaire) dans d'autres navigateurs. Depuis l'implémentation initiale de Tray's, Firefox a confirmé son intention de déployer CHIPS prochainement, et Safari a commencé à prendre en charge l'attribut partitionné, à partir de sa version Preview technologique.

Nous pensions que CHIPS était une solution élégante et nous sommes ravis de voir qu'elle est adoptée dans plusieurs navigateurs. Nous avons décidé de conserver la solution CHIPS en plus de déplacer des éléments vers les sites propriétaires afin de prendre en charge tous les navigateurs, même avant qu'ils n'adoptent CHIPS.

— Takashi Tanaka, directeur de la technologie de Tray

Compatibilité avec les navigateurs, W3C et normes

Chrome joue un rôle central au sein de la communauté des normes. La participation active aux groupes de travail et aux groupes de la communauté du W3C, tels que le PrivacyCG, est essentielle pour influencer l'écosystème des navigateurs plus large afin qu'il adopte de nouvelles technologies Web.

La Privacy Sandbox collabore avec l'écosystème Web pour faire évoluer en permanence les API telles que CHIPS en fonction des commentaires et de l'engagement des acteurs du secteur. Cette approche transparente et basée sur les normes a été déterminante pour l'adoption de CHIPS dans les autres principaux navigateurs.

Tray est compatible avec les marchands et leurs clients sur tous les types d'appareils et de navigateurs. Une approche uniquement basée sur CHIPS aurait été préférable, mais d'autres modifications ont également été apportées pour prendre en charge d'autres navigateurs qui ne prenaient pas en charge CHIPS à l'époque.

L'approche Tray's pour résoudre les perturbations causées lorsque les PGC ne sont pas disponibles impliquait deux stratégies principales.

1. Applications internes

Les microservices Tray entièrement gérés, y compris Live Shop, Dropshipping et Émetteur de factures, ont été mis à jour afin que la source du contenu intégré hérite du CNAME configuré par le marchand. En d'autres termes, le contenu intégré a été mis à jour pour être propriétaire de la page qui l'intègre, ce qui garantit qu'il n'y a pas de perturbations dues aux modifications des cookies tiers.

2. Applications tierces

Pour les applications tierces accessibles via le back-office, Tray a implémenté une approche plus dynamique. Le principe est le suivant :

  • Implémentation d'attributs partitionnés:l'implémentation de l'attribut de cookie Partitioned a été maintenue pour les fournisseurs de confiance, ce qui permet aux applications tierces de définir efficacement des cookies sur les navigateurs compatibles avec CHIPS.
  • Lorsque les cookies tiers sont bloqués:si le navigateur de l'utilisateur bloque les cookies tiers, l'application tierce s'ouvre dans une nouvelle fenêtre (propriétaire). Cela évite les problèmes d'ouverture et garantit le fonctionnement continu, même avec des restrictions de tiers.
  • Lorsque les cookies tiers sont autorisés:si le navigateur de l'utilisateur autorise les cookies tiers, l'application continue de s'ouvrir dans des iFrames comme auparavant.

Visualiser la solution

La figure suivante illustre la solution. En héritant du domaine principal de la plate-forme (merchant.example), toutes les applications intégrées semblent provenir de la même source. Tous les widgets sont donc propriétaires les uns des autres, ce qui signifie que les restrictions des cookies tiers ne sont pas prises en compte. Étant donné que tous ces cadres deviennent propriétaires les uns des autres, les principes de confidentialité reprennent ceux des autres cookies propriétaires: ils ne sont accessibles que dans le contexte propriétaire et limitent le potentiel de suivi intersites.

Tous les services tiers qui ne sont pas la propriété de Tray utilisent l'attribut Partitioned pour définir des cookies CHIPS. Cela signifie qu'ils ne sont également accessibles que dans le contexte dans lequel ils ont été définis et qu'ils limitent le potentiel de suivi intersites.

Diagramme illustrant des exemples de CHIPS: les widgets déplacés vers des domaines propriétaires peuvent accéder au cookie jar propriétaire ; les widgets tiers utilisent un cookie jar partitionné.

En bref

  • Il n'existe pas de solution universelle pour la confidentialité sur le Web. Il existe de nombreuses façons d'offrir une expérience utilisateur fluide tout en préservant la confidentialité.
  • La consolidation des ressources dans le même domaine de premier niveau permet aux cookies de fonctionner, même avec des restrictions de cookies tiers.
  • CHIPS peut être une solution plus simple que de migrer toutes les ressources vers le même site de niveau supérieur.
  • La solution Tray's est durable et fonctionne dans tous les navigateurs. À mesure que d'autres navigateurs implémentent la compatibilité avec CHIPS, il peut être considéré comme une solution inter-navigateur fiable pour des scénarios comme Tray's.