Présentation des URL sélectionnées

Select URL vous permet de choisir le contenu à afficher à un utilisateur en fonction de ses données Shared Storage, sans révéler les données stockées sous-jacentes.

Si vous souhaitez afficher du contenu basé sur des données multisites de manière respectueuse de la confidentialité, vous pouvez utiliser l'API Select URL. L'API Select URL est idéale pour les cas d'utilisation suivants :

  • Tester le contenu A/B pour une expérience utilisateur cohérente sur plusieurs sites.
  • Afficher un bouton de connexion différent pour les utilisateurs qui ont un compte et ceux qui n'en ont pas.
  • Faire tourner les créations publicitaires pour limiter la fréquence à laquelle un utilisateur voit la même annonce sur plusieurs sites.

Qu'est-ce que l'API Select URL ?

L'API Select URL vous permet de choisir entre un ensemble d'URL en fonction des données multisites. L'API est basée sur le stockage partagé et utilise un SharedStorageWorklet pour lire les données multisites disponibles et sélectionner l'une des URL fournies. L'URL sélectionnée est renvoyée à l'appelant de manière à ce qu'elle ne puisse pas être lue, sauf dans un cadre clôturé. L'URL peut également être affichée dans un iFrame jusqu'en 2026 au moins.

Diagramme montrant l'iframe shoes.example intégré aux sites de différents éditeurs, y compris news.example et blog.example. Le site shoes.com peut accéder à son propre stockage non partitionné depuis chaque site de premier niveau.

Dans le diagramme précédent, le site shoes.example peut être intégré à d'autres sites d'éditeurs tels que news.example et accéder aux mêmes données à l'aide de l'URL de sélection avec stockage partagé pour choisir le contenu approprié à intégrer.

Fonctionnement de l'option "Sélectionner une URL"

Vous pouvez utiliser l'API Select URL pour sélectionner une URL à afficher dans un cadre clôturé ou un iframe à l'aide de données multisites. Utilisez JavaScript pour lire et écrire des données multisites dans Shared Storage, puis sélectionnez une URL dans une liste fournie en fonction de vos données stockées.

Tout site ou toute origine enregistrés peuvent écrire des données dans le stockage partagé. Les sites ne peuvent ensuite lire ces données qu'avec l'API Select URL.

L'URL affichée peut inclure n'importe quel type de contenu : annonces, articles, images, HTML, incitations à l'action (comme des boutons), etc.

Dans cet exemple, vous gérez un site de voyages et diffusez une campagne publicitaire avec trois créations différentes. Vous souhaitez séquencer ces créations en fonction des interactions des utilisateurs (vues ou clics).

Trois créations publicitaires, qui sont diffusées auprès des utilisateurs en fonction de leurs interactions précédentes.
La première création pour un nouveau spectateur indique "Partez à l'aventure". L'utilisateur voit ensuite une création "Découvrez nos séjours du week-end" sans avoir cliqué sur la première. Après avoir visionné ou cliqué sur la deuxième création, les utilisateurs sont invités à "Cliquer pour obtenir votre remise sur l'hôtel" dans la troisième création. S'il clique sur la première annonce, la prochaine qu'il verra sera la troisième création.

Lorsqu'un site observe pour la première fois un emplacement publicitaire gagnant, vous pouvez stocker un ID et un état de clic pour cette création dans le stockage partagé.

Exemple :

await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');

Cela signifie que lorsque vous remportez une enchère publicitaire sur d'autres sites que cet utilisateur consulte, vous pouvez diffuser une annonce différente en fonction de ces données.

Procédure pas à pas de Shared Storage avec trois créations publicitaires et une interaction utilisateur.

Votre code JavaScript s'exécute dans un SharedStorageWorklet pour récupérer ces informations, mais votre code ne peut pas interagir ni communiquer en dehors de l'iframe ou du cadre clôturé sur la page parente.

Par exemple, vous pouvez tester quel article serait le plus performant dans un contexte intégré. Pour tester cela, vous pouvez attribuer un utilisateur à un groupe de test lorsque vous le voyez sur votre site, puis stocker l'ID de ce groupe dans Shared Storage pour y accéder dans un contexte multisite. Sur un autre site, vous pouvez utiliser l'API Select URL pour choisir l'URL la plus appropriée à afficher dans un cadre clôturé, en fonction du groupe de test de l'utilisateur tel qu'il est stocké dans Shared Storage.

L'option "Sélectionner une URL" vous permet de prendre des décisions éclairées en fonction des données multisites, sans partager d'informations utilisateur (comme l'historique de navigation ou d'autres informations personnelles) avec un site d'intégration ni exfiltrer de données vers vos propres serveurs.

Budgets

