Comment Mercado Libre teste la Privacy Sandbox pour mieux respecter la confidentialité de ses clients

Mercado Libre est la principale plate-forme d'e-commerce d'Amérique latine, présente dans 18 pays. Elle dispose d'une infrastructure numérique complexe avec plus de 100 millions d'utilisateurs actifs et propose une gamme variée de services, y compris une place de marché, des paiements (Mercado Pago) et une logistique.

Mercado Libre possède plus de 40 domaines, dont beaucoup ont historiquement reposé sur des cookies tiers pour permettre des fonctionnalités telles que l'authentification des utilisateurs entre les sites et la détection des fraudes.

Mercado Libre a effectué un travail considérable pour identifier les expériences et fonctionnalités utilisateur critiques qui peuvent dépendre de cookies tiers. Leur recherche et leur implémentation d'alternatives aux cookies tiers, y compris les API Privacy Sandbox, permettent de s'assurer que leurs propriétés fonctionnent comme prévu et continuent de proposer une expérience positive aux utilisateurs, que des cookies tiers soient disponibles ou non.

Lisez la suite pour découvrir comment Mercado Libre a réduit sa dépendance aux cookies tiers et protégé la confidentialité de ses clients.

Mercado Libre a pris en compte trois aspects de l'utilisation des cookies tiers:

  1. Mercado Libre s'appuie-t-il sur le partage de cookies intersites entre ses domaines ?
  2. Les services qu'il fournit en tant que tiers dépendent-ils de cookies tiers ?
  3. Les services tiers sur lesquels ils s'appuient seront-ils affectés si les cookies tiers ne sont pas disponibles ?

Évaluer l'impact de l'utilisation des cookies tiers pour des propriétés numériques de cette envergure a nécessité une approche coordonnée, car de nombreuses unités commerciales sont impliquées.

L'équipe de la plate-forme de premier plan de Mercado Libre a mené un audit d'impact et a assuré une communication et une assistance centralisées aux autres équipes. Cela incluait des ressources et des formations pour s'assurer que tous les employés comprenaient les changements nécessaires afin que toutes les équipes puissent adopter les nouvelles pratiques.

Les unités commerciales de Mercado Libre fonctionnent chacune sur des domaines distincts, tels que mercadolibre.com, mercadopago.com et mercadoshops.com.

En effectuant un audit détaillé, il a découvert où le partage de cookies intersites était essentiel pour l'expérience utilisateur dans son écosystème:

  • Authentification des utilisateurs: perturbation potentielle pour une partie des 75 millions d'acheteurs actifs par mois dans 18 pays.
  • Analyse interne: plus de 4 000 analystes métier s'appuient sur des données intersites pour prendre des décisions. Impact potentiel sur le suivi du parcours utilisateur.
  • Prévention de la fraude: indispensable pour sécuriser les flux de paiement lorsque les cookies tiers ne sont pas disponibles (plus de 50 achats par seconde pour Mercado Libre, 244 transactions par seconde pour Mercado Pago).

Cette analyse complète incluait des informations telles que l'équipe, le propriétaire, l'impact commercial, la description du cas d'utilisation, le comportement actuel, les pannes potentielles et la solution proposée pour la Privacy Sandbox.

Cookies partitionnés sur Mercado Libre

Les cookies partitionnés, également appelés CHIPS, permettent aux développeurs d'activer un cookie dans un stockage partitionné, avec des pots de cookies distincts par site de premier niveau.

Utiliser CHIPS pour permettre la détection des fraudes sans cookies tiers

Défi

Mercado Libre utilise des cookies tiers pour offrir une expérience fluide aux utilisateurs qui accèdent à sa plate-forme de paiement, à la fois pour les paiements effectués directement sur la plate-forme et pour les intégrations transparentes qui utilisent Mercado Pago comme système de traitement des paiements. Par exemple, ils utilisent des cookies tiers dans des mécanismes permettant d'identifier quand une carte de crédit est utilisée à partir d'un appareil connu de l'utilisateur, et ainsi d'éviter les fraudes aux cartes de crédit.

Les informations sur l'appareil sont l'un des principaux signaux de données utilisés par les modèles de machine learning de Mercado Libre pour décider d'approuver ou non un paiement. Par conséquent, l'absence de ces informations pour un nombre important d'utilisateurs peut entraîner une baisse significative du taux d'approbation des paiements.

Solution

