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-frequencyjsest 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.jsest 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);
Use cases
All available use cases for Select URL API can be found in this section. We'll continue to add examples as we receive feedback and discover new test cases.
- Rotate ad creatives: Store data, such as creative ID and user interaction, to determine which creative users' see across different sites.
- Select ad creatives by frequency: Use view count data to determine which creative users' see across different sites.
- Run A/B testing: You can assign a user to an experiment group, then store that group in Shared Storage to be accessed cross-site.
- Customize experience for known customers: Share custom content and calls-to-action based on a user's registration status or other user states.
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.