Pour réduire le risque de fuite de données intersites, l'API Select URL utilise un système de budgétisation avec une combinaison de budgets à long terme et à court terme :

  • Budget à long terme : le budget à long terme est de 12 bits par site appelant et par jour lorsque vous utilisez selectURL(). Ce budget n'est débité que si le frame hébergeant l'URL sélectionnée effectue une navigation de premier niveau, où le coût est calculé comme suit : log2(number of URLs). Par exemple, si vous fournissez huit URL au choix, le coût est de trois bits. Le budget restant pour la journée est calculé comme suit : 12 - (sum of bits deducted in the last 24 hours). S'il ne reste pas assez de budget, l'URL par défaut (la première de la liste) est renvoyée et 1 bit est enregistré si l'utilisateur accède à l'URL par défaut.
  • Budgets à court terme : les budgets à court terme sont des limites supplémentaires par chargement de page jusqu'à ce que les cadres clôturés soient entièrement appliqués et que les rapports au niveau des événements soient disponibles. Un budget de 6 bits par site appelant et par chargement de page limite la quantité de données qu'un site appelant peut divulguer à l'aide de selectURL(). Il existe également un budget de 12 bits au total par chargement de page, qui est une limite combinée pour tous les sites appelants sur une page.

    Les requêtes enregistrées vous permettent de réutiliser un résultat selectURL() précédent sur la même page, ce qui réduit l'utilisation du budget à court terme. Lorsque selectURL() est appelé pour la première fois avec un nom de requête enregistré, l'index obtenu est stocké pendant toute la durée de vie de la page. Lorsque selectURL() est appelé avec le même nom de requête enregistrée pour les appels de suivi, l'index stocké est renvoyé et l'opération enregistrée n'est pas exécutée. Dans ce cas, le budget n'est débité que lors de la première utilisation, mais pas lors des réutilisations sur la même page, car aucune nouvelle information n'est révélée.

    Vous pouvez implémenter des requêtes enregistrées en ajoutant la propriété savedQuery avec le nom de requête de votre choix à l'objet d'options, comme illustré dans cet exemple.

    const topProductUrls = [
      { url: 'https://ad.example/default-top-product.html' },
      { url: 'https://ad.example/experiment-top-product.html' }];
    const relatedProductUrls = [
      { url: 'https://ad.example/default-related-product.html' },
      { url: 'https://ad.example/experiment-related-product.html' }];
    
    // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'`
    // on this page, so it will be charged to both per-page budgets.
    const topProductsConfig = await sharedStorage.selectURL(
      'productExperiment', topProductUrls, {
        savedQuery: 'control_or_experiment',
        keepAlive: true,
        resolveToConfig: true
    });
    document.getElementById('topProductsFencedFrame').config = topProductsConfig;
    
    // This next call with this savedQuery won't charge either of the per-page budgets.
    const relatedProductConfig = await sharedStorage.selectURL(
      'productExperiment', relatedProductUrls, {
        savedQuery: 'control_or_experiment',
        resolveToConfig: true
    });
    document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
    

Sélectionner les cas d'utilisation de l'API URL

Si vous créez un site Web avec des fonctionnalités qui doivent fonctionner sur différents domaines, vous pouvez être confronté à l'un des cas d'utilisation suivants :

  • Faire tourner les créations publicitaires : limitez la fréquence à laquelle un utilisateur voit la même annonce sur plusieurs sites en stockant des données telles que l'ID de la création, le nombre de vues et l'interaction de l'utilisateur. Cela permet de déterminer les créations que les utilisateurs voient sur différents sites. Cela vous permet d'équilibrer les vues et d'éviter la sursaturation de certains contenus afin de limiter une éventuelle expérience utilisateur négative. Pour en savoir plus sur ce cas d'utilisation, consultez Faire tourner les créations publicitaires.
  • Sélectionner la création publicitaire par fréquence : stockez le nombre de vues du navigateur dans le stockage partagé pour limiter la fréquence à laquelle un utilisateur voit la même annonce sur plusieurs sites. Pour en savoir plus sur ce cas d'utilisation, consultez Sélectionner une création publicitaire par fréquence.
  • Personnalisez l'expérience utilisateur pour les clients connus : offrez une expérience cohérente sur vos différents domaines. Partagez des contenus et des incitations à l'action personnalisés en fonction de l'état d'inscription ou d'autres états des utilisateurs, et offrez une expérience cohérente sur vos différents domaines. Pour en savoir plus sur ce cas d'utilisation, consultez Personnaliser l'expérience utilisateur pour les clients connus.
  • Effectuer un test A/B : un test A/B compare au moins deux versions d'une configuration pour déterminer laquelle est la plus performante. Vous pouvez attribuer un utilisateur à un groupe de test, puis stocker ce groupe dans le stockage partagé pour un accès multisite. Cela vous permet de recueillir des insights sur le comportement des utilisateurs sur votre réseau de sites, sans suivre les individus. Pour en savoir plus sur ce cas d'utilisation, consultez Exécuter des tests A/B.

L'API Select URL avec Shared Storage vous permet de développer ces cas d'utilisation en accédant au même espace de stockage sur différents sites de premier niveau.

Tester la démo

Vous pouvez tester l'API Select URL à l'aide de la démonstration du stockage partagé.

Cette démo est construite du point de vue d'un annonceur, d'une technologie publicitaire, d'un distributeur de contenu ou d'un autre service tiers qui souhaite stocker des informations sur les sites de différents éditeurs. Dans la démo, le même code tiers s'exécute sur les sites de l'éditeur A et de l'éditeur B pour chaque cas d'utilisation. Consultez la page de chaque éditeur pour savoir comment les données sont partagées dans un contexte multisite.

Vous pouvez également consulter le code de la démo sur GitHub.

État de l'API

L'API Select URL est en disponibilité générale. Pour utiliser l'API Select URL ou l'activer pour le développement local, suivez les instructions pour vous inscrire à la Privacy Sandbox.

Proposition État
Création de rapports au niveau des événements pour la sélection de contenu (selectURL()) Disponible jusqu'en 2026 au moins
Budget par site
Explication
Disponible dans M119
Déboguer les worklets de stockage partagé avec DevTools
Section
Disponible dans M120

Interagir et envoyer des commentaires

Notez que la proposition d'API Select URL est en cours de discussion et de développement, et qu'elle est susceptible d'être modifiée.

Nous aimerions connaître votre avis sur l'API Select URL.