Pour répondre aux limites des cookies tiers, Mercado Libre a testé CHIPS, une solution qui définit un cookie unique pour chaque site Web intégré à sa plate-forme de paiement. L'objectif est de permettre à Mercado Libre de conserver plusieurs informations pour chaque magasin.

Dans ce cas, CHIPS a permis à Mercado Libre de proposer une expérience fluide et efficace aux clients réguliers, même lorsque les cookies tiers sont bloqués.

Présentation détaillée technique

La méthode d'intégration la plus courante pour utiliser Mercado Pago comme système de traitement des paiements consiste à utiliser JavaScript, qui intègre à la fois un module de tokenisation des données de carte et un module de prévention des fraudes. Le module de prévention des fraudes utilise des cookies tiers pour associer les paiements aux appareils des utilisateurs.

Auparavant, Mercado Pago pouvait identifier et suivre les appareils des utilisateurs dans les magasins à l'aide de cookies tiers, comme illustré dans le diagramme suivant.

Schéma non partitionné utilisé par Mercado Pago par le passé.
Schéma non partitionné utilisé par Mercado Pago par le passé.

Aujourd'hui, les cookies partitionnés permettent à Mercado Libre de conserver l'identification de l'appareil en définissant un cookie distinct pour chaque site de premier niveau. Comme illustré dans l'image suivante, cette approche protège la confidentialité, car elle limite le partage d'informations entre les magasins. Les cookies partitionnés sont utilisés lorsque les cookies tiers ne sont pas disponibles. Cela limite le partage d'informations entre les magasins, ce qui améliore la confidentialité des utilisateurs.

Cookies partitionnés, comme ceux utilisés par Mercado Libre actuellement.
Cookies partitionnés, comme ceux utilisés par Mercado Libre actuellement.

Développement précoce

Mercado Libre a d'abord désactivé les cookies tiers dans Chrome et vérifié que ses cookies n'étaient pas correctement définis sur les sites où Mercado Libre agissait en tant que fournisseur tiers. Mercado Libre a ensuite mis à jour ces cookies pour les partitionner. Cette modification a permis de confirmer que les cookies partitionnés pouvaient être définis dans Chrome, même si un utilisateur avait désactivé les cookies tiers. Mercado Libre a ensuite ajouté l'en-tête Set-Cookie et n'a rencontré aucune erreur, en suivant les instructions de conception de la sécurité CHIPS.

Efficacité de l'entreprise

Mercado Libre a déjà commencé à utiliser CHIPS pour les intégrations de Mercado Pago et les boutiques Mercado avec des domaines personnalisés. Mercado Libre stocke désormais un cookie partitionné supplémentaire, ainsi qu'un cookie non partitionné standard, sur les appareils de ses utilisateurs.

L'implémentation de CHIPS pour Mercado Libre a été simple.

Tester l'efficacité de CHIPS sur les modèles de fraude basés sur le machine learning

Mercado Libre prévoit d'arrêter d'envoyer le signal de cookie standard non partitionné pour un groupe de contrôle afin de simuler un scénario où les cookies tiers sont bloqués et d'utiliser à la place des cookies partitionnés (CHIPS). Initialement, ce groupe de contrôle inclura une partie de la population d'un site. Mercado Libre prévoit d'augmenter progressivement la part et le nombre de sites au fur et à mesure des tests d'efficacité.

L'efficacité sera mesurée en fonction de l'approbation des paiements du groupe de contrôle par rapport à une période comparable précédente.

Tests précédents

Mercado Libre a mené un test similaire sur un groupe de contrôle pour vérifier s'il pouvait identifier les mêmes appareils à l'aide de CHIPS au lieu de cookies non partitionnés et mesurer l'âge de l'appareil (cookie).

Le groupe de contrôle était composé de marchands ciblés en Argentine et au Brésil. Les deux groupes se sont comportés de la même manière.

En conclusion, Mercado Libre a pu confirmer l'identité d'environ 70% des appareils utilisant CHIPS, ce qui signifie que les 30% restants étaient soit de nouveaux utilisateurs, soit des cas présentant un comportement inattendu.

Conclusion sur l'implémentation de CHIPS

Mercado Libre s'engage à protéger la confidentialité des utilisateurs, même si cela implique de faire un compromis entre la confidentialité et la facilité d'utilisation. L'implémentation de CHIPS a été simple et a permis de minimiser l'impact de ce compromis sur le même site. Mercado Libre explore toujours d'autres solutions Privacy Sandbox, comme les jetons d'état privés, qui pourraient combler entièrement l'écart d'expérience, offrant ainsi le meilleur des deux mondes: confidentialité et utilité.

