Sélectionner une URL avec un stockage partagé

Sélectionnez une URL en fonction des données collectées dans Shared Storage, puis affichez le contenu dans un cadre délimité.

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

La sélection d'URL peut inclure n'importe quel type de contenu: annonces, articles, images, code HTML, incitations à l'action (boutons, par exemple), etc.

Par exemple, imaginons que vous gérez un site de voyage et que vous 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).

Trois créations publicitaires, qui sont diffusées auprès des utilisateurs en fonction de leur interaction précédente.
La première création pour un nouvel utilisateur indique "Partez pour votre prochaine aventure". Si l'utilisateur ne clique pas, il verra le message "Explorer les escapades du week-end". Après avoir vu ou cliqué, la troisième création encourage les utilisateurs à cliquer pour obtenir une remise sur un hôtel. Si l'utilisateur clique sur la première annonce, la troisième création s'affiche.

Lorsqu'un utilisateur 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. 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.

Présentation de l'espace de stockage partagé avec trois créations publicitaires et une interaction utilisateur.

Votre code JavaScript s'exécute dans un worklet 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.

Prenons un autre exemple. Imaginons que vous souhaitiez tester quel article serait le plus performant dans un contexte intégré. 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, votre frame clôturé peut sélectionner une URL en fonction du groupe de test de cet utilisateur, tel que stocké avec Shared Storage.

Shared Storage vous permet de prendre des décisions éclairées en fonction de données intersites, sans partager d'informations 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.

Cas d'utilisation

La sélection d'URL avec le stockage partagé est compatible avec les cas d'utilisation suivants:

  • Faites tourner les créations publicitaires : vous pouvez stocker des données, telles que l'ID de la création et l'interaction utilisateur, pour déterminer les créations que les utilisateurs voient sur différents sites.
    • Frequence. Les vues du navigateur peuvent être stockées dans Shared Storage et utilisées pour déterminer quelle création est diffusée auprès d'un utilisateur.
  • Exécuter des tests A/B : attribuez un utilisateur à un groupe de test, puis stockez cet ID de groupe avec Shared Storage pour y accéder entre les sites.
  • Personnaliser l'expérience utilisateur : partagez du contenu personnalisé et des incitations à l'action en fonction de l'état d'enregistrement ou d'autres états de validation de l'utilisateur.

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: budget 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é comme log2(number of URLs). Par conséquent, si vous proposez huit URL au choix, le coût est de trois bits. Le budget restant pour la journée est calculé comme 12 - (sum of bits deducted in the last 24 hours). S'il reste insuffisant, l'URL par défaut (la première de la liste) est renvoyée et un bit est consigné si l'URL par défaut est consultée.
  • Budgets à court terme: limites supplémentaires par chargement de page. 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 de charge globale par 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. 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é 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 ne sera débité que lors de la première utilisation, mais pas lors des réutilisations au cours de la même page, car aucune nouvelle information n'est révélée.

    Pour implémenter des requêtes enregistrées, ajoutez la propriété savedQuery, avec le nom de requête de votre choix, à l'objet options, comme illustré dans l'exemple suivant.

    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;
    
    .

Essayer la sélection d'URL

La sélection d'URL avec l'API Shared Storage est disponible pour les tests dans Chrome Canary/Dev/Bêta M105 et versions ultérieures. Pour tester la sélection d'URL, activez toutes les API de confidentialité des annonces sous chrome://settings/adPrivacy.

Tester la démo

Une démonstration est disponible, et vous pouvez consulter le code sur GitHub.

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.

Interagir et partager des commentaires

La proposition de stockage partagé est en cours de discussion et est susceptible d'être modifiée. à l'avenir. Si vous essayez cette API et que vous avez des commentaires, n'hésitez pas à nous en faire part.