L'option "Sélectionner une 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 en fonction de données intersites de manière respectueuse de la confidentialité, vous pouvez utiliser l'API Select URL. L'API Select URL convient parfaitement aux cas d'utilisation suivants:
- Testez vos contenus en effectuant des tests A/B pour offrir une expérience utilisateur cohérente sur plusieurs sites.
- Affichage d'un bouton de connexion différent pour les utilisateurs disposant d'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 parmi un ensemble d'URL en fonction de données intersites. L'API est basée sur le Shared Storage et utilise un SharedStorageWorklet
pour lire les données intersites disponibles et sélectionner l'une des URL fournies. L'URL sélectionnée est renvoyée à l'appelant de manière à l'empêcher d'être lue, sauf dans un cadre clôturé. L'URL peut également être affichée dans un iFrame jusqu'en 2026 au moins.
Dans le diagramme précédent, le site shoes.example
peut être intégré à d'autres sites d'éditeurs tels que news.example
et continuer à accéder aux mêmes données à l'aide de l'URL de sélection avec Shared Storage pour choisir le contenu approprié à intégrer.
Fonctionnement de la fonctionnalité Sélectionner une URL
Vous pouvez utiliser l'API Select URL pour sélectionner une URL à afficher dans un cadre clôturé ou une iFrame à l'aide de données intersites. Utilisez JavaScript pour lire et écrire des données intersites dans Shared Storage, puis sélectionnez une URL dans une liste fournie en fonction de vos données stockées.
L'URL affichée peut inclure n'importe quel type de contenu: annonces, articles, images, code HTML, incitations à l'action (boutons, par exemple), etc.
Dans cet exemple, vous gérez un site de voyage et diffusez une campagne publicitaire avec trois créations publicitaires différentes. Vous souhaitez séquencer ces créations en fonction des interactions de l'utilisateur (vue ou clic).
Lorsqu'un site observe pour la première fois un espace publicitaire gagnant, vous pouvez stocker un ID et l'état des clics pour cette création dans Shared Storage.
Exemple :
await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');
Cela signifie que lorsque vous remportez une mise aux enchères d'annonces sur d'autres sites que cet utilisateur consulte, vous pouvez afficher une autre annonce en fonction de ces données.
Votre code JavaScript s'exécute dans un SharedStorageWorklet
pour récupérer ces informations, mais il ne peut pas interagir ni communiquer en dehors de l'iframe ou du frame clôturé sur la page parente.
Par exemple, vous pouvez tester quel article s'affichera le mieux 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 cet ID de groupe dans Shared Storage pour y accéder dans un contexte intersites. Sur un autre site, vous pouvez utiliser l'API Select URL pour choisir l'URL la plus appropriée à afficher dans un frame clôturé, en fonction du groupe de test de cet utilisateur tel qu'il est stocké dans Shared Storage.
L'utilisation de l'URL sélectionnée vous permet de prendre des décisions éclairées en fonction des données intersites, sans partager d'informations sur l'utilisateur (telles que l'historique du navigateur 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 combinant des budgets à long 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 facturé que si le frame hébergeant l'URL sélectionnée effectue une navigation de premier niveau, où le coût est calculé commelog2(number of URLs)
. Par conséquent, si vous proposez huit URL au choix, le coût est de trois bits. Tout budget restant pour la journée est calculé comme12 - (sum of bits deducted in the last 24 hours)
. Si le budget restant n'est pas suffisant, l'URL par défaut (la première URL de la liste) est renvoyée et un bit est enregistré si l'URL par défaut est consultée. 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 correspond à une limite combinée pour tous les sites d'appel 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. LorsqueselectURL()
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. LorsqueselectURL()
est appelé avec le même nom de requête enregistré pour les appels de suivi, l'index stocké est renvoyé et l'opération enregistrée ne s'exécute pas. Dans ce cas, le budget n'est facturé que lors de la première utilisation, mais pas lors des réutilisations au cours du même chargement de 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 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;
Cas d'utilisation de l'API URL
Si vous créez un site Web dont les fonctionnalités doivent fonctionner sur différents domaines, vous pouvez rencontrer l'un des cas d'utilisation suivants:
- Faites 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 pour déterminer les créations que les utilisateurs voient sur différents sites. Vous pouvez ainsi équilibrer les vues et éviter la saturation de certains contenus pour limiter une éventuelle expérience utilisateur négative. Pour en savoir plus sur ce cas d'utilisation, consultez Roter les créations publicitaires.
- Sélectionner une création publicitaire par fréquence: stockez le nombre de vues du navigateur dans l'espace de stockage partagé pour limiter la fréquence à laquelle un utilisateur voit une même annonce sur plusieurs sites. Pour en savoir plus sur ce cas d'utilisation, consultez la section Sélectionner une création publicitaire en fonction de la fréquence.
- Personnaliser l'expérience utilisateur pour les clients connus: proposez une expérience cohérente sur vos différents domaines. Partagez du contenu personnalisé et des incitations à l'action en fonction de l'état d'enregistrement ou d'autres états de l'utilisateur, et proposez 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 des tests A/B: un test A/B compare deux versions ou plus 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 Shared Storage pour un accès intersites. Vous pouvez ainsi 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 ayant accès au même stockage sur différents sites de premier niveau.
Tester la démo
Vous pouvez tester l'URL de sélection à l'aide de la démo de stockage partagé.
Cette démonstration est conçue 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émonstration, le même code tiers s'exécute à la fois sur les sites de l'éditeur A et de l'éditeur B pour chaque cas d'utilisation. Consultez la page de chaque éditeur pour voir comment les données sont partagées dans un contexte intersites.
Vous pouvez également consulter le code de la démonstration 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 est susceptible de changer.
Nous aimerions connaître votre avis sur l'API Select URL.
- Proposition: consultez la proposition détaillée.
- Discussion: rejoignez la discussion en cours pour poser des questions et partager vos insights.
Se tenir informé
- Liste de diffusion: abonnez-vous à notre liste de diffusion pour recevoir les dernières informations et annonces concernant les API Select URL et Shared Storage.
Besoin d'aide ?
- Assistance pour les développeurs: échangez avec d'autres développeurs et obtenez des réponses à vos questions dans le dépôt d'assistance pour les développeurs de la Privacy Sandbox.