Les ensembles de sites Web associés permettent à une entreprise de déclarer des relations entre des sites afin que les navigateurs autorisent un accès limité des cookies tiers à des fins spécifiques.

Défi

Lorsqu'un nouvel appareil accède à l'un des domaines détenus et gérés par Mercado Libre, Meli utilise un cookie pour comprendre l'activité de l'appareil sur différents domaines, tels que mercadolibre.com et mercadopago.com.

Solution

Pour faire face aux situations où les cookies tiers ne sont pas disponibles, Mercado Libre a implémenté le RWS pour tous ses domaines destinés aux clients où des cookies tiers étaient utilisés, en respectant la restriction d'un domaine principal et de cinq autres domaines associés dans un seul ensemble.

Détails techniques: trouver les bons domaines à inclure

Lors de la recherche des domaines à inclure dans l'ensemble, Mercado Libre a constaté que de nombreux domaines comportaient des cookies obsolètes qui n'étaient plus utilisés. Ces domaines ont été exclus de l'ensemble.

L'équipe de la plate-forme de front-end Web était chargée de créer et de gérer les ensembles de sites Web associés de Mercado Libre. (Vous trouverez l'ensemble complet sur le dépôt GitHub de l'ensemble de sites Web associés.)

 {
      "contact": "infraestructura@mercadolibre.com",
      "primary": "https://mercadolibre.com",
      "associatedSites": [
        "https://mercadolivre.com",
        ...
      ],
      "rationaleBySite": {
        "https://mercadolivre.com": "Mercado Libre in Brazil",
        ...
      },
      "ccTLDs": {
        "https://mercadolibre.com": [
          "https://mercadolibre.com.ar",
     ...
        ],
        "https://mercadolivre.com": [
          "https://mercadolivre.com.br"
        ],
        ...
      }
    },

Deux semaines seulement après l'approbation de l'envoi, le jeu a été mis en production.

Conditions requises

Pour que le serveur puisse définir des cookies, il doit être compatible avec CORS, et les requêtes doivent être multi-origines et inclure des identifiants:

res.setHeader('Access-Control-Allow-Credentials', 'true');
res.setHeader('Access-Control-Allow-Origin', `${req.headers.origin}`);

Les cookies doivent être configurés avec les éléments suivants:

  • Secure
  • SameSite=None

Lorsque les cookies tiers ne sont pas disponibles par défaut, le client doit vérifier s'il est autorisé à accéder aux cookies non partitionnés à l'aide de navigator.permissions.query(), puis demander des autorisations d'accès au stockage pour chaque domaine intégré à l'aide de requestStorageAccessFor(). De plus, une interaction de l'utilisateur avec l'écran (par exemple, un clic ou une action au clavier) est nécessaire pour que l'agent utilisateur puisse demander l'autorisation pour la première fois.

Surmonter les défis liés aux RWS

Les processus de propagation des cookies existants, tels que les pixels d'image et l'utilisation de l'API Storage Access, étaient soumis à des limites en raison de l'interaction requise de l'utilisateur. C'était le cas de la connexion persistante des utilisateurs sur les domaines de Mercado Libre, qui est interrompue lorsque les utilisateurs désactivent les cookies tiers.

Les ensembles de sites Web associés et les technologies Privacy Sandbox ne sont pas conçus pour remplacer les cookies tiers et ne sont pas forcément compatibles avec certains cas d'utilisation:

  • Pixels de l'image

    • Mercado Libre peut ajouter l'attribut crossorigin="use-credentials". Toutefois, la dépendance à l'interaction de l'utilisateur (les utilisateurs cliquent sur un lien) signifie que Mercado Libre ne peut pas garantir que le cookie sera défini. Les pixels sont également annulés en cas de navigation entre les écrans: lorsque Chrome détecte une navigation, il annule toutes les requêtes de ressources de la page actuelle pour commencer à charger la nouvelle.
  • sendBeacon()

    • crossorigin ne peut pas être configuré. Les requêtes échouent et les cookies ne sont pas envoyés.
  • Redirections avec des pixels sendBeacon() ou d'image

    • Étant donné qu'ils dépendent de l'interaction de l'utilisateur, il n'est pas possible de définir des cookies via des redirections vers des écrans intermédiaires entre différents domaines qui exécutent JavaScript.

