Utilizza uno spazio di archiviazione condiviso per determinare la creatività che un utente vede sui siti.
L'API Shared Storage è una proposta di Privacy Sandbox per lo spazio di archiviazione cross-site per uso generale, che supporta molti possibili casi d'uso. Un esempio è la rotazione delle creatività, che è disponibile per i test in Chrome 104.0.5086.0 e versioni successive.
Con la rotazione delle creatività, puoi memorizzare dati, come l'ID creatività, il numero di visualizzazioni e l'interazione degli utenti, per determinare quali creatività vengono visualizzate dagli utenti su diversi siti.
Esegui un worklet di archiviazione condivisa per selezionare un URL da un elenco fornito, in base ai dati memorizzati, e poi esegui il rendering della creatività in un frame delimitato. Può essere utilizzato per selezionare nuovi annunci o altri contenuti.
Provare la rotazione creatività
Per eseguire esperimenti sulla rotazione delle creatività con lo spazio di archiviazione condiviso, verifica di utilizzare Chrome 104.0.5086.0 o versioni successive. Abilita tutte le API di privacy per gli annunci in chrome://settings/adPrivacy
.
Puoi anche attivare lo spazio di archiviazione condiviso con il flag --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames
nella riga di comando.
Sperimenta con gli esempi di codice
Un inserzionista o un produttore di contenuti potrebbe voler applicare strategie diverse a una campagna e ruotare i contenuti o le creatività per aumentarne l'efficacia. Lo spazio di archiviazione condiviso può essere utilizzato per eseguire diverse strategie di rotazione, ad esempio la rotazione sequenziale e la rotazione equa, su siti diversi.
In questo esempio:
creative-rotation.js
è incorporato in un frame. Questo script imposta gli annunci più importanti ( peso) e chiama il worklet per determinare quali contenuti devono essere visualizzati.creative-rotation-worklet.js
è il worklet dello spazio di archiviazione condiviso che determina la distribuzione ponderata dei contenuti e dei valori restituiti da visualizzare.
// Ad config with the URL of the content, a probability weight for rotation, and the clickthrough rate.
const DEMO_CONTENT_CONFIG = [
{
url: 'https://your-server.example/contents/content-1.html',
weight: 0.7,
},
{
url: 'https://your-server.example/contents/content-2.html',
weight: 0.2,
},
{
url: 'https://your-server.example/contents/content-3.html',
weight: 0.1,
},
];
// Set the mode to sequential and set the starting index to 0.
async function seedStorage() {
await window.sharedStorage.set('content-rotation-mode', 'sequential', {
ignoreIfPresent: true,
});
await window.sharedStorage.set('content-rotation-index', 0, {
ignoreIfPresent: true,
});
}
async function injectAd() {
// Load the worklet module
await window.sharedStorage.worklet.addModule('creative-rotation-worklet.js');
// Initially set the storage to sequential mode for the demo
seedStorage();
// Run the URL selection operation to determine the next content rendered.
const urls = DEMO_CONTENT_CONFIG.map(({ url }) => ({ url }));
const fencedFrameConfig = await window.sharedStorage.selectURL('content-rotation', urls, {
data: DEMO_CONTENT_CONFIG,
resolveToConfig: true
});
// Render the opaque URL into a fenced frame
document.getElementById('content-slot').config = fencedFrameConfig;
}
injectAd();
class SelectURLOperation {
async run(urls, data) {
// Read the rotation mode from Shared Storage
const rotationMode = await sharedStorage.get('content-rotation-mode');
// Generate a random number to be used for rotation
const randomNumber = Math.random();
let index;
switch (rotationMode) {
/**
* Sequential rotation
* - Rotates the contents in order
* - Example: A -> B -> C -> A ...
*/
case 'sequential':
const currentIndex = await sharedStorage.get('creative-rotation-index');
index = parseInt(currentIndex, 10);
const nextIndex = (index + 1) % urls.length;
await sharedStorage.set('content-rotation-index', nextIndex);
break;
/**
* Weighted rotation
* - Rotates the contentswith weighted probability
* - Example: A=70% / B=20% / C=10%
*/
case 'weighted-distribution':
// Sum the weights cumulatively, and find the first URL where the
// sum exceeds the random number. The array is sorted in
// descending order first.
let weightSum = 0;
const { url } = data
.sort((a, b) => b.weight - a.weight)
.find(({ weight }) => {
weightSum += weight;
return weightSum > randomNumber;
});
index = urls.indexOf(url);
break;
default:
index = 0;
}
return index;
}
}
register('content-rotation', SelectURLOperation);
Casi d'uso
Questi sono solo alcuni dei possibili casi d'uso dello spazio di archiviazione condiviso. Continueremo ad aggiungere esempi man mano che riceviamo feedback e scopriamo nuovi casi d'uso.
Selezione contenuti
Seleziona e mostra contenuti diversi su siti web diversi in frame delimitati in base alle informazioni raccolte in Spazio di archiviazione condiviso. Il gate di output per questi casi d'uso è la selezione dell'URL.
- Rotazione delle creatività: memorizza i dati, ad esempio l'ID creatività, il numero di visualizzazioni e l'interazione degli utenti, per determinare quali creatività vengono visualizzate dagli utenti su siti diversi.
- Test A/B: puoi assegnare un utente a un gruppo sperimentale, quindi archiviare il gruppo in Spazio di archiviazione condiviso per accedervi su più siti.
- Esperienza utente personalizzata: condividi contenuti e inviti all'azione personalizzati in base allo stato di registrazione o ad altri stati dell'utente
Genera report di riepilogo
Raccogliere informazioni con lo spazio di archiviazione condiviso e generare un report di riepilogo aggregato con dati non significativi. Il gate di output per questi casi d'uso è l'API Private Aggregation.
- Misurazione della copertura unica: molti creator di contenuti e inserzionisti vogliono sapere quante persone uniche hanno visualizzato i loro contenuti. Utilizza lo spazio di archiviazione condiviso per registrare la prima volta che un utente ha visualizzato il tuo annuncio, il tuo video incorporato o la tua pubblicazione ed evitare il conteggio duplicato dello stesso utente su siti diversi. A questo punto, puoi utilizzare l'API Private Aggregation per generare un report di riepilogo per la tua copertura.
- Misurazione dei dati demografici: gli autori di contenuti spesso vogliono comprendere i dati demografici del loro pubblico. Puoi utilizzare lo spazio di archiviazione condiviso per registrare i dati demografici degli utenti in un contesto in cui li hai, ad esempio il tuo sito proprietario, e utilizzare i report aggregati per generare report su molti altri siti, ad esempio i contenuti incorporati.
- Misurazione della frequenza K+: a volte descritta come "frequenza effettiva", spesso è necessario un numero minimo di visualizzazioni prima che un utente riconosca o ricordi determinati contenuti (spesso nel contesto delle visualizzazioni degli annunci). Puoi utilizzare lo spazio di archiviazione condiviso per creare report sugli utenti unici che hanno visualizzato un contenuto almeno K volte.
Coinvolgere e condividere feedback
Tieni presente che la proposta dell'API Shared Storage è in discussione e in fase di sviluppo ed è quindi soggetta a modifiche.
Non vediamo l'ora di conoscere la tua opinione sull'API Shared Storage.
- Proposta: esamina la proposta dettagliata.
- Discussione: partecipa alla discussione in corso per porre domande e condividere i tuoi approfondimenti.
Tenersi informati
- Mailing list: iscriviti alla nostra mailing list per ricevere gli ultimi aggiornamenti e annunci relativi all'API Shared Storage.
Hai bisogno di aiuto?
- Assistenza per gli sviluppatori: entra in contatto con altri sviluppatori e ricevi risposte alle tue domande nel repository Privacy Sandbox Developer Support.