Sélectionner une création par fréquence

Exécutez un Worklet de stockage partagé pour sélectionner une URL et l'afficher dans un cadre cloisonné.

L'API Shared Storage est un service Proposition de bac à sable pour le stockage intersites à usage général, cas d'utilisation possibles. C'est par exemple le cas du contrôle de la fréquence, dans Chrome Bêta 104.0.5086.0 et versions ultérieures.

Exécutez un script de Worklet pour sélectionner une URL dans une liste fournie, en fonction de l'élément stocké données, puis afficher cette URL dans un cadre cloisonné. Cela permet de sélectionner De nouvelles annonces ou d'autres contenus, alors que la limite de la fréquence d'exposition a été atteinte

Tester la sélection de créations en fonction de la fréquence

Pour tester la sélection de créations par fréquence avec le stockage partagé et les cadres cloisonnés, à partir de la version 104.0.5086.0 de Chrome. Activez toutes les API Ad Privacy sous chrome://settings/adPrivacy.

Vous pouvez également activer le stockage partagé à l'aide de l'option --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames dans la ligne de commande.

Tester des exemples de code

Pour sélectionner et créer une URL opaque, enregistrez un module de Worklet afin de lire les éléments partagés des données de stockage. La classe Worklet reçoit jusqu'à huit URL, puis renvoie l'index de l'URL choisie.

Lorsque le client appelle sharedStorage.selectURL(), le Worklet s'exécute et renvoie une URL opaque à afficher dans un frame cloisonné.

Imaginons que vous souhaitiez sélectionner une autre annonce ou un autre contenu à afficher en fonction de la fréquence à laquelle un utilisateur les a déjà vues. Vous pouvez compter le nombre de fois qu'un utilisateur a vu un contenu et stocker cette valeur dans un espace de stockage partagé. Une fois stockée, la valeur du stockage partagé devient disponible pour différentes origines.

Ensuite, le Worklet de stockage partagé lit les valeurs dans le stockage partagé et incrémente le compteur à chaque vue supplémentaire. Si le nombre n'a pas atteint la limite prédéfinie, le contenu que vous souhaitez afficher est renvoyé (index 1). Dans le cas contraire, l'URL par défaut est renvoyée (index 0).

Dans cet exemple :

  • creative-selection-by-frequencyjs est chargé via l'iFrame du producteur de contenu ou de l'annonceur, et est responsable pour charger le Worklet de stockage partagé et afficher la valeur opaque renvoyée dans un frame cloisonné.
  • creative-selection-by-frequency-worklet.js est le Worklet de stockage partagé qui lit le du nombre d'expositions pour déterminer l'URL à renvoyer pour un contenu ou une création publicitaire.

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

Cas d'utilisation

Vous trouverez dans cette section tous les cas d'utilisation disponibles pour l'API Select URL. Nous continuerons d'ajouter des exemples à mesure que nous recevrons des commentaires et découvrirons de nouveaux cas de test.

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.

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 ?