Limite WebView

L'API Permissions n'est pas disponible dans WebView. Mercado Libre a donc été contraint d'implémenter une logique selon laquelle l'API Storage Access ne se lance que là où l'API Permissions est disponible (partout sauf dans WebView). De plus, requestStorageAccessFor() n'est pas compatible avec Safari ni Firefox pour le moment.

Mercado Libre continue d'utiliser la détection de fonctionnalités si nécessaire, quelle que soit la plate-forme.

Solution universelle

Mercado Libre devait utiliser fetch() et {keepalive: true, credentials: 'include'}. Ils pouvaient ainsi configurer le CORS, inclure des identifiants et s'assurer qu'une requête était effectuée en arrière-plan sans être annulée par le navigateur.

fetch(domain, {
  keepalive: true,
  credentials: 'include',
});

// or

fetch(domain, {
  method: 'POST'
  body: data,
  keepalive: true,
  credentials: 'include',
});

Exemple complet:

const TP_DOMAINS = ['https://mercadolibre.com',
                   'https://www.mercadoshops.com.ar',
                   'https://www.mercadopago.com',
                   'https://www.mercadopago.com.ar'];

if ('requestStorageAccessFor' in document) {
   // Check the permission to see if storage access is already available.
   let storageAccessPermission = await navigator.permissions.query({
       name: 'top-level-storage-access',
       requestedOrigin: TP_DOMAINS[0]
   })

   // If the permission has already been granted, request storage access.
   if (storageAccessPermission.state === 'granted') {
       requestStorageAccessForDomains();
   }

   // If the state "prompt" is returned, a storage access request must be triggered by user gesture.
   else if (storageAccessPermission.state === 'prompt') {
       document.addEventListener('click', requestStorageAccessForDomains, { capture: true });
       document.addEventListener('keydown', requestStorageAccessForDomains, { capture: true });
   }
} else {
   console.log('requestStorageAccessFor is not supported');
}

function requestStorageAccessForDomains() {
   // Request storage access for each domain.
   TP_DOMAINS.forEach(rSAFor)

   // Clean up listeners so they are not called again.
   document.removeEventListener('click', requestStorageAccessForDomains);
   document.removeEventListener('keydown', requestStorageAccessForDomains);
}

function rSAFor(domain) {
   document.requestStorageAccessFor(domain).then(
       success => { setCookie(domain); },
       err => { console.log('requestStorageAccessFor error: ' + err); }
   );
}

function setCookie(domain) {
   const url = new URL(domain);
   const hostname = url.hostname.split('.').slice(1).join('.');
   fetch(domain + '/pixel.gif?name=_d2id&value=DONE&max_age=94608000&domain=.' + hostname, {
       keepalive: true,
       credentials: 'include',
   });
}

Tester dans Chrome

Vous pouvez tester un ensemble de sites Web associés en local en définissant un indicateur Chrome. Par exemple, pour la démonstration sur related-website-sets.glitch.me:

--use-related-website-set="{\"primary\": \"https://related-website-sets.glitch.me\", \"associatedSites\": [\"https://rws-member-1.glitch.me\"]}"
https://related-website-sets.glitch.me/

Conclusion sur l'implémentation de l'ensemble de sites Web associés

L'implémentation de la RWS pour les sites volumineux n'est pas simple. Mercado Libre n'a eu besoin que des ressources d'un seul développeur, mais le déploiement dans 18 pays a pris environ trois mois.

Notre recommandation pour ceux qui souhaitent implémenter des RWS: commencez tôt. N'attendez pas pour implémenter le RWS. Mercado Libre a dû modifier les cookies côté serveur et côté client, ajouter de nouveaux en-têtes, apporter des modifications au backend et mettre à jour JavaScript.

Dernières remarques et prochaines étapes

L'implémentation réussie des API Privacy Sandbox par Mercado Libre a démontré son engagement à s'adapter à l'évolution du paysage de la confidentialité. En testant et en gérant de manière proactive l'utilisation des cookies tiers, Mercado Libre a conservé des fonctionnalités commerciales essentielles, telles que l'analyse et la prévention des fraudes, tout en améliorant la confidentialité des utilisateurs et en assurant la conformité avec les réglementations en constante évolution. Cette étude de cas fournit des insights précieux aux organisations qui cherchent à gérer la transition vers un avenir où la disponibilité des cookies tiers ne sera plus une évidence.